본문 바로가기

University/Vehicle Intelligence Foundation

[CNN] GoogLeNet

소개

 GoogLeNet은 2014년도 ILSVRC(ImageNet Large Sclae Visual Recognition Challenge)에서 우승한 CNN 네크워크입니다.

 정확하게 보면 GoogLeNet은, Inception이라는 개념의 네트워크들 중 하나입니다. 따라서 GoogLeNet은 Inception-v1와 같은 모델입니다.

 GoogLeNet의 논문은 "Going Deeper With Convolutions"로, GoogLeNet이란 이름이 붙은 이유는 구글이 알고리즘 개발에 참여했기 때문입니다.

 

특징

Inception Module

  • GoogLeNet은 9개의 Inception Module을 포함하고 있습니다.
  • Inception Module은 다양한 종류의 특성을 도출하기 위해 다양한 사이즈의 필터 커널을 이용해 Convolution 해줍니다.
  • 3 x 3 Max Pooling은 Convolution Feature Map들과 사이즈를 동일하게 하기 위해서 Padding을 사용합니다.
  • GoogLeNet은 Inception Module로 인해 늘어난 연산량을 줄이기 위해 1 x 1 Convolution을 추가합니다.

1 x 1 Convolution

단일 5 x 5 Convolution과 1 x 1 Convolution 혼합 비교

  • GoogLeNet에서 1 x 1 Convolution은 Feature Map의 갯수를 줄이는데 사용합니다.
  • Feature Map의 갯수가 줄어들면 Convolution을 하는데 사용되는 연상량이 줄어듭니다.

Global Pooling

Fully Connected와 Global Average Pooling 비교

  • GoogLeNet은 AlexNet, VGGNet과 달리 Fully Connected 대신 Global Average Pooling을 사용합니다.
  • Global Average Pooling은 전 층에서 산출된 Feature Map들을 각각 평균낸 것을 이어서 1차원 벡터로 만들어 줍니다.
  • Fully Connected와 비교하여 가중치가 없어 연산이 빠르다는 장점이 있습니다.

Auxiliary Classifier

  • GoogLeNet은 Gradient Vanishing 문제를 해결하기 위해 네트워크 중간에 두 개의 보조 분류기(Auxiliary Classifier)를 달아주었습니다.
  • Global Average Pooling - Fully Connected1 - Fully Connected2 - Softmax 순으로 진행됩니다. 
  • Loss를 중간 중간에서 구하기 때문에 Gradient가 적절하게 Back Propogation 된다고 합니다. 단, 영향력이 지나치게 높은 것을 막기 위해 Loss에 0.3을 곱합니다.
  • Auxiliary Classifier는 훈련할 때만 사용할 뿐, 테스트 하는 과정에서는 제거합니다.

 

구조

GoogLeNet 구조 (Inception Module 구분)

Input Image

  • 224 x 224 x 3 이미지를 입력으로 받습니다.

Inception Module(Convolution Layer)

  • 총 9번의 Inception Module을 시행합니다.
  • 단, Input Image와 가까운 부분은 단일 Convolution을 시행합니다. 왜냐하면 얕은 네트워크는 Inception Module을 사용해도 효과가 없음을 확인했기 때문입니다.
  • Model 훈련중일 때 4번째와 7번째 Inception Module은 Auxiliary Classifier를 시행합니다.

Final Layer(Fully Connected Layer)

  • Global Average Pooling으로 Flatten 해준 후 1000개의 뉴런과 Fully Connected 해줍니다.
  • 1000개 뉴런 출력값에 Softmax 함수를 적용하여 1000개 클래스 각각에 속할 확률을 나타냅니다.

 



출처

 [1] GoogLeNet: https://bskyvision.com/539

 [2] GoogLeNet: https://kangbk0120.github.io/articles/2018-01/inception-googlenet-review

 [3] GoogLeNet: https://ikkison.tistory.com/86

 

'University > Vehicle Intelligence Foundation' 카테고리의 다른 글

[CNN] ResNet18  (0) 2021.04.19
[CNN] VGG16  (0) 2021.04.19
[CNN] AlexNet  (0) 2021.04.18
[실습] YOLO - Object Detection  (0) 2021.04.07
[Perception Open Source] Point Cloud Library  (0) 2021.04.06