본문 바로가기
논문 리뷰/CV

[GoogLeNet] 24.01.23 스터디 (논문)

by hyeon827 2024. 1. 23.

GoogLeNet은 2014년 ILSVRC에서 VGGNet을 제치고 우승을 차지한 모델이다.

이름에서 알 수 있듯이 구글이 해당 모델 개발에 참여했다. 

해당 논문을 통해 GoogLeNet의 구조와 특징을 알아보고 VGGNet과의 차별점을 알아보고자 한다.

 

Introduction

  • 지난 3년간(2012~2015) CNN 분야 놀라운 속도로 발전
  • 이는 하드웨어 발전, 더 큰 데이터세트 뿐만 아니라 새로운 알고리즘에 대한 아이디어의 결과
  • GoogLeNet은 AlexNet보다 12배 적은 매개변수 사용, but 더 정확(딥 아키텍처와 고전적인 컴퓨터비전의 시너지효과)
  • GoogLeNet은 순수한 학문적 호기심을 넘어 알고리즘의 효율성(전력 및 메모리 사용량) 중요시 여김 
  • 이를 통해 Mobile 및 Embedded 환경에 적용가능
  • GooLeNet은 심층(Deep) 신경망 아키텍처인 'Inception'에 초점

    Deep의 두 가지 의미

    1) 'Inception Module'의 형태로 새로운 형태의 조직 도입

    2) 네트워크의 깊이가 증가한다는 직접적인 의미

 

Related Work

  • LeNet-5 이후 CNN은 Conv layer + 하나 이상의 FC로 이어지는 표준 구조를 가지게 됨
  • 대규모 데이터 세트(ImageNet)의 경우 Dropout 사용하면서 layer 수와 크기를 늘리면서 과적합 해결 노력
  • GoogLeNet도 이와 같은 구조
  • 1X1 Conv layer 추가하여 ReLU 활성화함수가 뒤따름 

       *두 가지 목적(1x1)

       1) 병목현상을 제거하기 위한 차원 축소

       2) 성능의 큰 영향을 주지 않으면서도 네트워크의 깊이 뿐만 아니라 폭도 늘릴 수 있음

 

Motivation and High Level Considerations

  • 심층 신경망의 성능을 개선하는 가장 간단한 방법은 신경망의 크기(깊이와 폭)를 늘리는 것

   But

  • 1)신경망의 크기가 클수록 더 많은 수의 파라미터 존재 -> 특히 학습데이터 수가 적을 경우 과적합 가능성 증가
  • 2) 네트워크 크기가 균일하게 증가하면 컴퓨터 리소스 사용이 급격히 증가한다는 단점

   두 문제를 모두 해결하는 근본적인 방법

   -> fully connected를 sparsely connected 구조로 전환

  • 데이터 세트의 확률 분포가 매우 희박한 대규모 심층 신경망으로 표현되는 경우
  • 마지막 층 활성화의 상관 통계를 분석을 함
  • 그 후, 상관관계가 높은 뉴런을 클러스터링하여 계층별 최적의 네트워크 토폴로지 구성

   But

  • 오늘날의 컴퓨팅 인프라는 sparse 데이터에 대해 매우 비효율적
  • Dense data는 꾸준히 개선되고 고도로 조정된 수치 라이브러리와 CPU 및 GPU의 사용으로 빠른 연산 가능해짐
  • 반면, Sparse data의 연산은 발전이 미미 (격차는 더욱 커짐)

    => 따라서, sparse matrix를 효율적으로 계산하기 위해 상대적으로 밀도가 높은 하위 dense matirx들로 클러스터링

 

Architectural Details

Inception의 주요 아이디어

  • CNN에서 각 요소를 최적의 local sparse structure를로 근사화하고, 이를 dense component로 바꾸는 방법을 찾는 것
  • 결론적으로, 해야할 것은 최적의 local construction을 찾고 이를 반복하는 것
  • 논문에서는 local construction을 1x1, 3x3, 5x5 convolution과 pooling이 들어가고, 이를 concatenate
  • 입력과 가까운 낮은 layer에서는 local region에 집중 -> 1x1 Conv로 처리할 수 있음
  • But, 고차원의 layer로 갈수록 연관된 유닛끼리 cluster되면서 lareger region에 집중
  • -> 3x3, 5x5 Conv 포함 => 즉, 여러 관점에서 feature를 추출하기 위한 것

  • But, 3x3, 5x5 Conv에 대해 파라미터 수가 급격하게 늘어나 연산량이 급격하게 증가
  • 해당 문제 해결을 위해 1x1 Conv을 추가하여 차원 축소

GoogLeNet

  • Inception module 내부를 포함하여 모든 Convolution은 ReLU 활성화 함수 사용
  • receptive field 크기는 mean subtraction이 적용된 RGB 채널을 사용하는 224x224
  • '#3x3 reduce' 및 '#5x5 reduce' = 3x3 및 5x5 Conv 앞에 사용된 1x1 필터의 채널 수
  • pool proj = max pooling layer 뒤에 오는 1x1 필터의 채널 수

    GoogLeNet 세분화

    (1) Convolution Part

  • Inception Module에 들어가기 전에 Conv 연산 수행
  • 표에서 inception(3a)에 들어가기 전 

   

   (2) Inception Module

  • Inception 연산 과정을 거친 후, DepthConcat을 통해 각기 다른 연산 합침
  • 표에서 모든 inception에 적용

   (3) Auxiliary Classifier

  • 기울기 소실 문제를 보조 분류기를 넣음으로써 기울기를 강화하여 해결
  • 보조 분류기는 inception(4a)와 inception(4d) 결과에 적용

 

   (4) 최종 결정 

  • inception(5b) 과정이 끝났을 때, 최종 결과 출력

 

Training Methodology

  • 0.9 momentum의 Stochastic gradient descent 이용
  • learning rate는 8 epochs마다 4% 감소
  • 가로, 세로 비율 3:4와 4:3 사이로 유지하며 본래 사이즈의 8%~100%가 포함되도록 다양한 크기의 patch 사용
  • photometric distortions 통해 학습 데이터 늘림

Conclusions

  • Inception 구조는 Sparse 구조를 Dense 구조로 근사화하여 성능을 개선
  • 이는 기존 CNN 성능을 높이기 위한 방법과는 다른 새로운 방법
  • 성능은 대폭 상승하지만 연산량은 약간만 증가한다는 장점

'논문 리뷰 > CV' 카테고리의 다른 글

[X:AI] InceptionV2/3 논문 리뷰  (0) 2024.03.14
[X:AI] SPPNet 논문 리뷰  (0) 2024.03.10
[VGG] 24.01.23 스터디 (논문)  (0) 2024.01.21
[LeNet] 24.01.19 스터디 (논문)  (0) 2024.01.19
[AlexNet] 24.01.16 스터디 (논문)  (1) 2024.01.15