본문 바로가기
인공지능 (AI)

39번째 이야기 - 합성곱층과 풀링층의 입력과 출력

by Ψβ⅓ 2024. 6. 2.

<합성곱층과 풀링층의 입력과 출력을 정리해볼까요?>

입력 이미지가 합성곱 층을 통과하면 크기(가로×세로)는 그대로이지만, 이미지의 깊이가 늘어납니다.

말로는 잘 이해가 되지 않으니, 그림으로 정리해보도록 하겠습니다.

28×28 크기의 입력 이미지를 필터의 개수 4, 스트라이드 및 패딩이 1로 설정된 합성곱층(Conv_1)을 통과하면 출력이미지는 28×28 크기로 동일하지만, 이미지의 깊이는 4(28×28×4)가 됩니다. 이 출력이 하이퍼파라미터는 동일하게 유지한 채, 12개의 커널(=필터)를 만나 합성곱 연산을 거치면 다음과 같이 28×28×12가 되죠.

늘어난 깊이만큼 합성곱 연산을 통해 수용 영역은 넓어지게 됩니다. , CNN은 합성곱 층에서 늘어난 깊이와 수용 영역 만큼 특징 학습이 이루어지는 것이죠.

 

CNN 특징 학습 예시

 

 

풀링층을 통과하게 되면 깊이는 그대로 유지가 되지만, 가로와 세로의 크기는 줄어들게 됩니다(차원 축소=파라미터 수 감소=계산 복잡도 감소=이미지 압축=Blur 효과).

 

차원 축소

 

CNN은 합성곱층과 풀링층이 번갈아가며 배치된 구조라고 했습니다. 그렇다면 다음의 그림과 같이 표현될 수 있습니다.

 

합성곱층과 풀링층 예시

 

 

재미있군요. 마치 깊이는 늘어나고, 이미지의 크기는 계속해서 줄어듭니다. 마치 길고 깊게 이어진 빨대의 모습이 될 때까지 이 작업은 계속 진행됩니다. 보통 빨대의 형태는 5×5×40 정도가 되며, 이 정도의 사이즈가 되면 이제 분류를 담당하는 전결합층으로 1차원 벡터로 변환하여 넘기게 됩니다.

, 1차원 벡터로 변환하면 5×5×40=1,000이군요. 1,000개를 일렬로 늘어뜨려 전결합층에 전달합니다. 1,000개가 유닛의 개수가 되며 전결합층의 입력 값이 되는 것이죠.

여기까지가 합성곱층과 풀링층의 입력과 출력의 과정이라 할 수 있습니다.

이제 완전연결층(전결합층)에서의 '분류' 작업만 마치면 입력 값인 이미지의 인식 결과를 내놓을 수 있게 되겠군요. CNN의 구조를 모두 살펴보는 일이 이제 머지 않았습니다.

 

 

댓글