GoogleNet 특징
- 최적의 지역 희소 구조를 찾아 밀집된 구성 요소로 덮는 방식을 통해 설계되었습니다.
- 1x1, 3x3, 5x5 크기의 필터를 활용하여 다양한 패치를 커버하고, 이를 다음 단계의 입력으로 결합합니다.
- 계산 요구가 증가하는 경우 차원을 줄이는 길을 선택하여 계산 복잡성을 제어합니다.
- 1x1 컨볼루션은 차원 축소 및 선형 활성화를 통해 두 가지 기능을 수행합니다.
- 다양한 스케일에서 정보를 처리하고 집계하여 다음 단계에서 서로 다른 스케일의 특징을 동시에 추상화합니다.
- 중간 계층에 보조 분류기를 추가하여 구별 능력을 강화하고, 학습 시 총손실에 추가하여 정규화 효과를 제공합니다.
소개
인셉션 아키텍처는 이미지넷 대규모 시각 인식 도전(ILSVRC14)에서 새로운 최고 성능을 달성한 딥 컨볼루션 신경망입니다.
이 아키텍처의 주요 특징은 네트워크 내부의 컴퓨팅 자원을 효율적으로 활용하는 것입니다. 이는 네트워크의 깊이와 폭을 늘리면서도 계산 비용을 일정하게 유지할 수 있게 해 줍니다.
ILSVRC14에 제출된 특정 버전은 GoogLeNet으로 불리며, 22층 깊이의 네트워크로 분류와 탐지 맥락에서 성능이 평가되었습니다. 최근 3년간 감지와 품질이 급속히 향상된 것은 주로 딥러닝의 발전, 특히 합성곱 신경망의 결과입니다. 이러한 진전은 주로 하드웨어나 대형 데이터셋, 큰 모델보다는 새로운 아이디어, 알고리즘, 개선된 네트워크 구조 덕분입니다.
ILSVRC 2014 대회에서 최고 성적을 거둔 참가자들은 새로운 데이터 소스 대신 동일 대회의 분류 데이터셋을 사용하여 우수한 성적을 기록했습니다. 이러한 혁신은 단순히 더 깊거나 큰 모델이 아닌 딥 아키텍처와 고전 컴퓨터 비전의 시너지에서 비롯되었습니다. 논문에서 설명된 딥 아키텍처는 성능을 유지하면서도 예산을 고려하여 실제로 사용할 수 있도록 설계되었습니다.
관련 연구
대규모 데이터셋인 Imagenet 같은 경우, 층 수와 레이어 크기를 늘리고 과적합 문제를 해결하기 위해 dropout을 사용하는 추세입니다.
Inception 모델에 1x1 합성곱을 사용했으며, 이는 두 가지 주요 목적을 가지고 있습니다.
- 차원 축소: 1x1 합성곱은 계산 병목 현상을 제거하여 네트워크의 크기를 제한하지 않도록 합니다. 이를 통해 네트워크의 차원을 줄여 계산 효율성을 높입니다. (예를 들어, 입력 크기가 5x5x64인 경우 필터의 수를 줄여서 5x5x32 가 생성됨 → 데이터 크기 축소)
- 깊이와 너비 증가: 1x1 합성곱을 사용함으로써 네트워크의 깊이뿐만 아니라 너비도 성능 저하 없이 증가시킬 수 있습니다.
연구 동기와 고려사항
현재의 신경망, 특히 큰 신경망은 다음과 같은 두 가지 주요 문제를 가지고 있습니다.
1️⃣ 과적합: 매개변수가 너무 많아서 학습 데이터에만 잘 맞고 새로운 데이터에는 잘 맞지 않는 문제.
2️⃣ 계산 자원 소모: 큰 네트워크는 계산 자원을 많이 소모해서 비효율적일 수 있음.
해결책: 희소 연결된 아키텍처(Sparse Connected Architecture)
위 두 가지 문제를 해결하기 위한 근본적인 방법은 완전히 연결된 아키텍처에서 희소 연결된 아키텍처로 이동하는 것입니다.
🔵 완전히 연결된 아키텍처(Fully Connected Architecture): 모든 뉴런이 서로 연결되어 있어 매개변수가 많음.
🔵 희소 연결된 아키텍처(Sparse Connected Architecture): 일부 뉴런만 서로 연결되어 있어 매개변수가 적음.
(ex. 합성곱층(CNN) - 필터가 이미지 전체가 아닌 작은 패치에만 일부분 적용되기 때문)
→ 희소 행렬을 밀집된 하위 행렬로 클러스터링 하는 방법은 실용적
Inception 아키텍처
🔵 주요 아이디어
이미지 인식 네트워크에서 중요한 "최적의 로컬 희소 구조"를 작고 밀집된 블록들로 대체하는 방법. 이는 이미지 내의 특징을 위치에 상관없이 인식할 수 있도록 컨볼루션 블록으로 구성합니다.
🔵 구현 방법
Arora et al. 는 마지막 층에서 유닛들의 상관관계를 분석하고, 서로 관련성이 높은 유닛들을 그룹으로 묶는 방식을 제안합니다. 이렇게 묶인 그룹들은 다음 층의 유닛이 되고, 이전 층의 유닛들과 연결됩니다.
이전 층의 각 유닛이 입력 이미지의 일부를 나타낸다고 가정해 봅시다. 이러한 유닛들은 필터 뱅크라는 그룹으로 그룹화합니다. 결국 이것은 작은 한 영역에 많은 클러스터가 집중되어 있고, 다음 층에서는 1 ×1 컨볼루션으로 이 영역을 처리할 수 있음을 의미합니다.
더 큰 영역을 처리할 때는 클러스터들이 더 넓게 퍼져 있습니다. 이 경우, 큰 필터 하나로 넓은 영역을 커버할 수 있기 때문에, 작은 필터 여러 개를 사용하는 것보다 필요한 클러스터의 수가 줄어듭니다.
🔵 Inception 모듈
- 모듈들이 쌓이면서 출력 상관 통계가 변하고, 깊은 층에서는 3 ×3 및 5 ×5 컨볼루션 비율이 증가합니다.
- 5×5 컨볼루션의 비효율성(복잡성 급증) 문제를 해결하기 위해 차원 축소와 투영을 적용합니다.
- 3×3 및 5×5 컨볼루션 전에 1 ×1 컨볼루션으로 차원을 축소합니다.
🔵 Inception 네트워크
- 모듈을 쌓아 올리고, 가끔씩 2 스트라이드의 맥스 풀링 층을 포함하여 해상도를 절반으로 줄입니다.
- 계산 복잡성의 폭발적인 증가 없이 유닛 수를 늘릴 수 있습니다.
- 다양한 크기의 필터(1x1, 3x3, 5x5)를 사용하여 다양한 규모의 특징을 추출하고, 이를 집계하여 통합된 특징 맵을 생성 합니다.
- 통합된 특징 맵을 사용 하여 다음 단계에서 다양한 규모의 특징을 동시에 나타냅니다.
GoogLeNet
GoogLeNet은 더 깊고 넓은 Inception 네트워크를 포함하며, 앙상블에 추가하면 결과가 향상됩니다. 가장 성공적인 인스턴스(GoogLeNet)는 표 1에 설명되어 있습니다. 이 네트워크는 계산 효율성과 실용성을 염두에 두고 설계되어 저 메모리 환경에서도 실행될 수 있도록 했습니다. 네트워크는 총 22층 깊이(풀링 포함 시 27층)이며, 독립적인 빌딩 블록은 약 100개입니다.
ReLU 함수를 사용하여 모든 합성곱과 Inception 모듈 내부를 구현하였고, 수용 영역 크기는 224 ×224입니다. Inception 모듈에서 "3 ×3 축소" 및 "5 ×5 축소"는 합성곱 층을 적용하기 전에 1×1 합성곱 층의 필터를 사용했다는 것을 의미합니다. 예를 들어, 각 Inception 모듈의 행을 보면, "3×3 축소"는 "3×3 reduce" 열에, "5×5 축소"는 "5×5 reduce" 열에 표시되어 있습니다. "inception (3a)"의 경우
- #3 ×3 reduce: 96
- #5 ×5 reduce: 16
이는 3x3 합성곱 층에 입력되기 전에 1x1 합성곱 층을 사용하여 96개의 필터로 차원 축소를 수행하고, 5x5 합성곱 층에 입력되기 전에 1x1 합성곱 층을 사용하여 16개의 필터로 차원 축소를 수행하는 것을 의미합니다.
GoogLeNet 아키텍처의 특징
🔵 보조 분류기(Auxiliary classifier)
딥러닝 모델에서 학습 데이터셋을 훈련할 때 흔히 발생하는 문제는 기울기 소실 문제(vanishing gradient problem)인데요! GoogLeNet 아키텍처의 중간층에 보조 분류기를 사용하여 훈련 중에 기울기 소실 문제를 방지합니다. 보조 분류기는 Inception (4a) 및 (4d) 모듈의 출력 상단에 배치되었습니다.
구조적으로 보조 분류기는 다음과 같이 구성되어 있습니다.
- 평균 풀링 층:
- 5 ×5 필터 크기와 스트라이드 3을 사용.
- Inception (4a) 모듈의 경우 4 ×4 ×512 출력을 가짐.
- Inception (4d) 모듈의 경우 4 ×4 ×528 출력을 가짐.
- 1 ×1 합성곱 층:
- 차원 축소와 수정된 선형 활성화를 위한 128개의 필터를 가짐.
- 완전히 연결된 층:
- 1024개의 유닛과 수정된 선형 활성화를 가짐.
- 드롭아웃 층:
- 70%의 드롭아웃 비율을 사용.
- 선형 층과 소프트맥스 손실:
- 분류기(주 분류기와 동일한 1000 클래스를 예측하지만 추론 시 제거됨).
이 보조 네트워크는 훈련 시 사용되며 추론 시 제거됩니다.
훈련 방법론
GoogLeNet 네트워크는 DistBelief 분산 머신러닝 시스템을 사용해 훈련되었습니다. 비록 CPU 기반 구현만 사용했지만, 고급 GPU를 사용하면 네트워크는 일주일 내에 수렴할 수 있으며, 메모리 사용량이 주요 제약 조건입니다. 훈련은 비동기 확률적 경사 하강법과 0.9 모멘텀을 사용했고, 학습률은 매 8 에포크마다 4% 감소했습니다. Polyak 평균화를 사용해 추론 시 최종 모델을 생성했습니다.
대회 준비 동안 이미지 샘플링 방법은 여러 번 변경되었고, 기존 모델들은 드롭아웃과 학습률 등의 하이퍼파라미터 변경과 함께 재훈련되었습니다. 가장 효과적인 단일 훈련 방법을 제공하기는 어렵습니다. 일부 모델은 작은 크롭으로, 다른 모델은 큰 크롭으로 훈련되었습니다. 대회 후 효과적이었던 방법 중 하나는 이미지 면적의 8%에서 100% 사이의 다양한 크기 패치를 샘플링하고, 종횡비를 3/4에서 4/3 사이에서 무작위로 선택하는 것이었습니다. 또한, Andrew Howard의 광학적 왜곡이 과적합 방지에 유용했고, 무작위 보간 방법(쌍선형, 영역, 최근접 이웃 및 큐빅)을 사용했으나, 최종 결과에 긍정적인 영향을 미쳤는지는 불확실했습니다.
ILSVRC 2014 분류 챌린지 설정 및 결과
동일한 GoogLeNet 모델의 7가지 버전을 독립적으로 훈련하고, 이를 앙상블 예측에 사용했습니다. 이 모델들은 동일한 초기화(초기 가중치까지 동일하게) 및 학습률 정책으로 훈련되었으며, 샘플링 방법과 입력 이미지를 처리하는 순서만 무작위로 달랐습니다.
테스트 과정에서는 이미지의 여러 크기와 위치에서 총 144개의 크롭을 생성하여 사용했습니다. 이는 이전보다 더 공격적인 크로핑 접근 방식으로, 전년도에 비해 성능이 향상되었습니다. 각 크롭과 모든 분류기에 대해 소프트맥스 확률을 평균화하여 최종 예측을 얻었습니다.
이 접근 방식은 검증 데이터와 테스트 데이터에서 모두 6.67%의 top-5 오류율을 기록하며 1위를 차지했습니다. 이는 2012년 SuperVision 접근 방식에 비해 56.5%, 전년도 Clarifai 접근 방식에 비해 약 40% 오류율이 감소한 것입니다. 추가로, 예측 시 사용된 모델 수와 크롭 수를 변경하여 여러 테스트 설정의 성능을 분석했습니다.
결론적으로, 다양한 기술을 통해 GoogLeNet은 높은 성능을 달성했고, 이는 챌린지에서 1위를 차지하는 데 기여했습니다.
ILSVRC 2014 탐지 챌린지 설정 및 결과 (생략)
결론
신경망에서 예상되는 최적의 희소 구조를 쉽게 사용할 수 있는 밀집된 구성 요소로 근사화하는 것이 컴퓨터 비전의 신경망을 개선하는 데 유효한 방법입니다. 이 방법의 장점은 얕고 폭이 좁은 네트워크에 비해 계산 요구 사항이 적게 증가하면서도 품질이 크게 향상된다는 점입니다.
또한, (탐지) 컨텍스트를 활용하지 않거나 바운딩 박스 회귀를 수행하지 않았음에도 불구하고 좋은 성능을 발휘하였습니다. 비슷한 깊이와 너비를 가진 훨씬 더 비싼 네트워크와 비슷한 품질의 결과를 제공할 수 있지만, Inception 아키텍처는 더 적은 비용으로 유사한 성능을 달성할 수 있습니다.
구체적으로, Inception 아키텍처는 희소 구조를 사용하여 계산 효율성을 높이고, 이 접근 방식이 전반적으로 실행 가능하며 유용하다는 확실한 증거를 제공한다는 점을 강조합니다. 이는 자동화된 방식으로 더 희소하고 정제된 구조를 만드는 것이 유망한 미래 연구 방향임을 시사합니다.