講義中的第四章,講的是Softmax 回歸。softmax回歸是logistic回歸的泛化版,先來回顧下logistic回歸。
logistic回歸:
訓練集為{(x(1),y(1)),...,(x(m),y(m))},其中m為樣本數,x(i)為特征。
logistic回歸是針對二分類問題的,因此類標y(i)∈{0,1},。其估值函數(hypothesis )如下:
代價函數:
softmax 回歸:
softmax回歸解決的是多分類問題,即y(i)∈{1,2,...,k}。(這里softmax回歸一般從類別1開始,而不是從0)。
其估值函數形式如下:
為了方便起見,我們同樣使用符號θ來表示全部的模型參數。在實現softmax回歸時,你通常會發現,將θ用一個k×(n+1)的矩陣來表示會十分便利,該矩陣是將θ1,θ2,...,θk按行羅列起來得到的,如下所示:
下面是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 練習:
這里講義同樣給出了練習題,打算自己寫寫看,暫時先寫到這,接下來有時間把自己寫好的代碼貼上來。