Fully Connected Layer만으로 구성된 신경망은 1차원의 형태로만 구성 될 수 있습니다. 그러나 컬러 이미지 데이터는 [ 가로, 세로, 채널 ] 이렇게 총 3개의 축을 갖는 3차원 데이터입니다. 이 데이터를 1차원의 형태로 평면화 시킨다면 공간 간의 관계에서 발생하는 정보가 손실 될 수 밖에 없습니다. 간단히 예를 들자면 아래와 같습니다.
2개의 이미지 데이터가 있다고 가정 했을 때, 단순히 가로축의 합의 집합으로 1차원으로 축소하는 함수가 있다고 가정하겠습니다.
좌측 두 장의 2차원 데이터는 1번 줄의 값이 각각 [1, 2, 3, 4, 5, 6]과 [3, 2, 4, 6, 5, 1]로 다른 값을 갖습니다. 그러나 1차원으로 축소되면서 같은 값을 갖게 되었습니다.
이는 차원을 축소하는 과정에서 정보의 손실이 발생하는 작은 예시이지만 실제 Layer가 이보다 복잡하더라도 충분히 이런 일이 일어날 수 있다는 것을 얘기합니다.
머신 러닝에서 Layer를 거쳐가면서 정보의 손실이 어쩔 수 없이 발생 할 수는 있는데, 이 손실을 최소화하기 위해서 CNN(Convolutional Neural Network)에서는 아래의 구조를 제안합니다.
Convolutional Layer는 아래의 순서로 출력을 계산합니다.
그림으로 표현하면 아래와 같습니다. Input Channel을 3, Output Channel을 5라 가정하고 설명합니다.
kernel이 1 step에 몇 칸을 움직일지를 지정합니다. 위 그림을 예시로,