728x90

저스틴 존슨 교수님 강의 정리

8강 합성곱 신경망 아키텍처 3 - GoogLeNet

 

 

 

 

Lec8_Convolution_Networks_Arcitecture3_GoogLeNet.pdf
0.91MB

 

 

 

 

 

이번 자료에서 핵심 주제로 아래의 5가지를 꼽았다.

- GoogLeNet 개요

- 집중적 다운 샘플링 줄기

- 인샙션 모듈

- 전역적 평균 풀링

- 부속 분류기

 

 

1) GoogLeNet 개요

- 2014년 이미지넷 분류 대회에서 구글이 VGG 모델을 이기고 대회를 우승하였습니다. 이 구글이 만든 모델 이름은 GoogLeNet으로 초창기 합성곱 신경망을 만든 LeNet을 딴 이름으로 이전에 본 다른모델과 차이점은 효율성을 목표로 한 모델이었습니다. AlexNet부터 ZFNet, VGG까지 점점 더 큰 신경망을 만들면서 더 좋은 성능을 얻을수 있었지만 계산 비용이 너무 큰 문제점이 있었습니다. 그래서 구글에선 복잡도를 줄여 휴대폰에서 돌릴수 있는 신경망 모델을 만들기 위해 고안되었습니다.

 

 

2) 집중적 다운샘플링 줄기

- GoogLeNet에서 사용된 대표적인 기법으로 집중적 다운샘플링 줄기가 있는데, 이전에 VGG나 AlexNet에서는 큰 이미지를 가지고 컨볼루션을 하다보니 계산량이 매우 큰 문제가 있다보니 입력 데이터를 맨 처음 특징 지도를 빠르게 줄이도록 하이퍼 파라미터를 조정시킨 줄기 신경망을 거침으로서 빨리 줄일 수 있었습니다. 입력의 크기가 224에서 28까지 줄을떄까지 메모리 사용량과 학습 가능 파라미터 개수, 소수점 연산량을 VGG-16과 비교해보면 구글넷이 5배 이상 가벼운걸 확인할 수 있었습니다.

 

 

 

3) 인샙션 모듈

- 다음 GoogLeNet의 대표적인 기법으로 인셉션 모듈이 있는데, 이전에 VGG는 단순히 커널 크기를 조정하는것 없이 3x3 합성곱-합성곱-풀링을 쌓아서 만들었다면, 인샙션 모듈은 4개의 평행한 가지를 만들어 다양한 커널 사이즈의 연산을 쌓아서 하이퍼 파라미터 커널 크기를 조정할 필요없는 장점이 있습니다. 이 뿐만이 아니라 큰 합성곱 연산을 하기전에 1 x 1 합성곱 연산 그러니까 병목 계층을 사용하여 미리 차원 수를 줄여 연산량을 크게 줄여내었습니다. 

 

 

 

4) 전역적 평균 풀링

- 다른 구글넷의 기법으로 전역적 평균 풀링이 있씁니다. 이전까지 본 신경망들은 마지막 출력 값들을 구하기 위해 펼침연산을 수행 후 완전 연결 계층을 여러번 연산을 하는데, 이렇게 하면 학습해야하는 파라미터 수가 매우 증가하는 문제가 있었습니다. GoogLeNet의 맨 끝에서 출력 텐서의 채널이 1024이고, 특징 지도의 크기가 7이다보니 입력과 동일한 크기를 커널 사이즈를 잡고 평균 풀링을 함으로서 펼침 연산 없이 1024 크기의 벡터를 구할수 있는 장점이 있었습니다.

 

 

5) 부속 분류기들

- 하지만 GoogLeNet은 더 깊은 신경망을 만들 수 있도록 도와주는 배치 정규화 기법이 나오기 전에 만들어진 모델이다 보니 신경망을 깊게 만들 수록 그라디언트가 사라지는 문제가 있었습니다. 이 문제를 해결하기 위해 신경망 모델 중간 지점에서 부속 분류기를 부착하여 신경망 모델 중간에서 예측 결과를 출력 하도록 만들었는데, 이렇게 한 덕분에 아주 멀리 있는 비용 그라디언트가 역전파 과정에서 사라지더라도 부속 분류기로부터도 비용 그라디언트를 받아 신경망을 전체적으로 학습시킬수 있는 기법이었습니다.

 

 

300x250

+ Recent posts