Going Deeper with Convolutions
We propose a deep convolutional neural network architecture codenamed "Inception", which was responsible for setting the new state of the art for classification and detection in the ImageNet Large-Scale Visual Recognition Challenge 2014 (ILSVRC 2014). The
arxiv.org
0. 핵심요약
Inception 구조를 처음 제시한 논문
1x1 필터와 pooling 의 적절한 활용으로 파라미터의 수는 줄이면서 성능은 올리는 연구가 성공적으로 수행
깊이와 넓이가 모두 깊어지더라도 과적합이 나지 않고 성능 향상을 이뤄냈
1. Background
- Dataset
GoogLeNet은 ILSVRC-2014 대회에서 1등을 차지한 모델이다 (동일 대회에서 2위가 VGG이다)
따라서, 해당 모델은 학습과 검증 역시 ImageNet 데이터를 통해 이루어졌다
2. 논문 핵심 내용
- Motivation and High Level Considerations
딥러닝 모델의 성능 향상에 가장 좋은 방법은 사이즈를 키우는 것
이것은 깊이와 넓이를 크게 하는 것을 의미
하지만 이 방법은 과적합이 되기 쉽고, 컴퓨팅 자원이 너무 많이 필요하다는 것이 단점
이 두 가지 문제를 해결하는 방법은 완전히 연결된 구조에서 희소하게 연결된 구조로 옮기는 것임
이것의 주된 결과는 만약 데이터 셋의 확률 분포가 크고 희소한 신경망을 대표한다면, 최적의 네트워크는 마지막 층의 활성화의 상관성을 분석하고 출력과 높은 상관성을 가진 뉴런을 분류함으로써 층별로 쌓을 수 있다는 것임
이것은 수학적으로 증거가 부족하지만 햅의 이론에 의해 더 적은 조건으로도 잘 적용된다는 것을 보임
하지만 현재 컴퓨팅은 희소한 데이터 구조를 계산하는 것은 매우 비효율적임
이는 점점 발전해 큰 필터와 많은 배치 사이즈의 구조를 더 효과적으로 계산하도록 발전
인셉션 구조는 여러 문제점에도 불구하고 파라미터 튜닝에 따라 좋은 결과를 보였음
- Architectural Details
인셉션 구조의 주된 아이디어는 dense components에서 optimal local sparse structure에 근사하는 것을 찾는 방법에 기초
불변성(translation invariance) → 특정 함수에 어떤 입력이 들어가도 동일한 출력이 나온다는 것
불변성을 가정하는 것은 우리의 네트워크가 합성곱을 쌓은 것으로부터 왔다는 것을 의미
우리가 필요한 것은 optimal local construction을 찾고 이를 반복하는 것
하나의 층별 구조는 마지막 층의 상관성을 분석할 수 있고 높은 상관성으로 그룹을 나눌 수 있다고 알려짐
이러한 분류는 다음층과 이전 층에 모두 연결되어 있음
이전 층으로부터 온 각각의 유닛이 입력 이미지의 일부 지역에 해당하고 이 유닛들은 필터에 그룹지어진다고 가정
입력에 가까운 층은 국소화된 구역에 더 집중할 수 있음
이것은 더 이상 분류를 위해 하나의 부분에 집중할 필요가 없고 이를 다음 층에 1x1 합성곱을 넣음으로써 대체 가능해짐
하지만 이는 너무 작은 부분만을 보게 되어서 이를 보완하기 위해 더 큰 필터도 사용함
최종적으로 1x1, 3x3, 5x5를 모두 사용해 합침
하지만 더 좋은 성능을 위해서는 풀링 계층도 필요하기 때문에 위의 필터와 평행한 곳에 같이 위치시킴
더 높은 층으로 갈수록 추상적인 특징을 잡아내기 때문에 높은 층에서는 더 많은 3x3, 5x5 합성곱이 필요함
한가지 문제점은 5x5 합성곱은 연산량이 높다는 것
하지만 최대한 이미지를 압축하지 않고 희소한 데이터에서 많은 정보를 얻고 싶었기 때문에 이를 해결하기 위해 3x3, 5x5를 계산하기 이전에 1x1 합성곱을 먼저 계산해주었음
일반적으로 인셉션 구조는 풀링 계층을 가지고 있지만 이는 높은 층에서만 필요하고 낮은 층에서는 필요가 없음
이러한 구조의 이점은 계산 시간의 증가 없이 유닛의 수를 증가시킨다는 것
다른 장점은 다양한 스케일에서 정보를 얻을수 있어서 다른 스케일에서 정보를 추론할 수 있다는 장점이 있음
인셉션 구조를 사용하게 되면 동일 성능의 모델보다 학습 속도가 매우 빠르다는 장점이 있음
3. Model Architecture
GoogLeNet의 전체적인 Architecture는 다음과 같다
ReLU 함수를 사용했으며, 입력 데이터의 이미지는 224 x 224 RGB 이미지
#3x3 reduce와 #5x5 reduce는 기존 합성곱을 적용하기 전에 하는 1x1 필터를 의미
pool proj는 최대 풀링 계층 이후에 적용하는 1x1 필터를 의미
해당 모델은 효율적인 컴퓨팅 계산을 위해 설계되어서 적은 메모리로도 사용 가능
파라미터를 가진 층만 계산하면 22층이고 풀링까지 포함하면 27층임
다른 논문에 의해 최종 분류 이전에 평균 풀링을 사용했지만 기존과 다르게 fc 계층을 추가하였음
이 이유는 다른 곳에서도 잘 적용하기 위함이지만 확실하게 증명된 것은 아님
층이 깊어질수록 기울기 계산에 대한 우려도 생김
이를 개선하기 위해 계층 4a와 4d 뒤에 분류를 해서 이를 이용해 기울기를 계산했고 여기서 나오는 손실 함수 값을 기존 값과 더해 계산했음
SGD 사용, 모멘텀은 0.9, 학습률은 매 8 에폭마다 4%씩 감소
이미지 샘플링 방법은 대회가 진행되면서 계속 변경되었지만, 모델의 파라미터들이 계속해서 수정되면서 가장 확실한 방법을 정하지 못했음
대회가 끝나고 찾은 방법은 이미지 사이즈를 8%에서 100% 사이에서 랜덤하게 선택하는 것과 이미지의 비율을 3/4 에서 4/3 사이에서 랜덤하게 선택하는 방법이 좋았음
다른 논문에서 발표된 사진 왜곡 기술 역시 과적합을 방지하는 데에 효과적
추가적으로 랜덤 보간 방법을 활용
이처럼 다양한 방법을 사용하였고, 어떤 것이 가장 효과적인지는 알 수 없음
4. Experiment
- ILSVRC 2014 Classification
GoogLeNet은 당시 최고의 성능을 보이는 SOTA 모델이였다는 것을 알 수 있다
- ILSVRC 2014 Detection
Detection 성능은 mAP 기준으로 측정되었는데, 이 역시 SOTA 수준의 성능을 보이는 것을 볼 수 있다
5. Contribution
컴퓨터 비전을 위한 신경망을 개선하는데 있어서, 예상되는 최적의 희소 구조를 현재 사용 가능한 밀집된 구성 요소로 근사하는 방법이 유용하다는 강력한 증거를 제시
얕고 좁은 네트워크에 비해 상당한 품질 향상을 비교적 적은 계산 요구로 달성
+ Comment
GoogLeNet은 대회에서 1등을 차지한 모델이지만 VGG가 압도적인 효율을 보여준 탓에 그 유명세에 살짝 밀리는 느낌이 있다
하지만 이 역시 딥러닝 발전에 큰 획을 그은 모델이며, 딥러닝이 점차 거대해지기 시작한 모델이 아닐까 싶다
(추후 수정 예정)