講義中的第四章,講的是Softmax 迴歸。softmax迴歸是logistic迴歸的泛化版,先來回顧下logistic迴歸。算法
logistic迴歸:函數
訓練集爲{(x(1),y(1)),...,(x(m),y(m))},其中m爲樣本數,x(i)爲特徵。優化
logistic迴歸是針對二分類問題的,所以類標y(i)∈{0,1},。其估值函數(hypothesis )以下:spa
代價函數:blog
softmax 迴歸:io
softmax迴歸解決的是多分類問題,即y(i)∈{1,2,...,k}。(這裏softmax迴歸通常從類別1開始,而不是從0)。方法
其估值函數形式以下:im
爲了方便起見,咱們一樣使用符號θ來表示所有的模型參數。在實現softmax迴歸時,你一般會發現,將θ用一個k×(n+1)的矩陣來表示會十分便利,該矩陣是將θ1,θ2,...,θk按行羅列起來獲得的,以下所示:d3
下面是softmax迴歸的代價函數:數據
能夠看出softmax是logistic的一個泛化版。logistic是k=2狀況下的softmax迴歸。
爲了求解J(θ),一般藉助於梯度降低法或L-BFGS算法等迭代優化算法。通過求導,咱們能夠獲得梯度公式爲:
有了上面的偏導數公式之後,咱們就能夠將它帶入到梯度降低法等算法中,來使J(θ)最小化。例如,在梯度降低法標準實現的每一次迭代中,咱們須要進行以下更新:
(對每一個j=1,2,...k)
有一點須要注意的是,按上述方法用softmax求得的參數並非惟一的,由於,對每個參數來講,若都減去一個相同的值,依然是上述的代價函數的值。證實以下:
這代表了softmax迴歸中的參數是「冗餘」的。更正式一點來講,咱們的softmax模型被過分參數化了,這意味着對於任何咱們用來與數據相擬合的估計值,都會存在多組參數集,它們可以生成徹底相同的估值函數hθ將輸入x映射到預測值。所以使J(θ)最小化的解不是惟一的。而Hessian矩陣是奇異的/不可逆的,這會直接致使Softmax的牛頓法實現版本出現數值計算的問題。
爲了解決這個問題,加入一個權重衰減項到代價函數中:
有了這個權重衰減項之後(對於任意的λ>0),代價函數就變成了嚴格的凸函數並且hession矩陣就不會不可逆了。
此時的偏導數:
softmax 練習:
這裏講義一樣給出了練習題,打算本身寫寫看,暫時先寫到這,接下來有時間把本身寫好的代碼貼上來。