본문 바로가기
[독파하기] 논문

# 2. Going deeper with convolutions

by Bebsae 2022. 4. 3.

Prerequisite

https://dev-ryuon.tistory.com/106?category=1009001 

 

# 1. Network In Network

Abstract 본 논문에서는 수용장에서의 로컬 패치에 대한 모델의 분류 성능을 강화하기 위해 "Network In Network"라는 구조를 제안한다. 전통적인 컨볼루션 레이어는 입력을 스캔하기 위한 비선형 활성

dev-ryuon.tistory.com

 

Abstract

Google에서 설계한 GoogLeNet은 22개의 레이어로 구성되어 있다. 이 아키텍처의 특징은 네트워크 내부의 컴퓨팅 자원의 활용도를 개선한 것이다. (네트워크의 깊이와 너비를 증가시키면서도 연산량을 유지했다는 점)

 

Introduction

GoogLeNet은 AlexNet보다 12배 적은 파라미터(학습할 가중치)가 적음에도 더 높은 정확도를 보인다. 객체 탐지는 심층 신경망의 활용성이나 큰 모델에서 비롯된것이 아닌 R-CNN과 같은 클래식한 컴퓨터 비전기술과 깊은 아키텍처의 시너지로부터 나온다.

 

GoogLeNet은 단순한 정확도라는 숫자에 대한 집착보다는 알고리즘의 효율성에 대한 내용을 포함한다. 연산량은 15억번으로 유지한다. 

 

본 논문에서는 효율적인 심층 신경망 아키텍처에 초점을 맞춘다. 'deep'이라는 단어에 대해 두 가지 의미로 해석한다.

- 'Inception module' 이라는 새로운 구조를 도입한다는 의미.

- 말그대로 네트워크의 깊이를 늘린다는 의미.

 

Related Work

LeNet-5로 시작하여, CNN은 표준 구조(하나 이상의 FC 레이어가 따라오는 겹쳐진 convolution 레이어들)를 가지고 있다. ImageNet처럼 데이터셋이 커질수록 레이어의 숫자 및 크기도 늘어나는 추세이다. 그에 따라 overfitting이 발생하는데, 이를 dropout으로 해결한다.

 

Max Pooling 레이어로 인한 공간 정보의 손실에 대한 걱정에도 불구하고, AlexNet과 같은 CNN 아키텍처에서는 성공적으로 localization, object detection, human pose estimation을 잘 수행한다. 영장류의 시각 피질로부터 영감을 받아 다양한 스케일을 처리하기 위해 다른 사이즈들의 Gabor filter들을 사용한다. 이러한 레이어를 Inception layer라고 부르며, 반복적으로 쌓아나간 것이 GoogLeNet이다. 

 

'Network In Network' 논문에서 신경망의 표현력을 높이기 위해 제안된 방법은 ReLU가 뒤따르는 1 x 1 convolution 레이어를 사용하는 방법이다. 1 x 1 convolution 레이어의 목적은 다음과 같다.

- 차원 축소 (dimension reduction)

- 네트워크의 사이즈 제한

 

Motivation and High Level Considerations

신경망의 퍼포먼스를 향상시키는 방법은 사이즈(너비와 깊이)를 늘리는 것이다. 많은 양의 라벨링된 학습 데이터에서는 좋지만, 이 단순한 솔루션은 두 가지 문제점을 안고있다.

 

첫 번째 문제점은 큰 사이즈는 많은 수의 파라미터를 의미하는데, 이는 한정된 라벨링된 학습 데이터셋에서는 오버피팅이 더욱 잘 일어난다. 

 

두 번째 문제점은 신경망의 사이즈가 균일하게 증가하면 계산 리소스가 기하급수적으로 증가하는 것이다. 

 

