1. 程式人生 > >機器學習課程筆記(2)

機器學習課程筆記(2)

分類問題(接1)

logistic迴歸中的代價函式:

對於原來的迴歸方程, J(θ)=1/m∑1/2(hθ(x)-y)2

與線性迴歸相同,所不同的是線性迴歸中hθ(x)為f(x),logistics中hθ(x)為sigmoid-f(x)

我們先設cost(h(x)-y)=1/2(h(x)-y)2 , 由於sigmoid函式是非線性的(即之前提到的h(x)=1/(1+e-fθ(x)) ),若將其直接用於原來的迴歸方程,得到的J(θ)將是非凸函式 在這裡插入圖片描述 這樣用梯度下降法可能得到的不是‘最優解’。因此我們可以修改一下代價函式使之在運用sigmoid的同時還能是凸函式。 修改:cost(h(x)-y)={-log(h(x))------if y=1//-log(1-h(x))----if y=0 因為結果只可能為0或1,當y=0, 在這裡插入圖片描述

得到左邊的圖,可見結果越接近0,代價函式得到的值越小(與我們目的一致),結果越偏離0(即與真實結果相差越大),代價函式得到的值越大。不要忘記我們的目的是構造一個代價函式得到結果儘量小的函式。當y=1,得到的結果與上面類似。 當然為了顯得形式更簡單,cost還可以再改一下: cost(h(x)-y)=-ylog(h(x))-(1-y)log(1-h(x)) 將其代入J(θ)再用梯度下降。

梯度下降不是唯一用來更新θ的演算法,還可以使用BFGS,L-BFGS,共軛梯度法,這些演算法雖然更復雜,但不用手動調整學習率α,而且收斂更快。

問題:如何實現多元分類?

前面主要討論二元分類,即結果只有可能為0或1,對於多元分類,我們可以類比一下: 二元分類是比較“結果為1的概率”。若其大於0.5,則認為結果為1,這裡面其實省略了“結果為0的概率”,之所以省掉是因為兩種結果非此即彼。所以正規的步驟應該是比較“結果為0的概率”和“結果為1的概率”哪一個更大。 對於多元分類,可以計算結果為1,2,3,…的概率哪一個更大,輸出的結果當然是概率最大的那一個。如一個三元分類: 在這裡插入圖片描述

建立三個分類器,算出點為1,2,3的概率,再比較。

logistics迴歸中的正則化

和線性迴歸中的類似,cost(h(x)-y)=-y*log(h(x))-(1-y)*log(1-h(x))括號內加入懲罰項λ/2m∑θ2

神經網路演算法

→為了解決特徵量過多的問題(如判斷一張圖片裡有沒有汽車,這牽扯到每一個畫素點),解決複雜的線性假設 模仿大腦神經元的演算法