Deep-Learning

Google Inception模型:為什麼會有多個softmax?

  • April 18, 2017

Google Inception 模型的拓撲可以在這裡找到:Google Inception Netowrk

我注意到這個模型中有 3 個 softmax 層(#154,#152,#145),其中 2 個是這個模型的某種早期逃逸。

據我所知,softmax層是用於最終輸出的,為什麼會有這麼多呢?其他2層的目的是什麼?

**簡短回答:**深度架構,特別是 GoogLeNet(22 層)在訓練(反向傳播算法)期間存在*梯度消失問題的危險。*GoogLeNet 的工程師通過在中間層添加分類器來解決這個問題,使得最終損失是中間損失和最終損失的組合。這就是為什麼你會看到總共三個損失層,不像通常的單層作為網絡的最後一層。

**更長的答案:**在經典機器學習中,特徵工程和分類之間通常存在區別。神經網絡以其“端到端”解決問題的能力而聞名,即它們結合了學習數據表示和訓練分類器的階段。因此,您可以將具有標準架構(例如,AlexNet)的神經網絡視為由“表示學習”階段(從前到最後的層)和“分類”階段組成,正如預期的那樣,包括一個損失函數。

在創建更深的網絡時,會出現一個被稱為“梯度消失”的問題。它實際上並不特定於神經網絡。而不是任何基於梯度的學習方法。它不是那麼微不足道,因此值得為自己做一個適當的解釋;請參閱此處以獲得很好的參考。直觀地說,隨著我們深入網絡,您可以考慮梯度攜帶的信息越來越少,這當然是一個主要問題,因為我們僅根據梯度調整網絡的參數(權重),使用“反向支持” “ 算法。

GoogLeNet 的開發者是如何處理這個問題的?他們認識到,攜帶所有區分信息的不僅是最終層的特徵:中間特徵也能夠區分不同的標籤;而且,最重要的是,它們的值更“可靠”,因為它們是從梯度攜帶更多信息的早期層中提取的。基於這種直覺,他們在兩個中間層中添加了“輔助分類器”。這就是您在問題中提到的網絡中間“早期逃逸”損失層的原因。

總損失是這三個損失層的組合。我引用原始文章:

這些分類器採用較小的捲積網絡形式,置於 Inception (4a) 和 (4d) 模塊的輸出之上。在訓練期間,它們的損失以折扣權重添加到網絡的總損失中(輔助分類器的損失權重為 0.3)。在推理時,這些輔助網絡被丟棄。

視覺上:

在此處輸入圖像描述

引用自:https://stats.stackexchange.com/questions/274286

comments powered by Disqus