사이토고키의 <밑바닥부터 시작하는 딥러닝>을 공부하고 정리해보았습니다.
층을 깊게 하는 것의 중요성
층을 깊게 하는 것의 중요성은 ILSVRC로 대표되는 대규모 이미지 인식 대회의 결과에서 파악할 수 있습니다.
이 대회에서 최근 상위를 차지한 기법 대부분은 딥러닝 기반이며, 그 경향은 신경망을 더 깊게 만드는 방향으로 가고 있습니다.
층의 깊이에 비례해 정확도가 좋아지는 것입니다.
층을 깊게 할 때의 이점은 다음과 같습니다.
1. 신경망의 매개변수 수가 줄어듭니다.
층을 깊게 한 신경망은 깊지 않은 경우보다 적은 매개변수로 같은(혹은 그 이상) 수준의 표현력을 달성할 수 있습니다.
합성곱 연산에서의 필터 크기에 주목해 생각해보면 쉽게 이해할 수 있습니다.
예를 보겠습니다.
아래 그림은 5X5 필터로 구성된 합성곱 계층입니다.
여기에서 주목할 점은 출력 데이터의 각 노드가 입력 데이터의 어느 영역으로부터 계산되었느냐는 것입니다.
위 그림에서는 각각의 출력 노드는 입력 데이터의 5 X 5 크기 영역에서 계산됩니다.
이어서 3 X 3의 합성곱 연산을 2회 반복하는 경우를 생각해보겠습니다.
이 경우 출력 노드 하나는 중간 데이터의 3 X 3 영역에서 계산됩니다.
그럼 중간 데이터의 3 X 3 영역은 그전 입력 데이터의 어느 영역에서 계산 될까요?
위 그림을 보면 5 X 5 크기의 영역에서 계산되어 나오는 것을 알 수 있습니다.
즉, 위 그림의 출력 데이터는 입력 데이터의 5 X 5 영역을 보고 계산하게 됩니다.
5 X 5의 합성곱 연산 1회는 3 X 3의 합성곱 연산을 2회 수행하여 대체할 수 있습니다.
게다가 전자의 매개변수 수가 25개(5 X 5)인 반면, 후자는 총 18개(2 X 3 X 3)이며, 매개변수 수는 층을 반복할수록 적어집니다.
그리고 그 개수의 차이는 층이 깊어질수록 커집니다.
예를 들어 3 X 3의 합성곱 연산을 3회 반복하면 매개변수는 모두 27개가 되지만, 같은 크기의 영역을 1회의 합성곱 연산을 하기 위해서는 7 X 7 크기의 필터, 즉 매개변수 49개가 필요합니다.
2. 학습의 효율성
학습의 효율성도 층을 깊게 하는 것의 이점이비다.
층을 깊게 함으로써 학습 데이터의 양을 줄여 학습을 고속으로 수행할 수 있습니다.
위 포스팅에서 CNN의 합성곱 계층이 정보를 계층적으로 추출하고 있음을 배웠습니다.
앞단의 합성곱 계층에서는 에지 등의 단순한 패턴에 뉴런이 반응하고 층이 깊어지면서 텍스처와 사물의 일부와 같이 점차 더 복잡한 것에 반응한다는 것을 배웠습니다.
신경망을 깊게 하면 학습해야 할 문제를 계층적으로 분해할 수 있습니다.
예를 들어 처음 층은 에지 학습에 전념하여 적은 학습 데이터로 효율적으로 학습할 수 있습니다.
개가 등장하는 이미지보다 에지를 포함한 이미지는 많고, 에지의 패턴은 개라는 패턴보다 구조가 훨씬 간단하기 때문입니다.
3. 정보를 계층적으로 전달
층을 깊게 하면 정보를 계층적으로 전달할 수 있다는 점도 중요합니다.
예를 들어 에지를 추출한 층의 다음 층은 에지 정보를 쓸 수 있고, 더 고도의 패턴을 효과적으로 학습하리라 기대할 수 있습니다.
즉, 층을 깊이 함으로써 각 층이 학습해야 할 문제를 '풀기 쉬운 단순한 문제'로 분해할 수 있어 효율적으로 학습하리라 기대할 수 있습니다.
'수학 > 딥러닝 이론' 카테고리의 다른 글
[딥러닝] Batch Norm 관점에서 살펴보는 batch size 가이드 라인 (0) | 2021.05.28 |
---|---|
[딥러닝] 세 가지 유명 신경망 - VGG, GoogLeNet, ResNet (0) | 2020.10.09 |
[딥러닝] CNN에서 정확도를 높이는 방법 - 데이터 확장(data augmentation) (0) | 2020.10.05 |
[딥러닝] CNN의 원조 LeNet, 딥러닝을 주목 받도록 이끈 AlexNet (0) | 2020.10.05 |
[딥러닝] 합성곱 신경망(CNN) - CNN 시각화 하기 (2) | 2020.10.05 |