구조
- 컨볼루션층 5개와 완전연결층 3개
- 컨볼루션층은 200만개, FC층은 6500만개 가량의 매개변수를 가짐
→ 향후 CNN은 FC층의 매개변수를 줄이는 방향으로 발전
- 당시 GPU의 메모리 크기 제한으로 인해 GPU#1(색과 관련되지 않은 특징 추출)과 GPU#2(색과 관련된 특징 추출)로 분할하여 학습 수행
성공 요인
- 활성함수로 ReLU 사용
- 인간 신경망 측면억제를 모방한 지역 반응 정규화(local response normalization) 기법 적용, ReLU 활성화 규제
- 과잉적합을 방지하는 여러 규제 기법 적용(데이터 증진 및 드롭아웃(완전연결층에서 사용))
- 테스트 단계에서 앙상블 적용
구조
- 3x3의 작은 커널을 사용한 것이 핵심 아이디어
- 신경망을 더욱 깊게 만듦
- 컨볼루션층 8~16개를 두어 AlexNet에 비해 2~3배 깊어짐
작은 커널의 이점
- 큰 크기의 커널은 여러 개의 작은 크기 커널로 분해될 수 있음
→ 매개변수의 수는 줄어들면서 신경망은 깊어지는 효과
1x1 커널
- VGGNet은 적용 실험을 하였지만 최종 선택하지는 않음
- GoogLeNet에서 사용됨
- 차원 통합
- 차원 축소 효과(연산량 감소): c2의 입력 차원에 1x1 커널을 c3개 사용하면 가로, 세로 크기는 유지되면서 depth만 c3으로 감소시킬 수 있음
수용장의 다양한 특징을 추출하기 위해 NIN의 구조를 확장하여 복수의 병렬적인 컨볼루션 층을 가짐
NIN 구조
- 기존 컨볼루션 연산을 MLPConv 연산으로 대체
- 수용장이 가변적
- 커널 대신 비선형 함수를 활성함수로 포함하는 MLP를 사용하여 특징 추출 유리함
- 신경망의 미소 신경망이 주어진 수용장의 특징을 추상화 시도
- 전역 평균 풀링 사용
NIN이 사용하는 전역 평균 풀링
- MLPConv가 부류 수만큼 특징 맵을 생성하면, 특징 맵 각각을 평균하여 출력 노드에 입력
- 완전연결 방식에 비해 매개변수를 대폭 줄일 수 있음
GoogLeNet의 인셉션 모듈
- 수용장을 다양화시킨다는 NIN 개념을 확장
- 마이크로 네트워크로 MLPConv 대신 네 종류의 컨볼루션 연산 사용 → 다양한 특징 추출
- 1x1 컨볼루션을 사용하여 차원 축소
- 매개변수의 수(= 특징 맵의 수)를 줄임 + 깊은 신경망
- 3x3, 5x5 같은 다양한 크기의 컨볼루션을 통해서 다양한 특징들을 추출
GoogLeNet 구조
- 인셉션 모듈을 9개 결합
- 매개변수가 있는 층 22개, 없는 층(풀링) 5개로 총 27개 층을 가짐
- 완전 연결층은 1개에 불과
- 1백만 개의 매개변수를 가지며, VGGNet의 완전 연결층에 비하면 1%에 불과
- 보조 분류기
잔류(잔차) 학습
- Use layers to fit residual instead of directly!
- 성능 저하를 피하면서 층 수를 대폭 늘리기 위해 고안
- 블록 단위 학습, 얕은 신경망을 조금씩 학습시키는 것과 유사
-
지름길 연결을 두는 이유
- 깊은 신경망도 최적화가 가능해짐
- 단순한 학습 관점의 변화를 통한 신경망 구조 변화
- 단순 구조의 변경으로 매개변수 수에 영향이 없으며 덧셈 연산만 증가하므로 전체 연산량 증가도 미비
- 깊어진 신경망으로 인해 정확도 개선 사능
- 경사 소멸 문제 해결
VGGNet과 비교
- 같은 점: 3x3 커널 사용
- 다른 점
생성 모델은 분별 모델에 비해 데이터 생성 과정에 대한 보다 깊은 이해를 필요로 한다.