사이토고키의 <밑바닥부터 시작하는 딥러닝>을 공부하고 정리해보았습니다.
이전 포스팅에서는 CNN의 전체 구조에 대해서 공부해봤습니다.
이번에는 완전연결 계층(Affine 계층)의 문제점에 대해 알아보겠습니다.
합성곱 계층 - Convolutional Layer
CNN에서는 패딩(paddong), 스트라이드(stide) 등 CNN 고유의 용어가 등장합니다.
또, 각 계층 사이에는 3차원 데이터같이 입체적인 데이터가 흐른다는 점에서 완전연결 신경망과 다릅니다.
그래서 CNN을 처음 배울 때는 어렵게 느낄 수 있습니다.
완전연결 계층의 문제점
지금까지 본 완견연결 신경망에서는 완전연결 계층(Affine 계층)을 사용했습니다.
완전연결 계층에서는 인접하는 계층의 뉴런이 모두 연결되고 출력의 수는 임의로 정할 수 있습니다.
완전연결 계층의 문제점을 알아보겠습니다.
바로 '데이터의 형상이 무시'된다는 사실입니다.
입력 데이터가 이미지인 경우를 예로 들면, 이미지는 통상 세로, 가로, 채널(색상)로 구성된 3차원 데이터 입니다.
그러나 완전연결 계층에 입력할 때는 3차원 데이터를 평평한 1차원 데이터로 평탄화해줘야 합니다.
MNIST 데이터셋을 사용한 사례에서는 형상이 (1, 28, 28)인 이미지(1채널, 세로 28픽셀, 가로 28픽셀)를 1줄로 세운 784개의 데이터를 첫 Affine 계층에 입력했습니다.
이미지는 3차원 형상이며, 형상에는 소중한 공간적 정보가 담겨 있습니다.
예를 들어 공간적으로 가까운 픽셀은 값이 비슷하거나, RGB의 각 채널은 서로 밀접하게 관련되어 있거나, 거리가 먼 픽셀끼리는 별 연관이 없는 등, 3차원 속에서 의미를 갖는 본질적인 패턴이 숨어 있을 것입니다.
그러나 완전연결 계층은 형상을 무시하고 모든 입력 데이터를 동등한 뉴런(같은 차원의 뉴런)으로 취급하여 형상에 담긴 정보를 살릴 수 없습니다.
한편, 합성곱 계층은 형상을 유지합니다.
이미지도 3차원 데이터로 입력받으며, 마찬가지로 다음 계층에도 3차원 데이터로 전달합니다.
그래서 CNN에서는 이미지처럼 형상을 가진 데이터를 제대로 이해할 (가능성이 있는) 것입니다.
CNN에서는 합성곱 계층의 입출력 데이터를 특징 맵(feature map)이라고도 합니다.
합성곱 계층의 입력 데이터를 입력 특징 맵(input feature map), 출력 데이터를 출력 특징 맵(output feature map)이라고 하는 식입니다. 이 책에서는 '입출력 데이터'와 '특징 맵'을 같은 의미로 사용합니다.
'수학 > 딥러닝 이론' 카테고리의 다른 글
[딥러닝] 합성곱 신경망(CNN) - 합성곱 연산에서의 패딩과 스트라이드 (0) | 2020.10.04 |
---|---|
[딥러닝] 합성곱 신경망(CNN) - 합성곱 연산의 작동 방법 - 필터 (3) | 2020.10.04 |
[딥러닝] 합성곱 신경망(CNN) - CNN의 전체 구조 (0) | 2020.10.04 |
[딥러닝] 하이퍼파라미터를 최적화하는 방법과 구현하기 (0) | 2020.10.03 |
[딥러닝] 검증 데이터 - 하이퍼파라미터의 성능을 평가 (0) | 2020.10.03 |