Softmax函數(shù)

以第i節(jié)點(diǎn)輸出為例,Softmax函數(shù)的定義為:

Softmax(z_i)=\frac{e^{z_i}}{\begin{matrix} \sum_{c=1}^{C} e^{z_c} \end{matrix}}

上式中,z_i為第i個(gè)節(jié)點(diǎn)的輸出值,C為輸出節(jié)點(diǎn)的個(gè)數(shù)(分類的類別數(shù))。通過(guò)Softmax可以將多分類的輸出值轉(zhuǎn)換為范圍在[0,1]和為1的概率分布。

Softmax引入指數(shù)形式的優(yōu)點(diǎn)是指數(shù)形式的Softmax函數(shù)能夠?qū)⒉罹啻蟮臄?shù)值距離拉的更大。Softmax引入指數(shù)形式的缺點(diǎn)是

Softmax函數(shù)求導(dǎo)

以三個(gè)輸出節(jié)點(diǎn)的Softmax函數(shù)為例,輸出值y_1y_1=e^{z_1}/(e^{z_1}+e^{z_2}+e^{z_3})。雖然\frac{\partial y_1}{\partial z_1}\frac{\partial y_1}{\partial z_2}\frac{\partial y_1}{\partial z_3}結(jié)果不同,而\frac{\partial y_1}{\partial z_2}\frac{\partial y_1}{\partial z_3}只需換響應(yīng)的索引號(hào)就可以了。因此Softmax函數(shù)求導(dǎo)時(shí)分為j==ij!=i的兩種情況下,y_i關(guān)于z_j的導(dǎo)數(shù)。

  1. j==i時(shí),如\frac{\partial y_1}{\partial z_1}

\begin{aligned} \frac{\partial}{\partial z_j}(\frac{e^{z_i}}{\begin{matrix} \sum_{c=1}^{C} e^{z_c} \end{matrix}})&=\frac{\left(e^{z_{i}}\right)^{\prime} \sum_{c=1}^{C} e^{z_{C}}-e^{z_{i}}\left(\sum_{c=1}^{C} e^{z_{C}}\right)^{\prime}}{\left(\sum_{c=1}^{C} e^{z_{C}}\right)^{2}}\\ &=\frac{e^{z_{i}} \sum_{c=1}^{C} e^{z_{c}}-e^{z_{i}} e^{z_{j}}}{\left(\sum_{c=1}^{C} e^{z_{c}}\right)^{2}}\\ &=\frac{e^{z_{i}}\left(\sum_{c=1}^{C} e^{z_{c}}-e^{z_{j}}\right)}{\left(\sum_{c=1}^{C} e^{z_{c}}\right)^{2}}\\ &=\frac{e^{z_{i}}}{\sum_{c=1}^{C} e^{z_{c}}} \times \frac{\sum_{c=1}^{C} e^{z_{C}}-e^{z_{j}}}{\sum_{c=1}^{C} e^{z_{C}}} \end{aligned}

Softmax(z_i)記為p_i,上面的結(jié)果可以轉(zhuǎn)化為p_i(1-p_j),由于前提條件為i==j,結(jié)果又可變?yōu)?img class="math-inline" src="https://math.jianshu.com/math?formula=p_i-(p_i)%5E2" alt="p_i-(p_i)^2" mathimg="1">。

  1. j!=i時(shí),如\frac{\partial y_1}{\partial z_2}

\begin{aligned} \frac{\partial}{\partial z_j}(\frac{e^{z_i}}{\begin{matrix} \sum_{c=1}^{C} e^{z_c} \end{matrix}})&=\frac{\left(e^{z_{i}}\right)^{\prime} \sum_{c=1}^{C} e^{z_{C}}-e^{z_{i}}\left(\sum_{c=1}^{C} e^{z_{C}}\right)^{\prime}}{\left(\sum_{c=1}^{C} e^{z_{C}}\right)^{2}}\\ &=\frac{0-e^{z_{j}} e^{z_{i}}}{\left(\sum_{c=1}^{C} e^{z_{c}}\right)^{2}}\\ &=\frac{-e^{z_{j}}}{\sum_{c=1}^{C} e^{z_{C}}} \times \frac{e^{z_{i}}}{\sum_{c=1}^{C} e^{z_{C}}} \end{aligned}

按照1中所述,上式可以轉(zhuǎn)化為-p_j\cdot p_i。

交叉熵?fù)p失函數(shù)

