Google Inception 모델 : 여러 softmax가있는 이유는 무엇입니까?


13

Google Inception 모델의 토폴로지는 여기에서 찾을 수 있습니다. Google Inception Netowrk

이 모델에는 3 개의 softmax 레이어 (# 154, # 152, # 145)가 있으며 그 중 2 개는이 모델의 초기 이스케이프입니다.

내가 아는 한, softmax 레이어는 최종 출력을위한 것이므로 왜 그렇게 많은가? 다른 2 레이어의 목적은 무엇입니까?

답변:


27

짧은 대답 : 심층 아키텍처, 특히 GoogLeNet (22 레이어)은 훈련 ( 배기 알고리즘) 중에 사라지는 그라디언트 문제의 위험이 있습니다. GoogLeNet의 엔지니어는 중간 손실과 최종 손실의 조합으로 중간 계층에 분류자를 추가하여이 문제를 해결했습니다. 이것이 네트워크의 마지막 계층 인 일반적인 단일 계층과 달리 총 3 개의 손실 계층을 보는 이유입니다.

더 긴 대답 : 고전적인 기계 학습에서는 일반적으로 기능 엔지니어링과 분류가 구분됩니다. 신경망은 "끝에서 끝까지"문제를 해결하는 능력으로 가장 유명합니다. 즉, 데이터에 대한 표현을 학습하고 분류자를 훈련시키는 단계를 결합합니다. 따라서 표준 아키텍처 (예 : AlexNet)가있는 신경망은 "표현 학습"단계 (이전 단계부터 마지막 ​​단계까지) 및 "분류"단계 (예상 한대로 포함)로 구성되는 것으로 생각할 수 있습니다. 손실 함수.

더 깊은 네트워크를 만들 때 "배니싱 그라디언트"문제로 만들어진 문제가 발생합니다. 실제로는 신경망에만 국한되지 않습니다. 오히려 그라디언트 기반 학습 방법에. 그것은 사소한 것이 아니기 때문에 그 자체에 대한 적절한 설명이 필요합니다. 좋은 참고 자료는 여기 를 참조 하십시오 . 직관적으로, "back-prop 알고리즘.

GoogLeNet 개발자는이 문제를 어떻게 처리 했습니까? 그들은 모든 식별 정보를 전달하는 것이 최종 레이어의 특징 일뿐 아니라 중간 특징도 다른 라벨을 구별 할 수 있다는 사실을 인식했다. 가장 중요하게는, 그 값은 그래디언트가 더 많은 정보를 전달하는 이전 레이어에서 추출되기 때문에 "신뢰할 수있는"값입니다. 이러한 직관을 바탕으로 두 개의 중간 계층에 "보조 분류기"를 추가했습니다. 이것이 귀하의 질문에서 언급 한 네트워크 중간에 "이른 이스케이프"손실 계층의 이유입니다.

총 손실은이 3 가지 손실 레이어의 조합입니다. 나는 원래 기사에서 인용한다 :

이 분류기는 Inception (4a) 및 (4d) 모듈의 출력 위에 배치 된 더 작은 컨볼 루션 네트워크의 형태를 취합니다. 훈련하는 동안 손실은 할인 가중치로 네트워크의 총 손실에 추가됩니다 (보조 분류기의 손실은 0.3으로 가중되었습니다). 추론시 이러한 보조 네트워크는 삭제됩니다.

시각적으로 :

여기에 이미지 설명을 입력하십시오


1
"... 그래디언트가 더 많은 정보를 전달하는 이전 레이어"-왜 그렇습니까?
최대

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.