<합성곱층과 풀링층의 입력과 출력을 정리해볼까요?>
● 입력 이미지가 합성곱 층을 통과하면 크기(가로×세로)는 그대로이지만, 이미지의 깊이가 늘어납니다.
● 말로는 잘 이해가 되지 않으니, 그림으로 정리해보도록 하겠습니다.
● 28×28 크기의 입력 이미지를 필터의 개수 4, 스트라이드 및 패딩이 1로 설정된 합성곱층(Conv_1)을 통과하면 출력이미지는 28×28 크기로 동일하지만, 이미지의 깊이는 4(28×28×4)가 됩니다. 이 출력이 하이퍼파라미터는 동일하게 유지한 채, 12개의 커널(=필터)를 만나 합성곱 연산을 거치면 다음과 같이 28×28×12가 되죠.
● 늘어난 깊이만큼 합성곱 연산을 통해 수용 영역은 넓어지게 됩니다. 즉, CNN은 합성곱 층에서 늘어난 깊이와 수용 영역 만큼 특징 학습이 이루어지는 것이죠.
● 풀링층을 통과하게 되면 깊이는 그대로 유지가 되지만, 가로와 세로의 크기는 줄어들게 됩니다(차원 축소=파라미터 수 감소=계산 복잡도 감소=이미지 압축=Blur 효과).
● CNN은 합성곱층과 풀링층이 번갈아가며 배치된 구조라고 했습니다. 그렇다면 다음의 그림과 같이 표현될 수 있습니다.
● 재미있군요. 마치 깊이는 늘어나고, 이미지의 크기는 계속해서 줄어듭니다. 마치 길고 깊게 이어진 빨대의 모습이 될 때까지 이 작업은 계속 진행됩니다. 보통 빨대의 형태는 5×5×40 정도가 되며, 이 정도의 사이즈가 되면 이제 분류를 담당하는 전결합층으로 1차원 벡터로 변환하여 넘기게 됩니다.
● 음, 1차원 벡터로 변환하면 5×5×40=1,000이군요. 1,000개를 일렬로 늘어뜨려 전결합층에 전달합니다. 이 1,000개가 유닛의 개수가 되며 전결합층의 입력 값이 되는 것이죠.
● 여기까지가 합성곱층과 풀링층의 입력과 출력의 과정이라 할 수 있습니다.
● 이제 완전연결층(전결합층)에서의 '분류' 작업만 마치면 입력 값인 이미지의 인식 결과를 내놓을 수 있게 되겠군요. CNN의 구조를 모두 살펴보는 일이 이제 머지 않았습니다.
'인공지능 (AI)' 카테고리의 다른 글
41번째 이야기 - CNN, 합성곱층, 풀링층, 전결합층 (0) | 2024.06.02 |
---|---|
40번째 이야기 - 전결합층과 드롭아웃, MLP, 과적합 방지 (1) | 2024.06.02 |
38번째 이야기 - 풀링층, 이미지 압축 작용, 최대 풀링, 커널 윈도우 (1) | 2024.06.02 |
37번째 이야기 - 풀링, 풀링 연산, 최대 풀링, 평균 풀링 (0) | 2024.06.02 |
36번째 이야기 - 케라스, 스트라이드, 패팅, 손실함수, 풀링(pooling) (0) | 2024.06.02 |
댓글