MLP는 데이터의 모든 노드들이 연결 되는 완전 연결 계층을 말한다. 이미지 데이터의 경우 height weight channel 과 같이 3차원 데이터로 이루어져 있다. 또한 각 영역 마다 특징이 있지만, MLP로 이미지를 처리하게 되면 특징이 있는 이미지를 무시하게 된다. 예를 들어 강아지를 보여주고 있는 이미지에서 우리가 머신한테 원하는 것은 강이지인지 아닌지를 출력하는 것이다. FC layer에 강아지 이미지를 넣는다면 머신은 강아지와 관련 없는 모든 픽셀 하나하나를 다 살펴 보는 문제가 발생한다.
이를 해결하기 위해 사용되는 것이 Convolution 이다.

kernel(필터)이라는 특징을 띄는 필터를 사용해 해당 이미지의 값을 sliding 해서 output 결과 값을 가져오는 것이 CNN이다.
padding
합성곱 연산을 계속하면 추출된 feature map의 크기가 지속적으로 감소하게 될 것이다. 이를 방지하기 위한 방법으로 padding을 사용하며, 연산을 수행하기 전에 입력 데이터 주변에 0의 값을 둘러싸는 것을 의미한다. 이를 통해 출력 크기를 조정할 수 있다
Stride
CNN은 입력 이미지를 sliding window를 통해 각 영역의 특징을 찾아가는 방법이라고 했다. Stride는 이런 sliding window의 간격을 의미한다. 다시 말해 필터 적용의 간격을 정하는 것인데, Stride를 키울수록 출력된 이미지의 크기를 작아지게 만들 수 있다.

풀링은 이미지 정보의 대표성을 가지고 오면서 동시엣 크기를 줄이는 것을 의미한다.
여기서 대표성이 의미하는 것은 해당 필터(커널)이 반영되어 추출된 feature map에서 가장 대표적인 특징값을 가지고 학습을 진행하는 방법이다. 이를 통해 불필요한 noise를 줄이고 일반화된 특징을 학습할 수 있게 한다.