본문 바로가기

논문 리뷰/Image Classification

[논문 리뷰] Going deeper with convolutions(GoogLeNet)

 이번 포스팅에서는 2014년 ILSVRC에서 우승한 모델인 GoogLeNet, 또는 Inception에 대해 살펴보겠습니다. 이 모델의 이름은 영화 “인셉션(Inception)”에서 영감을 받았는데, 인셉션이 꿈속의 꿈을 다루는 것처럼 GoogLeNet은 네트워크 내부에 네트워크를 구축하는 개념을 담고 있습니다.

영화 '인셉션'의 한 장면

Methods for Improving Network Performance

가장 간단한 네트워크 성능 향상 방법은 네트워크의 높이와 너비를 증가시키는 것입니다. 하지만 이 접근법에는 몇 가지 문제가 있습니다.

  1. 파라미터 수의 증가로 인한 과적합 위험: 네트워크의 크기가 커질수록 학습해야 할 파라미터의 수가 기하급수적으로 증가하여 overfitting에 취약해집니다.
  2. 계산 자원의 급격한 증가: 네트워크의 크기를 키우면 그에 비례하여 필요한 계산 자원이 급격히 늘어납니다.

이를 해결하기 위해 GoogLeNet은 sparsely connected architecture를 사용합니다. 하지만 컴퓨터 연산에서는 연결이 조밀할수록(Dense) 더 빠르게 처리되기 때문에 이는 하나의 한계점으로 작용할 수 있습니다.

Inception Module

Inception 모듈은 효율적인 특징 추출을 위해 다양한 크기의 필터(1x1, 3x3, 5x5)를 병렬로 사용합니다. 또한, 3x3 max pooling에 패딩을 추가하여 연산을 수행합니다. 이러한 방식은 특징 추출을 드문 연결 구조로 진행하면서도 연산 결과는 조밀하게 만들고자 합니다. 다만, 이러한 접근법은 차원의 증가라는 한계를 가지고 있습니다.

 

 

 

1x1 Convolution

1x1 컨볼루션 연산은 출력 채널의 수를 조절하며 곱 연산을 합 연산으로 바꿔 계산량을 줄이고 비선형성을 추가합니다.

Architecture

Inception 모델의 구조는 아래와 같습니다.

Global Average Pooling

기존의 CNN 구조에서 완전 연결층(fc layer)을 대체하기 위해 글로벌 평균 풀링을 사용합니다. 이는 특징 맵의 값을 평균 내어 소프트맥스 층에 직접 입력함으로써 공간 정보를 유지하고, fc layer의 가중치 최적화 과정을 생략하게 해줍니다.

 

Auxiliary Classifier

보조 분류기는 그래디언트 소실(gradient vanishing) 문제를 해결하기 위해 네트워크 중간에서 추가적인 역전파(back propagation)를 발생시킵니다.

Classification Performance

GoogLeNet의 평가 과정에서는 7개의 GoogLeNet 모델을 학습시켜 앙상블 예측을 수행했습니다. 데이터를 256, 288, 320, 352 크기로 리사이즈한 후, 정사각형 영역을 잘라 224x224 크기로 활용했습니다.

 

Conclusion

GoogLeNet은 Inception 모듈을 도입하여 깊이와 너비를 동시에 증가시키면서도 계산 효율성을 유지하는 새로운 신경망 구조를 제시했습니다. 이는 상대적으로 적은 계산 비용으로 높은 성능을 달성할 수 있게 해주며, 제한된 리소스를 가진 환경에서도 사용할 수 있습니다. GoogLeNet 구조는 후속 연구에 큰 영감을 주었으며, 복잡한 신경망을 효율적으로 설꼐하는 방법론에 새로운 시각을 제공했다고 생각합니다.