輸出單元——sigmoid單元&softmax單元

1. 用於高斯輸出分佈的線性單元

給定特徵h,線性輸出單元層產生一個向量 y = wh + b.

線性輸出層不會飽和,故易採用基於梯度的優化算法。

2. 用於伯努利輸出分佈的sigmoid單元

神經網絡僅需要預測P(y=1|x),爲了使這個數是一個有效的概率,它必須處在區間[0,1]中。

假設使用線性單元,並通過閾值來限制它成爲一個有效的概率:P(y=1|x) = max{0,min{1,wh + b}}.

當wh + b處於單位區間外時,模型的輸出對其參數的梯度都是0,故無法使用梯度下降來高效地訓練它。

於是這裏採用的方法是基於使用sigmoid輸出單元結合最大似然來實現:

sigmoid輸出單元定義爲 y = σ(wh + b), σ是logistic sigmoid 函數:σ(x) = 1/(1+exp(-x)).

可以認爲,sigmoid輸出單元具有兩個部分,首先使用一個線性層來計算z = wh+b,其次使用sigmoid激活函數將z轉化爲概率。

接下來用z的值來定義y的概率分佈:

假定非歸一化的對數概率對y 和 z是線性的,可以對它取對數來得到非歸一化的概率,然後對它歸一化,這服從伯努利分佈,該分佈受z的sigmoid變換控制:P(y) = σ((2y-1)z).

因爲用於最大似然的代價函數是-logP(y|x),恰好抵消了sigmoid中的exp。然後使用最大似然來學習一個由sigmoid參數化的伯努利分佈,其損失函數爲J(θ)=ζ((1-2y)z), ζ即softplus函數的形式:ζ(x)=log(1+exp(x))。

所以在極限情況下極度不正確的z,softplus函數完全不會收縮梯度。

3. 用於Multinoulli輸出分佈的softmax單元

softmax可以看做sigmoid函數的擴展,最常用作分類器的輸出。

首先,線性層預測了未歸一化的對數概率:z = wh+b,其中zi = log P(y=i | x),softmax函數再對z指數化和歸一化來獲取需要的y,,最終softmax函數的形式爲softmax(z)i=  exp(zi)/∑jexp(zj).

對於softmax的情況,它有多個輸出值。當輸入值之間的差異變得極端時,這些輸出值可能會飽和;

當對所有輸入都加上一個相同常數時softmax的輸出不變。

...

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章