Classification
- Binary classification problem
- y只考慮是0或1,即y∈{0,1}
- 0又稱為negative class,可用"-"表示
- 1又稱為positive class,可用"+"表示
Hypothesis Representation
0≤hθ(x)≤1
- 新的形式稱為Sigmoid Function 或Logistic Function
hθ(x)=g(θTx)z=θTxg(z)=11+e−z
- hθ(x)代表的是output為1的機率
- 假設hθ(x)=0.7,代表有70%的機率output會是1
- 而output是0的機率就是1-70%=30%
Decision Boundary
- 為了要把結果做0跟1的分類,可以把hypothesis function的output轉譯成如下:
hθ(x)≥0.5→y=1hθ(x)<0.5→y=0
- 從前面Sigmoid Function的圖可知當z > 0時,g(z) >= 0.5
- 若z為θTX則代表:
hθ(x)=g(θTx)≥0.5whenθTx≥0
- 所以
θTx≥0⇒y=1θTx<0⇒y=0
- Decision Boundary就是用來區分y=0跟y=1區域的那條線
Cost Function
- 若Logistic Function使用Linear Regression的Cost Function,則會是波浪的形狀有很多Local Optima
- Logistic Regression的Cost Function如下
J(θ)=1mm∑i=1Cost(hθ(x(i)),y(i))Cost(hθ(x),y)=−log(hθ(x))if y = 1Cost(hθ(x),y)=−log(1−hθ(x))if y = 0
- 當y=1時會得到J(θ)跟hθ(x)的圖
- 整理如下:
Cost(hθ(x),y)=0 if hθ(x)=yCost(hθ(x),y)→∞ if y=0andhθ(x)→1Cost(hθ(x),y)→∞ if y=1andhθ(x)→0
Simplified Cost Function and Gradient Descent
- 我們可以把上面的Cost()整合成一條式子
- Cost(hθ(x),y)=−ylog(hθ(x))−(1−y)log(1−hθ(x))
- 整體的Cost Function如下表示:
- J(θ)=−1mm∑i=1[y(i)log(hθ(x(i)))+(1−y(i))log(1−hθ(x(i)))]
- 用vector的方式實作如下:
h=g(Xθ)J(θ)=1m⋅(−yTlog(h)−(1−y)Tlog(1−h))
Gradient Descent
- Gradient Descent的表示式跟Linear Regression一樣
Repeat{θj:=θj−αmm∑i=1(hθ(x(i))−y(i))x(i)j}
- 用vector的方式實作如下:
θ:=θ−αmXT(g(Xθ)−→y)
Advanced Optimization
- 除了Gradient Descent之外有其他更好的方法
- Conjugate gradient
- BFGS
- L-BFGS
- 但是建議不要自己實做這些複雜的演算法,而是找已經最佳化過的Library
- 我們需要提供一個Function去計算下面兩個結果
J(θ)∂∂θjJ(θ)
- 首先寫一個單一Function回傳這兩個結果
function [jVal, gradient] = costFunction(theta)
jVal = [...code to compute J(theta)...];
gradient = [...code to compute derivative of J(theta)...];
end
options = optimset('GradObj', 'on', 'MaxIter', 100);
initialTheta = zeros(2,1);
[optTheta, functionVal, exitFlag] = fminunc(@costFunction, initialTheta, options);
Multiclass Classification: One-vs-all
- 當類別超過兩類時,定義 y = {0,1...n}
- 把這個問題分成n+1個Binary Classification Problem,將最大的結果當成預測值
y∈{0,1...n}h(0)θ(x)=P(y=0|x;θ)h(1)θ(x)=P(y=1|x;θ)⋯h(n)θ(x)=P(y=n|x;θ)prediction=maxi(h(i)θ(x))
Regularization
- 為了避免overfitting,可以在cost function中加上對weight的懲罰,所以cost function改寫如下:
- minθ 12m ∑mi=1(hθ(x(i))−y(i))2+λ ∑nj=1θ2j
- Regularized Linear Regression
- Gradient Descent
- 演算法改寫如下,要注意的是並沒有對θ0做懲罰
Repeat { θ0:=θ0−α 1m m∑i=1(hθ(x(i))−y(i))x(i)0 θj:=θj−α [(1m m∑i=1(hθ(x(i))−y(i))x(i)j)+λmθj] j∈{1,2...n}}
- 在經過整理後如下:
- θj:=θj(1−αλm)−α1m∑mi=1(hθ(x(i))−y(i))x(i)j
- 由於1−αλm 永遠會小於1,而後面的項目跟沒做regularization前一樣,所以weight會減小的範圍就決定在1−αλm
- Normal Equation
- 式子改寫如下:
θ=(XTX+λ⋅L)−1XTywhere L=[011⋱1]
- 前面提過若m<n則XTX是不可逆的,但在改寫後XTX + λ⋅L是可逆的。
- Regularized Logistic Regression
- 和Regularized Linear Regression的方法一樣
沒有留言:
張貼留言