1. 程式人生 > >【深度學習】GoogLeNet系列解讀 —— Inception v3

【深度學習】GoogLeNet系列解讀 —— Inception v3


目錄

GoogLeNet系列解讀

Inception v1

Inception v2

Inception v3

Inception v4


Inception v3

Inception v3整體上採用了Inception v2的網路結構,並在優化演算法、正則化等方面做了改進,總結如下:

1. 優化演算法使用RMSProp替代SGD。

2. 使用Label Smoothing Regularization(LSR)方法。LSR是一種通過在輸出y中加噪聲,實現對模型進行約束,降低模型過擬合的方法。進行模型訓練時,通常真是標籤q(k/x)採用one-hot的形式,而模型的輸出一般為softmax歸一後的概率分佈p(k/x),

p(k/x)=\frac{exp(z_k)}{\sum_i^{i=K}exp(z_i))}

損失函式為,

H(q,p)=- \sum_{k=1}^{K}log({p(k)q(k)})

訓練的目的是使p(k/x)的分佈儘可能接近q(k/x),但是這種方法很容易產生過擬合。舉個例子,假設分類器需要區分“我們都喜歡玩耍”和“我們都喜歡學習”兩句話。假設“玩耍”出現80次,“學習”出現20次,因為標籤採用one-hot的形式,隨著次數的增加,模型會逐漸傾向於“玩耍”這句話的搭配,使這個搭配的預測概率逐漸趨向於100%,而“學習”這個搭配會逐漸被忽略。

為了解決這個問題,作者以權重加入某一概率分佈到原始標籤中構成新的標籤,形式如下:

q'(y/x)=(1-\alpha )q(y/x)+\alpha u(y)

其中,\alpha \in [0,1]。論文中作者使用了均勻分佈,

q'(y/x)=(1-\alpha )q(y/x)+\frac{\alpha}{K}

這種方式可以防止把模型預測值過分集中在給率較大的類別上,會對小概率類別增加更多的關注。

此時,損失函式變為,

H(q',p)=- \sum_{k=1}^{K}log({p(k)q'(k)})=( 1-\alpha )H(q,p)+\alpha H(u,p)

從損失函式可以看出,LSR相當於使用了兩個loss。當u服從均勻分佈時,H(u,p)為常數,能夠衡量預測分佈p和均勻分佈的不相似程度,起到了正則化的作用。

3. 將第一個7x7卷積層分解為兩個3x3卷積層。

4. 輔助分類器(auxiliary classifier)的全連線層也進行了batch-normalization操作。

Inception v3相比於Inception v2有了較大的提升,實驗結果如下: