Back to all posts
Tech
[네이버 AI 부스트캠프 5기] CNN
[네이버 AI 부스트캠프 5기] CNN
CNN(Convolution Neural Network)에 대해서 알아보자.
가장 먼저 이름에 들어있는 저 Convolution이라는 녀석부터 알아봐야 한다. Convolution은 합성곱이라는 뜻이라고 한다. 지금까지 내가 배운 것들은 아래의 구조였다.
그런데 CNN은 '커널(Kernel)'이라는 친구가 등장한다. 커널을 입력벡터 상에서 움직여가며 여러 연산을 적용하는 느낌이다. 개념적으로 크게 어려운 부분은 없다.
위의 그림들은 1차원에서의 Convolution 연산이지만, 다양한 차원에서 Convolution 연산이 가능하다. 커널을 옆으로 움직여가며, 그리고 아래로 움직여가며 연산을 수행한다.
당연하지만 입력 크기, 커널 크기에 따라 출력 크기가 다르게 나오는데, 위의 예시에서 입력 크기를 (4, 4), 커널 크기를 (2, 2)라고 하면 출력 크기는 (3, 3)이 된다. 출력 크기의 1행 1열을 계산해보면, 00 + 11 + 23 + 34 = 19. 1행 2열은 01 + 12 + 24 + 35 = 25. 이런게 Convolution 연산이다.
순전파는 위와 같이 아주아주 쉬운 과정을 거친다. 역전파는 조금 더 정리할 필요가 있으므로 일단 여기까지.