목차
- DenseNet의 성능
- DenseNet 설명
- DenseNet의 효과
- Pre-activation
- Pytorch 코드 설명
DenseNet의 성능
- 이번 글에서는 2017 CVPR에서 소개된
DenseNet
에 대하여 다루어 보도록 하겠습니다.
- 먼저 DenseNet은 어떤 효과가 있는 지 다음 그래프를 통하여 간단하게 알아보겠습니다.
- 먼저 DenseNet의 효과를 살펴보면 강력한 딥러닝 네트워크 중 하나인 ResNet과 비교하였을 때, 더 적은 parameter를 이용하여 더 높은 성능을 내었다는 것에 의의가 있습니다.
DenseNet 설명
- Residual Network를 잘 이해하고 있다면 DenseNet을 이해하기는 상당히 쉽습니다. 만약 ResNet을 잘 모른다면 앞에 연결해 놓은 링크를 통해 먼저 학습을 하고 이 글을 읽기를 권장드립니다.
- DenseNet은 ResNet과 많이 닮았습니다. 즉, 네트워크의 성능을 올리기 위한 접근 방식이 비슷하다고 말할 수 있습니다.
- 그러면 ResNet이 개발된 배경과 그 이후 DenseNet 까지 차례대로 한번 설명해 보도록 하겠습니다.
- 위 그림은 GoogLeNet 입니다. 위 네트워크를 보면 그 구조가 다소 복잡하고 깊이가 깊습니다. 이 때부터 복잡하고 깊은 네트워크에서는 학습이 어려워진다는 문제점을 가지고 있었습니다.
- 이 문제를 개선하기 위해 중간 중간에
Auxiliary classifier
라는 노란색 부분의 classifier가 존재하여 무조건 끝에서 부터 학습하는 것이 아니라 중간에서도 학습이 가능하도록 만들었습니다.
- 이렇게 네트워크의 복잡도가 올라가게 되면 단순히 네트워크를 깊게 쌓는 것이 성능을 높이는 방법이 될 수 없다는 것을 알 수 있었습니다. 위 그래프 처럼 학습을 잘못하게 되면 같은 iteration에서도 성능이 낮음을 알 수 있습니다.