딥러닝은 층을 깊게 한 심층 신경망이다.
딥러닝을 구현하면서 생기는 고민 중 하나인, '어느 정도의 깊이로 층을 구성해야 할까'에 대한 내용을 정리해보려 한다.
1. 매개변수의 개수를 줄일 수 있다.
층을 깊게 만든 신경망은 얕게 만든 신경망보다 적은 매개변수로 같거나 더 높은 수준의 표현력을 가질 수 있다.
예를 들어서 5 x 5 필터 하나로 신경망을 구현한다고 하면,
총 5 x 5 = 25, 25개의 매개변수가 필요하다.
하지만 3 x 3 필터 2개로도 신경망을 구현했을 때, 동일한 출력 데이터의 크기를 만들 수 있다.
이때 필요한 매개변수 개수는 3 x 3 x 2 = 18, 18개이다.
3 x 3 필터 두 개의 연산에서 보면, 중간 데이터의 3 x 3 영역이 입력 데이터의 5 x 5 크기의 영역에서 계산되고 있다.
즉, 출력 데이터는 입력 데이터의 5 x 5 영역을 보고 계산한다는 것이다.
이를 '넓은 수용 영역 소화가 가능하다'고 한다.
수용 영역 (receptive field)는 출력 Layer의 뉴런 하나에 영향을 미치는 입력 뉴런들의 공간 크기를 의미한다.
왼쪽의 입력 Layer의 중앙에 있는 진한색의 공간이 수용 공간이다.
수용 공간의 크기는 얼마나 많은 문맥 정보를 사용하는가와 비례한다.
적은 매개변수로 많은 문맥 정보를 사용할 수 있다는 것이 깊은 신경망의 장점이라고 볼 수 있다.
2. 학습의 효율성
(1) 학습의 속도 증가
층을 깊게 만들면 학습 데이터의 양을 줄여서 학습을 고속으로 수행할 수 있다.
(2) 계층적 학습이 가능해짐
앞쪽의 계층에서는 에지 (Edge)나 덩어리 (Blob)만을 특징으로 파악한다면, 이후의 계층에서는 더 구체적인 패턴을 인식하고 복잡한 이해를 할 수 있다.
얕은 신경망으로 구성을 한다면 신경망이 한번에 특징을 이해해야 할 것이다.
하지만 깊은 신경망으로는 계층적 학습이 가능하여 단순한 패턴 인식부터 복잡한 학습까지 계층적으로 효율적이게 학습할 수 있다.
3. 정보의 계층적 전달
예를 들어서, 에지를 추출한 층의 다음 층은 에지 정보를 쓸 수 있고, 더 고도의 패턴을 효과적으로 학습할 수 있다.
층을 깊게 만듦으로써 각 층이 학습해야 할 문제를 풀기 쉬운 단순한 문제로 분해하여 학습할 수 있다는 점이 깊은 신경망의 이점이다.
최근에는 빅데이터 (학습 데이터의 증가), 컴퓨터 연산 능력의 발전으로 더 깊은 층의 신경망도 학습할 수 있는 환경이 마련되고 있다.
물론 층이 무조건 깊다고 해서 더 높은 정확도를 보장하는 것은 아니지만,
대규모 일반 사물 인식과 같은 복잡한 문제에서는 층을 깊게 함으로써 정확도를 크게 끌어올릴 수 있다.
'[ 딥러닝 ]' 카테고리의 다른 글
[ CNN ] GoogLeNet / 2014 ILSVRC 1위 모델 (0) | 2023.06.06 |
---|---|
[ CNN ] VGGNet / 단순하지만 용이하게! (0) | 2023.06.05 |
가중치 감소 (Weight Decay) (0) | 2023.06.02 |
배치 정규화 (Batch Normalization) (0) | 2023.05.31 |
가중치 초기화 (Weight Initialization) (0) | 2023.05.31 |