吳恩達機器學習第六章【Logistic Regression】
Classification【分類問題】
在分類問題中,你要預測的變量 y y y 是離散的值,我們提出了一種叫做邏輯迴歸 (Logistic Regression ) 的算法。
我們從二元的分類問題開始討論。
我們將因變量(dependent variable )可能屬於的兩個類分別稱爲負向類(negative class )和正向類(positive class ),則因變量y ∈ 0 , 1 y\in {0,1 \\} y ∈ 0 , 1 ,其中 0 表示負向類,1 表示正向類。
但對於線性迴歸問題來說,函數的輸出值可能大於1也可能小於0。所以不可能實現。所以我們研究邏輯迴歸。
Hypothesis Representation 【假說表示】
在Classification 中我們提到怎麼使分類器的輸出值在0和1之間,由此我們提出一個假設:
h θ ( x ) = g ( θ T X ) ∈ [ 0 , 1 ] h_\theta(x)=g(\theta^TX)\in[0,1] h θ ( x ) = g ( θ T X ) ∈ [ 0 , 1 ]
其中:
X X X 代表特徵向量
g g g 代表邏輯函數(logistic function )是一個常用的邏輯函數爲S 形函數(Sigmoid function ),公式爲: g ( z ) = 1 1 + e − z g\left( z \right)=\frac{1}{1+{{e}^{-z}}} g ( z ) = 1 + e − z 1 。
h θ ( x ) h_\theta \left( x \right) h θ ( x ) 的作用是,對於給定的輸入變量,根據選擇的參數計算輸出變量=1的可能性(estimated probablity )即h θ ( x ) = P ( y = 1 ∣ x ; θ ) h_\theta \left( x \right)=P\left( y=1|x;\theta \right) h θ ( x ) = P ( y = 1 ∣ x ; θ )
例如,如果對於給定的x x x ,通過已經確定的參數計算得出h θ ( x ) = 0.7 h_\theta \left( x \right)=0.7 h θ ( x ) = 0 . 7 ,則表示有70%的機率y y y 爲正向類,相應地y y y 爲負向類的機率爲1-0.7=0.3。其中P ( y = 1 ∣ x ; θ ) + P ( y = 0 ∣ x ; θ ) = 1 P\left( y=1|x;\theta \right)+P\left( y=0|x;\theta \right)=1 P ( y = 1 ∣ x ; θ ) + P ( y = 0 ∣ x ; θ ) = 1 。
Decision Boundary【判定邊界】
在邏輯迴歸中,我們預測:
當h θ ( x ) > = 0.5 {h_\theta}\left( x \right)>=0.5 h θ ( x ) > = 0 . 5 時,預測 y = 1 y=1 y = 1 。
當h θ ( x ) < 0.5 {h_\theta}\left( x \right)<0.5 h θ ( x ) < 0 . 5 時,預測 y = 0 y=0 y = 0 。
根據上面繪製出的 S 形函數圖像,我們知道當
z = 0 z=0 z = 0 時 g ( z ) = 0.5 g(z)=0.5 g ( z ) = 0 . 5
z > 0 z>0 z > 0 時 g ( z ) > 0.5 g(z)>0.5 g ( z ) > 0 . 5
z < 0 z<0 z < 0 時 g ( z ) < 0.5 g(z)<0.5 g ( z ) < 0 . 5
又 z = θ T x z={\theta^{T}}x z = θ T x ,即:
θ T X > = 0 {\theta^{T}}X>=0 θ T X > = 0 時,預測 y = 1 y=1 y = 1
θ T X < 0 {\theta^{T}}X<0 θ T X < 0 時,預測 y = 0 y=0 y = 0
現在假設我們有一個模型:
並且參數θ \theta θ 是向量[-3 1 1]。 則當− 3 + x 1 + x 2 ≥ 0 -3+{x_1}+{x_2} \geq 0 − 3 + x 1 + x 2 ≥ 0 ,即x 1 + x 2 ≥ 3 {x_1}+{x_2} \geq 3 x 1 + x 2 ≥ 3 時,模型將預測 y = 1 y=1 y = 1 。
我們可以繪製直線x 1 + x 2 = 3 {x_1}+{x_2} = 3 x 1 + x 2 = 3 ,這條線便是我們模型的分界線,將預測爲1的區域和預測爲 0的區域分隔開。
假使我們的數據呈現這樣的分佈情況,怎樣的模型才能適合呢?
因爲需要用曲線才能分隔 y = 0 y=0 y = 0 的區域和 y = 1 y=1 y = 1 的區域,我們需要二次方特徵:h θ ( x ) = g ( θ 0 + θ 1 x 1 + θ 2 x 2 + θ 3 x 1 2 + θ 4 x 2 2 ) {h_\theta}\left( x \right)=g\left( {\theta_0}+{\theta_1}{x_1}+{\theta_{2}}{x_{2}}+{\theta_{3}}x_{1}^{2}+{\theta_{4}}x_{2}^{2} \right) h θ ( x ) = g ( θ 0 + θ 1 x 1 + θ 2 x 2 + θ 3 x 1 2 + θ 4 x 2 2 ) 是[-1 0 0 1 1],則我們得到的判定邊界恰好是圓點在原點且半徑爲1的圓形。
我們可以用非常複雜的模型來適應非常複雜形狀的判定邊界。
Cost Function【代價函數】
對於線性迴歸模型,我們定義的代價函數是所有模型誤差的平方和。理論上來說,我們也可以對邏輯迴歸模型沿用這個定義,但是問題在於,當我們將h θ ( x ) = 1 1 + e − θ T x {h_\theta}\left( x \right)=\frac{1}{1+{e^{-\theta^{T}x}}} h θ ( x ) = 1 + e − θ T x 1 帶入到這樣定義了的代價函數中時,我們得到的代價函數將是一個非凸函數(non-convexfunction )。
這意味着我們的代價函數有許多局部最小值,這將影響梯度下降算法尋找全局最小值。
線性迴歸的代價函數爲:J ( θ ) = 1 m ∑ i = 1 m 1 2 ( h θ ( x ( i ) ) − y ( i ) ) 2 J\left( \theta \right)=\frac{1}{m}\sum\limits_{i=1}^{m}{\frac{1}{2}{{\left( {h_\theta}\left({x}^{\left( i \right)} \right)-{y}^{\left( i \right)} \right)}^{2}}} J ( θ ) = m 1 i = 1 ∑ m 2 1 ( h θ ( x ( i ) ) − y ( i ) ) 2 。
我們重新定義邏輯迴歸的代價函數爲:J ( θ ) = 1 m ∑ i = 1 m C o s t ( h θ ( x ( i ) ) , y ( i ) ) J\left( \theta \right)=\frac{1}{m}\sum\limits_{i=1}^{m}{{Cost}\left( {h_\theta}\left( {x}^{\left( i \right)} \right),{y}^{\left( i \right)} \right)} J ( θ ) = m 1 i = 1 ∑ m C o s t ( h θ ( x ( i ) ) , y ( i ) ) ,其中C o s t ( h θ ( x ( i ) , y ( i ) ) = 1 2 ( h θ ( x ( i ) ) − y ( i ) ) 2 = { − l g ( h θ ( x ) ) i f y = 1 − l g ( 1 − h θ ( x ) ) i f y = 0 Cost(h_\theta(x^{(i)},y^{(i)})=\frac{1}{2}(h_\theta(x^{(i)})-y^{(i)})^2=\begin{cases}-lg(h_\theta(x))&if&y=1 \\-lg(1-h_\theta(x))&if&y=0\end{cases} C o s t ( h θ ( x ( i ) , y ( i ) ) = 2 1 ( h θ ( x ( i ) ) − y ( i ) ) 2 = { − l g ( h θ ( x ) ) − l g ( 1 − h θ ( x ) ) i f i f y = 1 y = 0
所以:
C o s t ( h θ ( x ( i ) , y ( i ) ) = − y × l g ( h θ ( x ) ) − ( 1 − y ) × l g ( 1 − h θ ( x ) ) Cost(h_\theta(x^{(i)},y^{(i)})=-y\times lg\left( {h_\theta}\left( x \right) \right)-(1-y)\times lg\left( 1-{h_\theta}\left( x \right) \right) C o s t ( h θ ( x ( i ) , y ( i ) ) = − y × l g ( h θ ( x ) ) − ( 1 − y ) × l g ( 1 − h θ ( x ) )
帶入代價函數得到:
J ( θ ) = 1 m ∑ i = 1 m [ − y ( i ) log ( h θ ( x ( i ) ) ) − ( 1 − y ( i ) ) log ( 1 − h θ ( x ( i ) ) ) ] J\left( \theta \right)=\frac{1}{m}\sum\limits_{i=1}^{m}{[-{{y}^{(i)}}\log \left( {h_\theta}\left( {{x}^{(i)}} \right) \right)-\left( 1-{{y}^{(i)}} \right)\log \left( 1-{h_\theta}\left( {{x}^{(i)}} \right) \right)]} J ( θ ) = m 1 i = 1 ∑ m [ − y ( i ) log ( h θ ( x ( i ) ) ) − ( 1 − y ( i ) ) log ( 1 − h θ ( x ( i ) ) ) ]
即:J ( θ ) = − 1 m ∑ i = 1 m [ y ( i ) log ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) log ( 1 − h θ ( x ( i ) ) ) ] J\left( \theta \right)=-\frac{1}{m}\sum\limits_{i=1}^{m}{[{{y}^{(i)}}\log \left( {h_\theta}\left( {{x}^{(i)}} \right) \right)+\left( 1-{{y}^{(i)}} \right)\log \left( 1-{h_\theta}\left( {{x}^{(i)}} \right) \right)]} J ( θ ) = − m 1 i = 1 ∑ m [ y ( i ) log ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) log ( 1 − h θ ( x ( i ) ) ) ]
證明如下:
Repeat {
θ j : = θ j − α ∂ ∂ θ j J ( θ ) \theta_j := \theta_j - \alpha \frac{\partial}{\partial\theta_j} J(\theta) θ j : = θ j − α ∂ θ j ∂ J ( θ )
(simultaneously update all )
}
求導後得到:
Repeat {
θ j : = θ j − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) \theta_j := \theta_j - \alpha \frac{1}{m}\sum\limits_{i=1}^{m}{{\left( {h_\theta}\left( \mathop{x}^{\left( i \right)} \right)-\mathop{y}^{\left( i \right)} \right)}}\mathop{x}_{j}^{(i)} θ j : = θ j − α m 1 i = 1 ∑ m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i )
(simultaneously update all )
}
J ( θ ) = − 1 m ∑ i = 1 m [ y ( i ) log ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) log ( 1 − h θ ( x ( i ) ) ) ] J\left( \theta \right)=-\frac{1}{m}\sum\limits_{i=1}^{m}{[{{y}^{(i)}}\log \left( {h_\theta}\left( {{x}^{(i)}} \right) \right)+\left( 1-{{y}^{(i)}} \right)\log \left( 1-{h_\theta}\left( {{x}^{(i)}} \right) \right)]} J ( θ ) = − m 1 i = 1 ∑ m [ y ( i ) log ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) log ( 1 − h θ ( x ( i ) ) ) ]
考慮:
h θ ( x ( i ) ) = 1 1 + e − θ T x ( i ) {h_\theta}\left( {{x}^{(i)}} \right)=\frac{1}{1+{{e}^{-{\theta^T}{{x}^{(i)}}}}} h θ ( x ( i ) ) = 1 + e − θ T x ( i ) 1
則:
y ( i ) log ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) log ( 1 − h θ ( x ( i ) ) ) {{y}^{(i)}}\log \left( {h_\theta}\left( {{x}^{(i)}} \right) \right)+\left( 1-{{y}^{(i)}} \right)\log \left( 1-{h_\theta}\left( {{x}^{(i)}} \right) \right) y ( i ) log ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) log ( 1 − h θ ( x ( i ) ) )
= y ( i ) log ( 1 1 + e − θ T x ( i ) ) + ( 1 − y ( i ) ) log ( 1 − 1 1 + e − θ T x ( i ) ) ={{y}^{(i)}}\log \left( \frac{1}{1+{{e}^{-{\theta^T}{{x}^{(i)}}}}} \right)+\left( 1-{{y}^{(i)}} \right)\log \left( 1-\frac{1}{1+{{e}^{-{\theta^T}{{x}^{(i)}}}}} \right) = y ( i ) log ( 1 + e − θ T x ( i ) 1 ) + ( 1 − y ( i ) ) log ( 1 − 1 + e − θ T x ( i ) 1 )
= − y ( i ) log ( 1 + e − θ T x ( i ) ) − ( 1 − y ( i ) ) log ( 1 + e θ T x ( i ) ) =-{{y}^{(i)}}\log \left( 1+{{e}^{-{\theta^T}{{x}^{(i)}}}} \right)-\left( 1-{{y}^{(i)}} \right)\log \left( 1+{{e}^{{\theta^T}{{x}^{(i)}}}} \right) = − y ( i ) log ( 1 + e − θ T x ( i ) ) − ( 1 − y ( i ) ) log ( 1 + e θ T x ( i ) )
所以:
∂ ∂ θ j J ( θ ) = ∂ ∂ θ j [ − 1 m ∑ i = 1 m [ − y ( i ) log ( 1 + e − θ T x ( i ) ) − ( 1 − y ( i ) ) log ( 1 + e θ T x ( i ) ) ] ] \frac{\partial }{\partial {\theta_{j}}}J\left( \theta \right)=\frac{\partial }{\partial {\theta_{j}}}[-\frac{1}{m}\sum\limits_{i=1}^{m}{[-{{y}^{(i)}}\log \left( 1+{{e}^{-{\theta^{T}}{{x}^{(i)}}}} \right)-\left( 1-{{y}^{(i)}} \right)\log \left( 1+{{e}^{{\theta^{T}}{{x}^{(i)}}}} \right)]}] ∂ θ j ∂ J ( θ ) = ∂ θ j ∂ [ − m 1 i = 1 ∑ m [ − y ( i ) log ( 1 + e − θ T x ( i ) ) − ( 1 − y ( i ) ) log ( 1 + e θ T x ( i ) ) ] ]
= − 1 m ∑ i = 1 m [ − y ( i ) − x j ( i ) e − θ T x ( i ) 1 + e − θ T x ( i ) − ( 1 − y ( i ) ) x j ( i ) e θ T x ( i ) 1 + e θ T x ( i ) ] =-\frac{1}{m}\sum\limits_{i=1}^{m}{[-{{y}^{(i)}}\frac{-x_{j}^{(i)}{{e}^{-{\theta^{T}}{{x}^{(i)}}}}}{1+{{e}^{-{\theta^{T}}{{x}^{(i)}}}}}-\left( 1-{{y}^{(i)}} \right)\frac{x_j^{(i)}{{e}^{{\theta^T}{{x}^{(i)}}}}}{1+{{e}^{{\theta^T}{{x}^{(i)}}}}}}] = − m 1 i = 1 ∑ m [ − y ( i ) 1 + e − θ T x ( i ) − x j ( i ) e − θ T x ( i ) − ( 1 − y ( i ) ) 1 + e θ T x ( i ) x j ( i ) e θ T x ( i ) ]
= − 1 m ∑ i = 1 m y ( i ) x j ( i ) 1 + e θ T x ( i ) − ( 1 − y ( i ) ) x j ( i ) e θ T x ( i ) 1 + e θ T x ( i ) ] =-\frac{1}{m}\sum\limits_{i=1}^{m}{{y}^{(i)}}\frac{x_j^{(i)}}{1+{{e}^{{\theta^T}{{x}^{(i)}}}}}-\left( 1-{{y}^{(i)}} \right)\frac{x_j^{(i)}{{e}^{{\theta^T}{{x}^{(i)}}}}}{1+{{e}^{{\theta^T}{{x}^{(i)}}}}}] = − m 1 i = 1 ∑ m y ( i ) 1 + e θ T x ( i ) x j ( i ) − ( 1 − y ( i ) ) 1 + e θ T x ( i ) x j ( i ) e θ T x ( i ) ]
= − 1 m ∑ i = 1 m y ( i ) x j ( i ) − x j ( i ) e θ T x ( i ) + y ( i ) x j ( i ) e θ T x ( i ) 1 + e θ T x ( i ) =-\frac{1}{m}\sum\limits_{i=1}^{m}{\frac{{{y}^{(i)}}x_j^{(i)}-x_j^{(i)}{{e}^{{\theta^T}{{x}^{(i)}}}}+{{y}^{(i)}}x_j^{(i)}{{e}^{{\theta^T}{{x}^{(i)}}}}}{1+{{e}^{{\theta^T}{{x}^{(i)}}}}}} = − m 1 i = 1 ∑ m 1 + e θ T x ( i ) y ( i ) x j ( i ) − x j ( i ) e θ T x ( i ) + y ( i ) x j ( i ) e θ T x ( i )
= − 1 m ∑ i = 1 m y ( i ) ( 1 + e θ T x ( i ) ) − e θ T x ( i ) 1 + e θ T x ( i ) x j ( i ) =-\frac{1}{m}\sum\limits_{i=1}^{m}{\frac{{{y}^{(i)}}\left( 1\text{+}{{e}^{{\theta^T}{{x}^{(i)}}}} \right)-{{e}^{{\theta^T}{{x}^{(i)}}}}}{1+{{e}^{{\theta^T}{{x}^{(i)}}}}}x_j^{(i)}} = − m 1 i = 1 ∑ m 1 + e θ T x ( i ) y ( i ) ( 1 + e θ T x ( i ) ) − e θ T x ( i ) x j ( i )
= − 1 m ∑ i = 1 m ( y ( i ) − e θ T x ( i ) 1 + e θ T x ( i ) ) x j ( i ) =-\frac{1}{m}\sum\limits_{i=1}^{m}{({{y}^{(i)}}-\frac{{{e}^{{\theta^T}{{x}^{(i)}}}}}{1+{{e}^{{\theta^T}{{x}^{(i)}}}}})x_j^{(i)}} = − m 1 i = 1 ∑ m ( y ( i ) − 1 + e θ T x ( i ) e θ T x ( i ) ) x j ( i )
= − 1 m ∑ i = 1 m ( y ( i ) − 1 1 + e − θ T x ( i ) ) x j ( i ) =-\frac{1}{m}\sum\limits_{i=1}^{m}{({{y}^{(i)}}-\frac{1}{1+{{e}^{-{\theta^T}{{x}^{(i)}}}}})x_j^{(i)}} = − m 1 i = 1 ∑ m ( y ( i ) − 1 + e − θ T x ( i ) 1 ) x j ( i )
= − 1 m ∑ i = 1 m [ y ( i ) − h θ ( x ( i ) ) ] x j ( i ) =-\frac{1}{m}\sum\limits_{i=1}^{m}{[{{y}^{(i)}}-{h_\theta}\left( {{x}^{(i)}} \right)]x_j^{(i)}} = − m 1 i = 1 ∑ m [ y ( i ) − h θ ( x ( i ) ) ] x j ( i )
= 1 m ∑ i = 1 m [ h θ ( x ( i ) ) − y ( i ) ] x j ( i ) =\frac{1}{m}\sum\limits_{i=1}^{m}{[{h_\theta}\left( {{x}^{(i)}} \right)-{{y}^{(i)}}]x_j^{(i)}} = m 1 i = 1 ∑ m [ h θ ( x ( i ) ) − y ( i ) ] x j ( i )
C o s t ( h θ ( x ( i ) , y ( i ) ) = = { − l g ( h θ ( x ) ) i f y = 1 − l g ( 1 − h θ ( x ) ) i f y = 0 Cost(h_\theta(x^{(i)},y^{(i)})==\begin{cases}-lg(h_\theta(x))&if&y=1 \\-lg(1-h_\theta(x))&if&y=0\end{cases} C o s t ( h θ ( x ( i ) , y ( i ) ) = = { − l g ( h θ ( x ) ) − l g ( 1 − h θ ( x ) ) i f i f y = 1 y = 0
h θ ( x ) {h_\theta}\left( x \right) h θ ( x ) 與 C o s t ( h θ ( x ) , y ) Cost\left( {h_\theta}\left( x \right),y \right) C o s t ( h θ ( x ) , y ) 之間的關係如下圖所示:
這樣構建的C o s t ( h θ ( x ) , y ) Cost\left( {h_\theta}\left( x \right),y \right) C o s t ( h θ ( x ) , y ) 函數的特點是:當實際的 y = 1 y=1 y = 1 且h θ ( x ) {h_\theta}\left( x \right) h θ ( x ) 也爲 1 時誤差爲 0,當 y = 1 y=1 y = 1 但h θ ( x ) {h_\theta}\left( x \right) h θ ( x ) 不爲1時誤差隨着h θ ( x ) {h_\theta}\left( x \right) h θ ( x ) 變小而變大;當實際的 y = 0 y=0 y = 0 且h θ ( x ) {h_\theta}\left( x \right) h θ ( x ) 也爲 0 時代價爲 0,當y = 0 y=0 y = 0 但h θ ( x ) {h_\theta}\left( x \right) h θ ( x ) 不爲 0時誤差隨着 h θ ( x ) {h_\theta}\left( x \right) h θ ( x ) 的變大而變大。
Python 代碼實現:
import numpy as np
def cost ( theta, X, y) :
theta = np. matrix( theta)
X = np. matrix( X)
y = np. matrix( y)
first = np. multiply( - y, np. log( X* theta. T) )
second = np. multiply( ( 1 - y) , np. log( 1 - X* theta. T) )
return np. sum ( first - second) / ( len ( X) )
Simplified Cost Function and Gradient Descent【簡化的成本函數和梯度下降】
Logistic regression cost function:
KaTeX parse error: Got function '\sum' with no arguments as argument to '\underset' at position 61: …{\underset{i=1}\̲s̲u̲m̲}Cost(h_\theta(…
這個式子可以合併成:
C o s t ( h θ ( x ) , y ) = − y × l o g ( h θ ( x ) ) − ( 1 − y ) × l o g ( 1 − h θ ( x ) ) Cost\left( {h_\theta}\left( x \right),y \right)=-y\times log\left( {h_\theta}\left( x \right) \right)-(1-y)\times log\left( 1-{h_\theta}\left( x \right) \right) C o s t ( h θ ( x ) , y ) = − y × l o g ( h θ ( x ) ) − ( 1 − y ) × l o g ( 1 − h θ ( x ) )
即,邏輯迴歸的代價函數:
C o s t ( h θ ( x ) , y ) = − y × l o g ( h θ ( x ) ) − ( 1 − y ) × l o g ( 1 − h θ ( x ) ) Cost\left( {h_\theta}\left( x \right),y \right)=-y\times log\left( {h_\theta}\left( x \right) \right)-(1-y)\times log\left( 1-{h_\theta}\left( x \right) \right) C o s t ( h θ ( x ) , y ) = − y × l o g ( h θ ( x ) ) − ( 1 − y ) × l o g ( 1 − h θ ( x ) )
= − 1 m ∑ i = 1 m [ y ( i ) log ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) log ( 1 − h θ ( x ( i ) ) ) ] =-\frac{1}{m}\sum\limits_{i=1}^{m}{[{{y}^{(i)}}\log \left( {h_\theta}\left( {{x}^{(i)}} \right) \right)+\left( 1-{{y}^{(i)}} \right)\log \left( 1-{h_\theta}\left( {{x}^{(i)}} \right) \right)]} = − m 1 i = 1 ∑ m [ y ( i ) log ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) log ( 1 − h θ ( x ( i ) ) ) ]
我們要求出min J ( θ ) \min J(\theta) min J ( θ ) 的參數$\theta , 另 外 , 我 們 假 設 的 輸 出 , 實 際 上 就 是 這 個 概 率 值 : ,另外,我們假設的輸出,實際上就是這個概率值: , 另 外 , 我 們 假 設 的 輸 出 , 實 際 上 就 是 這 個 概 率 值 : p(y=1|x;\theta)$,就是關於 x x x 以$\theta 爲 參 數 , 爲參數, 爲 參 數 , y=1$ 的概率,你可以認爲我們的假設就是估計 y = 1 y=1 y = 1 的概率。
我們要使min J ( θ ) \min J(\theta) min J ( θ ) 最小可以採用梯度下降的方法:
θ j : = θ j − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) {\theta_j}:={\theta_j}-\alpha \frac{1}{m}\sum\limits_{i=1}^{m}{({h_\theta}({{x}^{(i)}})-{{y}^{(i)}}){x_{j}}^{(i)}} θ j : = θ j − α m 1 i = 1 ∑ m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i )
其中這個和線性迴歸的梯度下降在形式上一致,但是假設卻是不一致的,其中線性迴歸的假設函數是h θ ( x ) = θ T X = θ 0 x 0 + θ 1 x 1 + θ 2 x 2 + . . . + θ n x n {h_\theta}\left( x \right)={\theta^T}X={\theta_{0}}{x_{0}}+{\theta_{1}}{x_{1}}+{\theta_{2}}{x_{2}}+...+{\theta_{n}}{x_{n}} h θ ( x ) = θ T X = θ 0 x 0 + θ 1 x 1 + θ 2 x 2 + . . . + θ n x n ,而邏輯迴歸的假設函數卻是h θ = 1 1 + e − θ T X h_\theta=\frac{1}{1+e^{-\theta^TX}} h θ = 1 + e − θ T X 1 。
當使用梯度下降法來實現邏輯迴歸時,我們有這些不同的參數$\theta , 就 是 ,就是 , 就 是 {\theta_{0}}$ θ 1 {\theta_{1}} θ 1 θ 2 {\theta_{2}} θ 2 一直到θ n {\theta_{n}} θ n ,我們需要用這個表達式來更新這些參數。我們還可以使用 for循環 來更新這些參數值,理想情況下,我們更提倡使用向量化的實現,可以把所有這些 n n n 個參數同時更新。
Advanced Optimization【高級優化】
octave。。。
Multiclass Classification_ One-vs-all【多類別分類:一對多】
在上面中,我們討論的是二分類問題,當多分類問題時,怎麼辦呢?
我們可以在多分類中提取一個類,並作爲正類,其餘作爲負類。進行邏輯迴歸,由此可以把與其他類區分出來,所以對各個類操作可以把所有的類區分開來。
爲了能實現這樣的轉變,我們將多個類中的一個類標記爲正向類(y = 1 y=1 y = 1 ),然後將其他所有類都標記爲負向類,這個模型記作h θ ( 1 ) ( x ) h_\theta^{\left( 1 \right)}\left( x \right) h θ ( 1 ) ( x ) 。接着,類似地第我們選擇另一個類標記爲正向類(y = 2 y=2 y = 2 ),再將其它類都標記爲負向類,將這個模型記作 h θ ( 2 ) ( x ) h_\theta^{\left( 2 \right)}\left( x \right) h θ ( 2 ) ( x ) ,依此類推。
最後我們得到一系列的模型簡記爲: h θ ( i ) ( x ) = p ( y = i ∣ x ; θ ) h_\theta^{\left( i \right)}\left( x \right)=p\left( y=i|x;\theta \right) h θ ( i ) ( x ) = p ( y = i ∣ x ; θ ) 其中:i = ( 1 , 2 , 3.... k ) i=\left( 1,2,3....k \right) i = ( 1 , 2 , 3 . . . . k )
最後,在我們需要做預測時,我們將所有的分類機都運行一遍,然後對每一個輸入變量,都選擇最高可能性的輸出變量。
總之,我們已經把要做的做完了,現在要做的就是訓練這個邏輯迴歸分類器:h θ ( i ) ( x ) h_\theta^{\left( i \right)}\left( x \right) h θ ( i ) ( x ) , 其中 i i i 對應每一個可能的 y = i y=i y = i ,最後,爲了做出預測,我們給出輸入一個新的 x x x 值,用這個做預測。我們要做的就是在我們三個分類器裏面輸入 x x x ,然後我們選擇一個讓 h θ ( i ) ( x ) h_\theta^{\left( i \right)}\left( x \right) h θ ( i ) ( x ) 最大的$ i, 即 ,即 , 即 \mathop{\max}\limits_i,h_\theta^{\left( i \right)}\left( x \right)$。