상세 컨텐츠

본문 제목

[2주차 / 천원준 / 논문리뷰] Going deeper with convolution

방학 세션/CV

by 원준천 2023. 2. 1. 00:00

본문

Abstract

GoogLeNet은 인셉션이라는 구조를 사용하여 ILSVRC 2014에서 우승했습니다. 이 모델의 주요 특징은 연산 자원의 효율이 개선되었다는 점인데 오늘은 GoogLeNet이 어떤 구조를 가지고 있는지 알아보겠습니다.

 

Motivation

심층 신경망의 성능을 높일수있는 가장 쉬운 방법은 크기를 늘리는 것입니다. 이때 크기는 depth (the number of levels)width(the number of units at each level)을 의미합니다. 하지만 이러한 방법은 두가지 문제를 가지고 있습니다. 크기가 커진다는 것은 파라미터의 수가 증가한다는 것입니다. 따라서 오버피팅의 위험이 증가합니다. 이는 병목현상이 되는데 고품질의 훈련 셋을 만들기 어렵고 비용이 많이 들기 때문입니다. 두번째로 네트워크가 커질수록 자원의 사용량이 급격하게 증가하기 때문입니다. 모든 경우 자원은 한정적이기 때문에 자원의 효율적인 분배가 가장 중요합니다.

 

앞서 언급된 두가지 문제를 해결하는 방법은 Fully connected한 구조에서 sparsely connected한 구조로 바꾸는 것입니다. 하지만 현재의 컴퓨터는 sparse한 데이터 구조의 연산을 진행할 때 비효율적입니다. 따라서 인셉션 아키텍쳐는 sparse한 구조를 상대적으로 사용 가능한 dense한 형태로 만들기 위해 처음 고안되었습니다.

 

Inception

Inception의 목표는 최적의 local sparce structure로 근사화하고, 그 값을 dense component로 바꾸는 겁니다.

 

처음에 고안된 인셉션 모듈은 1x1, 3x3, 5x5, convolution3x3 max pooling을 가지고 만들어졌다. 하지만 이러한 구조는 필터의 수가 커질 때 연산량이 많다는 단점이 존재합니다. 따라서 두번째 아이디어가 제시됐습다.

 

연산량을 줄이기 위해서 3x3, 5x5 convolution 전에 1x1 convolution으로 피쳐맵의 차원의 수를 줄여주었습니다. 또한 3x3 max pooling 이후에 1x1 convolution을 추가해주었습니다.

 

GoogLeNet

출처: 라온피플

GoogLeNet은 총 22개의 레이어로 구성되었습니다.

빨간 동그라미는 인셉션이고 위에 적힌 숫자는 피쳐맵의 수입니다. 파란 모듈은 convolution layer, 빨간 모듈은 max pooling, 노란 모듈은 softmax layer입니다.

 

아래표에 더욱 상세한 모델 파라미터들이 정리되어 있습니다.

출처: 라온피플

화살표가 가르키는 부분은 auxiliary classifier입니다. 모델의 깊이가 깊어졌기 때문에 vanishing gradient문제가 발생할 수 있기 때문에 이를 해결하기 위해 추가되었습니다. 역전파를 통해 gradient를 전달하는 방법이라고 볼 수 있습니다.

 

GoogLeNetglobal average pooling을 배치하여 피쳐맵을 벡터화 하여 소프트 맥스를 적용합니다. 이런식으로 하게 될 경우 학습 매개변수의 개수가 줄어든다는 장점이 있습니다.

 

Conclusion

Inception 모듈을 사용하여 sparse 구조를 dense한 구조로 근사화 하였고 이는 연산량에 큰 무리를 주지 않으면서 성능을 상승시켰습니다.

 

참고자료:

https://laonple.blog.me/220686328027 -라온피플, "5. GoogLeNet [1] - 라온피플 머신러닝 아카데미 -"

https://arxiv.org/abs/1409.4842 - Going deeper with convolution

관련글 더보기

댓글 영역