前言:softmax中的求導包含矩陣與向量的求導關系,記錄的目的是為了回顧。
下圖為利用softmax對樣本進行k分類的問題,其損失函數的表達式為結構風險,第二項是模型結構的正則化項。
首先,每個queue:x(i)的特征維度是 n , 參數 θ 是一個 n×k 的矩陣,輸出的結果 y(i) 為一個 k×1 的向量,其中第 j 個元素對應元素的 e 指數為該 queue 屬於第 j 類的概率(未歸一化)。所以雖然損失函數 J(θ) 是一個常數,但是它的自變量為一個矩陣 Θ 和 一個特征向量 x(i) ,這就牽涉到本文的重難點:矩陣、向量以及變量之間的求導。
更新 θj 的過程就是標量 J(θ) 對向量 θj 求導的過程,向量對標量求導的具體方式不想寫,結論見文末,參考(https://blog.csdn.net/daaikuaichuan/article/details/80620518)。
第一項的求導過程:
將與 j 無關的乘項(-1/m)×∑i ×1{ j } 拉到最前面,對log中內容做變換得到((θj×x(i))) - log(∑L)。前者根據變量對向量求導可以得到為x(i),后者根據鏈式法則可以求出為{ [exp(θj*x(i)] / ∑L}* x(i), 與前面的項相乘就可以得到下式中的第一項。
第二項為 Θ 中所有列向量二范數之和,可以寫成 ∑θjTθj ,其中與 θj 有關的內容為 θjTθj ,求導后為 2θj 。求導的結果為第二項。
J(θ) 對 θj 求導的結果如文中第二式。