Kim Seon Deok
GoogleNet 본문
GoogleNet[szegedy et al., 2014]
네트워크가 깊고 넓을수록 학습이 성능이 좋아질 것이라 생각.
네트워크가 너무 깊으면
-파라미터 수가 많아짐 >> 연산량 증가 & overfitting에 취약해질 수 있다.
1.모델 구조에 대한 연구
2.backpropagation을 효율적으로 전달하기 위한 연구
전체적으로 보면 inception module의 덩어리로 이루어진 구조
맨 앞부분 - inception module로 들어가기 위해 정제되는 부분
맨 뒷부분 - inception module로 정제된 output을 최종 결과로 만들어 주는 부분
inception module
previous layer에서 input을 받아 4갈래로 나뉘어 연산이 진행.
4개의 feature map들을 concatenate함 >> (작은크기의 feature & 중간크기의 feature & 큰 크기의 feature & 이전 layer의 중요한 특징만 뽑아낸 feature)
1*1 convolution 의 효과
-dimmension reduction을 통해 input filter의 수를 조절
-다양한 크기의 filter를 적용해 여러 시각적 특징을 추출하면서도 연산량을 낮추고 속도를 빠르게 함.
-Conv연산 후에 ReLU를 통해 non-linearity을 추가로 얻음.
inception module의 효과
-시각 정보가 다양한 1*1, 3*3, 5*5 Conv 연산을 통해 여러 scale로 처리되고 이를 통해 다음 layer는 서로 다른 scale의 특징을 동시에 추상화할 수 있다.
-pooling layer를 통해 좋은 정보들만 남기고 안 좋은 정보들은 걸러짐
-컴퓨팅 연산의 증가 없이 unit의 갯수를 증가시켜 모델의 성능을 개선
한계
forward과정에서 모든 layer에 효과적인 방법으로 기울기를 다음 layer로 전달하는 과정에서 생기는 gradient vanishing현상과
backpropagation과정에서 정보가 소실되는 단점을 해결하지 못함
>> auxiliary classifier(출력층과 유사한 구조의 네트워크 층)을 intermediate layer의 출력부분에 추가해 loss를 계산
auxiliary classifier의 효과
-중간 layer의 back propagation의 결과를 더할 수 있기 때문에 layer가 깊어짐에 따라 intermediate layer의 gradient가 작아지는 문제를 피한다.
-auxiliary classifier의 loss가 network의 loss에 더해지므로 추가적인 regularization의 역할도 동시에 수행.
Conclusion
inception network는 sparse structure를 dense structure로 근사화하여 성능을 개선.
요약
1.inception module을 사용
2.inception module의 구조를 1*1filter를 추가해 수정
3.auxiliary classifier를 추가