합성곱 신경망(Convoluation Neural Network, CNN)은 주로 이미지 처리에 사용되며, 이미지의 특징을 효과적으로 추출하여 분류, 검출, 분할 등의 작업을 수행한다.
합성곱 층은 필터 또는 커널이라는 작은 위도우로 입력 데이터를 스캔하면서 합성곱 연상을 수행한다. 이러한 합성곱 연산을 통해 특징 맵(Feature Map)을 생성한다. 필터는 입력 이미지의 특정 패턴이나 감지하는데 사용된다.
합성곱 연산을 통해 얻은 출력을 특성 맵이라고 한다. 이 특성 맵은 입력 이미지에서 감지된 특징을 시각화한 것으로 이해할 수 있다.
💡패딩을 사용하는 이유?
모서리에 있는 정보는 특성 맵으로 잘 전달되지 않을 가능성이 높음
반면 가운데 있는 정보는 두드러지게 표현되기 때문에 적절한 패딩은 이미지의 주변에 있는 정보를 잃어버리지 않도록 도와줌
케라스에서는 다양한 합성곱 층을 제공하여 합성곱 신경망을 구성할 수 있다. 주요 합성곱층에는 Conv2D, MaxPooling2D, AveragePooling2D등이 있다.
패딩과 스트라이드는 각 합성곱 층의 인자를 통해 설정할 수 있다. 이를 통해 출력의 크기를 조절하거나 모델의 복잡도를 조절할 수 있다.
풀링 층은 특성 맵의 크기를 줄이는 역할을 수행한다. 주로 최대 풀링(MaxPooling)이나 평균 풀링(AveragePooling)을 사용하며, 입력 데이터를 겹치지 않고 이동하면서 특정 영역의 최대값 또는 평균값을 추출한다.
합성곱 신경망은 여러 개의 합성곱 층과 풀링 층으로 구성되며, 마지막에는 완전 연결층(Fully Connected Layer)을 추가하여 분류나 회귀와 같은 작업을 수행한다. 특히 컬러 이미지의 경우 RGB채널을 가진 3차원 배열(너비, 높이, 깊이)로 표현되며, 각 층의 출력은 다음 층의 입력으로 사용된다.
(완전 연결층은 일차원 배열로 변환하여 전달된다.)