假設(shè)此時(shí)第i個(gè)輸出節(jié)點(diǎn)為正確類別對(duì)應(yīng)的輸出節(jié)點(diǎn),p_i=Softmax(z_i)是正確類別對(duì)應(yīng)輸出結(jié)點(diǎn)的概率值。添加\log運(yùn)算不影響函數(shù)的單調(diào)性,即\log p_i。p_i的值越大越好,如果要使用梯度下降法來(lái)迭代求解,只需要為\log p_i加上負(fù)號(hào)變?yōu)閾p失函數(shù)即可:
\begin{aligned} loss_i&=-\log p_i=-log(\frac{e^{z_i}}{\begin{matrix} \sum_{c=1}^{C} e^{z_c} \end{matrix}})\\ &=-(z_i-\log \begin{matrix} \sum_{c=1}^{C} e^{z_c} \end{matrix}) \end{aligned}

但通常說(shuō)的交叉熵是這種形式:
L=-\begin{matrix} \sum_{c=1}^{C} \end{matrix} y_{c} \log \left(p_{c}\right)
實(shí)際上loss_iL的損失函數(shù)是一致的,接下來(lái)繼續(xù)以三分類的形式講解:

由于標(biāo)簽是one-hot的形式,所以L=-0\times\log(p_0)-1\times\log(p_1)-0\times\log(p_2)(假定真實(shí)分類為索引1的位置),最終結(jié)果為L=-1\times\log(p_1)。再?gòu)?img class="math-inline" src="https://math.jianshu.com/math?formula=loss_1" alt="loss_1" mathimg="1">來(lái)看
loss_1=-\log p_1=L

那么損失函數(shù)L對(duì)網(wǎng)絡(luò)輸出變量z_i的偏導(dǎo)數(shù)為:
\begin{aligned} \frac{\partial L}{\partial z_{i}}&=-\begin{matrix} \sum_{c=1}^{C} \end{matrix} y_{c} \frac{\partial \log \left(p_{c}\right)}{\partial z_{i}}=-\begin{matrix} \sum_{c=1}^{C} \end{matrix} y_{c} \frac{\partial \log \left(p_{c}\right)}{\partial p_{c}} \cdot \frac{\partial p_{c}}{\partial z_{i}}\\ &=-\begin{matrix} \sum_{c=1}^{C} \end{matrix} y_{c} \frac{1}{p_{c}} \cdot \frac{\partial p_{c}}{\partial z_{i}} \end{aligned}
根據(jù)Softmax函數(shù)求導(dǎo)的結(jié)果,上式可繼續(xù)推導(dǎo):
\begin{aligned} \frac{\partial L}{\partial z_{i}}&=-y_i(1-p_i)-\begin{matrix}\sum_{c\neq i}\end{matrix}y_c\frac{1}{p_c}(-p_c\cdot p_i)\\ &=-y_i(1-p_i)+\begin{matrix}\sum_{c\neq i}y_c\cdot p_i\end{matrix}\\ &=-y_i+y_ip_i+\begin{matrix}\sum_{c\neq i}y_c\cdot p_i\end{matrix}\\ &=p_i(y_i+\begin{matrix}\sum_{c\neq i} y_c\end{matrix})-y_i \end{aligned}
至此完成了對(duì)交叉熵函數(shù)的梯度推導(dǎo)。

參考文獻(xiàn):

  1. 一文詳解Softmax函數(shù)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、二分類以上的任務(wù)與二分類任務(wù)在網(wǎng)絡(luò)結(jié)構(gòu)上的區(qū)別: 在邏輯回歸模型中,模型最終輸出的是樣本屬于正例的概率p,用1...
    Allard_c205閱讀 2,877評(píng)論 0 0
  • softmax函數(shù) softmax用于多分類過(guò)程中,它將多個(gè)神經(jīng)元的輸出,映射到(0,1)區(qū)間內(nèi),可以看成概率來(lái)理...
    yalesaleng閱讀 791評(píng)論 0 0
  • 這幾天學(xué)習(xí)了一下softmax激活函數(shù),以及它的梯度求導(dǎo)過(guò)程,整理一下便于分享和交流! 一、softmax函數(shù)so...
    愛(ài)昕昕的貓先生閱讀 1,174評(píng)論 0 0
  • 參考 1.sigmoid函數(shù)介紹 其實(shí)logistic函數(shù)也就是經(jīng)常說(shuō)的sigmoid函數(shù),它的幾何形狀也就是一條...
    聽風(fēng)1996閱讀 35,840評(píng)論 0 11
  • softmax 函數(shù) 在神經(jīng)網(wǎng)絡(luò)的最后一層,通常使用 softmax 函數(shù)來(lái)將各神經(jīng)元的輸出壓縮到 [0, 1] ...
    bdd1b3ad7323閱讀 5,511評(píng)論 2 6

友情鏈接更多精彩內(nèi)容