본문 바로가기
IT/머신러닝

[section_11] CNN(Convolutional Neural Networks)

by 빨강자몽 2018. 6. 1.

CNN(Convolutional Neural Networks)

  • Covolution이란? 복잡함이란 의미이다.
  • 결론 부터 말을 한다면 CNN이란 CONV, ReLU, POOL, Drop-out을 번갈아 적용하여 하나의 Fully Connected Network를 만드는 것을 말한다.

Conv Layer란?
  • 이미지에서 필터와 Activation Funtion(ReLU)를 사용하여 하나의 값을 추출하여 하나의 Layer을 만드는 것이다.


  • 하나의 예시를 들면, 어떤 색이 있다면 R,G,B필터를 사용하여 3개의 layer로 만들 수 있다. 이를 Conv layer라고한다.

  • 이제 필터에 대해서 잠깐 알아보면 N은 이미지 크기(7*7)를 말하고, F는 필터의 크기(3*3)를 말한다, 
  • 여기서 stride라는 개념이 나오는데 stride란 필터의 한번 이동하는 크기를 말한다.
  • Output의 크기는 필터를 거쳐 나오는 결과물의 크기(if stride1, 5*5)를 말한다.
  • 여기서 stride가 커지면 커질수록 output의 크기가 작아지는데 이를 막기위해서 padding을 사용하게 된다.
  • 쉽게 설명하면 여백을 추가한다.(크기를 키우고 0으로 채워준다.)

  • 이 후 필터를 몇개를 쓰냐에 따라서 Layer의 깊이(두께)를 결정할 수있다.

  • 밑에 예시를 보면 6개의 필터사용시 6개의 깊이의 Conv Layer가 생성된다.


Pooling Layer

  • Pooling Layer는 Sampling, Resizing 이라고한다.
  • Pooling 방식에는 max-pooling, average-pooling등 여러방식이 있지만 보통 max-pooling을 사용한다.
  • max-pooling이란 각 필터안의 값들 중 가장 큰 값을 가져오는 방식이다.