이러한 문제점들을 근본적으로 해결할 수 있는 방법은 convolution을 포함하여 fully connected를 sparse(불필요한 연결을 하지 않음)하게 바꾸는 것이다. 최적의 신경망을 구축하는 방법은 마지막 레이어의 활성화 값의 상관관계 통계를 분석하고, 높은 연관이 있는 출력의 뉴런들끼리 클러스터링하는 것이다. Hebbian principle(관련있는 뉴런들은 연결되어있다.)에 따르면 이 아이디어는 실제 상황에서도 적용가능한 아이디어다. 

 

위의 고양이를 보면 특정 시야에 대해 모든 뉴런이 반응하는 것이 아닌 일부의 뉴런만 반응하는 것을 알 수 있다. 이러한 biological system을 모티브로 구성된 아키텍처가 sparse이다.

 

오늘날의 연산은 sparse한 데이터 구조에 효율적이지 않다. 연산량을 100배나 줄였음에도 불구하고, lookup에 대한 오버헤드나 cache miss(hit가 나지않는)로 인해 효과가 없었다. 최근의 비전 지향 머신러닝 시스템은 convolution을 사용하는 덕분에 spartial domain에서 sparsity를 활용한다. 하지만, convolution들은 이전 레이어의 패치에서 dense 연결의 집합들로 구현되어 있다.

 

"필터 수준에서 sparsity를 사용하면서, dense 행렬의 연산을 활용하는 하드웨어를 이용하는 방법을 없을까?"

해답은 다음과 같다. "sparse matrix를 상대적으로 dense한 sub matrix들로 클러스터링할 것"

 

Architectural Details

인셉션 구조의 핵심 아이디어는 모델 아키텍처를 최적의 local sparse structure로 근사하는 것과 dense component로 이를 처리하는 것이다. 결론적으로 해야할 것은 최적의 local construction을 찾고 이를 반복하는 것이다. 본 논문에서 제안하는 local construction은 $1 \times 1$, $3 \times 3$, $5 \times 5$ convolution연산과 pooling operation이 들어가고, 이를 concatenate한다. 입력과 가까운 낮은 레이어에서는 local region에 집중하기 때문에 $1 \times 1$ convolution로 처리될 수 있다. 하지만, 고차원이 레이어로 갈수록 연관된 유닛(sparse neuron)끼리 cluster되면서 larger region에 집중하기 때문에 $3 \times 3$, $5 \times 5$ convolution을 포함한다. 즉, 여러 관점에서 feature를 추출하기 위한 것이다.

 

위에서 언급한 local construction 즉, inception module은 위 그림과 같다. 좌측의 모듈을 사용할 경우, $3 \times 3$, $5 \times 5$ convolution에 대해 파라미터 수가 급격하게 늘어나면서 연산량이 급격하게 늘어나는 단점이 있다. 그래서 차원 축소를 위해 $1 \times 1$ convolution을 추가한 모습이 우측의 그림이다. 모델의 전반적인 구조는 다음과 같다.

Aux classifier는 보조 분류기로써 중간의 결과를 점검할 수 있다.

 

Training Methodology

SGD with 0.9 momentum

 

참고

https://arxiv.org/abs/1409.4842

 

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

https://nrhan.tistory.com/entry/Going-deeper-with-convolutions-GoogLeNet

 

Going deeper with convolutions (GoogLeNet)

Going deeper with convolutions (GoogLeNet) Google에서 발표한 GoogleNet에 대한 리뷰입니다. 2014년 ImageNet에서 굉장히 좋은 성능을 얻었습니다. Inception 영화에서 영감을 얻었다고 하여 Architecture의..

nrhan.tistory.com

https://phil-baek.tistory.com/entry/3-GoogLeNet-Going-deeper-with-convolutions-%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0

 

GoogLeNet (Going deeper with convolutions) 논문 리뷰

논문 제목 : Going deeper with convolutions 이번에는 ILSVRC 2014에서 VGGNet을 제치고 1등을 차지한 GoogLeNet을 다뤄보려 한다. 연구팀 대부분이 Google 직원이어서 아마 이름을 GoogLeNet으로 하지 않았나 싶..

phil-baek.tistory.com

 

댓글