Softmax反向傳播推導

Softmax公式及作用

Softmax函數(shù),或稱歸一化指數(shù)函數(shù),通常在機器學習的分類器中做輸出層用。它可以將一個含任意實數(shù)的K維向量 z “壓縮”為另一個K維向量\sigma(z),使得每一個元素的范圍都在(0,1)之間,也就代表了相應輸出的概率。

Softmax函數(shù)公式如下:

\mathrm{y}=\frac{e^{\mathrm{z}}}{\sum_{i=1}^{K}{e^{z_i}}}

Softmax的反向傳播推導

我們已知:

y_i = \frac{e^{z_i}}{\sum_{k=1}^{K}{e^{z_k}}}

則由鏈式法則可得輸入 z_i 的梯度:

\frac{\partial{L}}{\partial{z_i}} = \sum_{j=1}^{K}{ \frac{\partial{L}}{\partial{y_j}} \frac{\partial{y_j}}{\partial{z_i}} }

其中\frac{\partial{L}}{\partial{y_j}}為上一層反向傳播回來的梯度。下面重點分析:

\begin{equation} \begin{aligned} \frac{\partial{y_j}}{\partial{z_i}} &= \frac{\partial}{\partial{z_i}}\left[ e^{z_j} \cdot \left( \sum_{k=1}^{K}{e^{z_k}} \right)^{-1} \right]\\ &= \left( \sum_{k=1}^{K}{e^{z_k}} \right)^{-1} e^{z_j} \delta_{ij} - e^{z_j} \left( \sum_{k=1}^{K}{e^{z_k}} \right)^{-2} \left( \sum_{k=1}^{K}{e^{z_k} \delta_{ik}} \right)\\ &= \left( \sum_{k=1}^{K}{e^{z_k}} \right)^{-1} e^{z_j} \delta_{ij} - e^{z_j} \left( \sum_{k=1}^{K}{e^{z_k}} \right)^{-2} e^{z_i}\\ &=y_j\delta_{ij} - y_iy_j \end{aligned} \end{equation}

上式中\delta_{ij}=1 if i=j,否則為0。帶回原式:

\begin{equation} \begin{aligned} \frac{\partial{L}}{\partial{z_i}} &= \sum_{j=1}^{K}{ \frac{\partial{L}}{\partial{y_j}} (y_j\delta_{ij} - y_iy_j) }\\ &= \frac{\partial{L}}{\partial{y_i}} y_i - y_i \sum_{j=1}^{K}{\frac{\partial{L}}{\partial{y_j}}y_j} \end{aligned} \end{equation}

碼公式辛苦,轉載請注明出處。

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

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