GoogLeNet은 나중에 Inception v1으로 개명된, 2014년 Google 연구자들이 소개한 컴퓨터 비전용 합성곱 신경망(CNN)이다. 이는 2014년 ImageNet 대규모 시각 인식 챌린지(ILSVRC14)에서 우승하여 이미지 분류의 오류율을 크게 줄였다. 이 아키텍처는 줄기(데이터 입력), 몸통(데이터 처리), 머리(예측)를 분리한 초기 CNN으로 역사적으로 중요하며, 이러한 설계는 대부분의 현대 CNN 아키텍처에서 지속되고 있다.
"GoogLeNet"이라는 이름은 1998년 Yann LeCun이 만든 CNN인 LeNet에 대한 경의를 표한 것으로, 둘 다 CNN이기 때문이다. 팀은 또한 2010년 영화 인셉션의 대사인 "우리는 더 깊이 들어가야 한다"는 인터넷 밈에서 따와 "Inception"이라고 불렀다. 이후 버전이 출시되면서 원래 아키텍처는 "Inception v1"으로 개명되었다. 모델과 코드는 GitHub에서 Apache 2.0 라이선스로 공개되었다.
아키텍처 및 주요 혁신
Inception v1은 22개 레이어로 구성된 심층 CNN이며, 대부분이 "Inception 모듈"이다. 원래 논문은 Inception 모듈을 Network in Network 접근 방식과 Arora 외 (2014)의 연구의 "논리적 정점"으로 설명했다. 각 Inception 모듈은 서로 다른 크기(1x1, 3x3, 5x5)의 여러 합성곱 필터와 풀링을 병렬로 적용한 다음 출력을 연결하여 네트워크가 다양한 규모의 특징을 포착할 수 있게 한다.
깊이 때문에 Inception v1은 기울기 소실 문제를 겪었다. 팀은 네트워크 내 1/3 및 2/3 깊이에 두 개의 "보조 분류기"를 삽입하여 이 문제를 해결했다. 손실 함수는 세 분류기의 가중 합이었다: L = 0.3 L_aux1 + 0.3 L_aux2 + L_real. 이러한 보조 분류기는 훈련이 완료된 후 제거되었다. 이 문제는 나중에 ResNet 아키텍처에 의해 더 근본적으로 해결되었다.
아키텍처는 서로 겹쳐진 세 부분으로 구성된다:
- 줄기(데이터 입력): 처음 몇 개의 합성곱 레이어는 이미지를 더 작은 크기로 축소하는 데이터 전처리를 수행한다.
- 몸통(데이터 처리): 다음의 많은 Inception 모듈이 데이터 처리의 대부분을 수행한다.
- 머리(예측): 마지막 완전 연결 레이어와 소프트맥스가 이미지 분류를 위한 확률 분포를 생성한다.
Inception v2
Inception v2는 2015년에 출시되었으며, 배치 정규화를 제안한 논문으로 더 유명하다. 이는 1,360만 개의 매개변수를 가졌다. Inception v1을 개선하여 배치 정규화를 추가하고 드롭아웃과 지역 응답 정규화를 제거했는데, 연구자들은 배치 정규화를 사용할 때 이러한 기법이 불필요해진다는 것을 발견했다.
Inception v3
Inception v3는 2016년에 출시되었다. 이는 분해 합성곱을 사용하여 Inception v2를 개선했다. 예를 들어, 단일 5x5 합성곱은 두 개의 겹친 3x3 합성곱으로 분해될 수 있으며, 둘 다 5x5 크기의 수용 영역을 가진다. 5x5 커널은 25개의 매개변수를 가지는 반면 분해된 버전은 18개를 가지므로, 분해된 버전이 매개변수 효율성이 더 높다. 팀은 경험적으로 분해 합성곱이 성능에 도움이 된다는 것을 발견했다.
또한 합성곱 레이어와 풀링 레이어의 출력을 연결하는 형태의 차원 축소를 도입했다. 예를 들어, 35x35x320 크기의 텐서는 스트라이드 2 합성곱으로 17x17x320으로 축소되고, 풀 크기 2x2의 최대 풀링으로 17x17x320으로 축소된 다음, 이를 연결하여 17x17x640이 된다.
Inception v3는 또한 훈련 중 가장 낮은 보조 분류기를 제거했으며, 보조 머리가 정규화의 한 형태로 작동한다는 것을 발견했다. 또한 라벨 스무딩 정규화를 제안했다: 라벨 c를 가진 이미지에 대해, 모델은 원-핫 분포 δ_c를 예측하는 대신 스무딩된 분포 (1 - ε)δ_c + ε/K를 예측하며, 여기서 K는 총 클래스 수이다.
Inception v4 및 Inception ResNet
2017년에 팀은 Inception v4, Inception ResNet v1, Inception ResNet v2를 출시했다. Inception v4는 더 많은 분해 합성곱과 벤치마크를 개선하는 것으로 경험적으로 발견된 기타 복잡성을 포함한 점진적 업데이트였다. Inception ResNet v1과 v2는 모두 Inception v4의 변형으로, ResNet 아키텍처에서 영감을 받아 각 Inception 모듈에 잔차 연결을 추가한 것이다.
Xception
Xception("극단적 Inception")은 2017년에 발표되었다. 이는 잔차 연결이 있는 깊이별 분리 합성곱 레이어의 선형 스택이다. 이 설계는 CNN에서 특징 맵의 채널 간 상관 관계와 공간 상관 관계를 완전히 분리할 수 있다는 가설에 기반하여 제안되었다. 각 Xception 네트워크 훈련에는 60개의 K80 GPU에서 3일, 즉 약 0.5 페타플롭-일이 소요되었다.
Inception 계열은 컴퓨터 비전을 위한 딥러닝 발전에 매우 영향력이 있었으며, 그 아키텍처 원칙은 현대 CNN 설계에 계속 영향을 미치고 있다.