吳恩達機器學習筆記之邏輯迴歸

邏輯迴歸

原來的線性迴歸函數:
hθ(x)=θTx h_{\theta}(x) = {\theta}^T * x

θTx==θx{\theta}^T * x == \theta \cdot x
表示兩個向量的內積, 即兩個向量做Dot-Product

在此基礎上增加Sigmoid函數,改成如下的邏輯迴歸函數:
hθ(x)=1(1+eθTx) h_{\theta}(x) = \frac{1} {(1 + e^{-{\theta}^T * x})}
其中:
hθ(x)=g(θTx)h_{\theta}(x) = g({\theta}^T * x)
g(z)=1(1+ez)g(z) = \frac{1} {(1 + e^{-z})}

決策界限

傳統的線性迴歸函數 θTx{\theta}^T x 假如表示成如下:

θ0+θ1x1+θ2x2{\theta}_0 + {\theta}_1x_1 + {\theta}_2x_2

θ=[311]{\theta}=\left[\begin{matrix}-3 \\1\\1\end{matrix}\right],可知:
x1+x2=3x_1+x_2=3就是這個決策界限函數.

邏輯迴歸代價函數的簡單寫法

Cost(hθ(x),y)=ylog(hθ(x))(1y)log(1hθ(x))Cost( h_{\theta}(x), y) = -y*log(h_{\theta}(x)) - (1-y)*log(1 - h_{\theta}(x))

注意:這裏的log()函數相當於ln(),即以e爲底的對數.

最終代價函數如下:
J(θ)=1/mi=1mCost(hθ(x(i)),y(i))J(\theta) = 1/m * \sum_{i=1}^m Cost(h_{\theta}(x^{(i)}), y^{(i)})
J(θ)=1/mi=1m[y(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i))]J(\theta) = -1/m * \sum_{i=1}^m [y^{(i)} log(h_{\theta}(x^{(i)})) + (1-y^{(i)})log(1 - h_{\theta}(x^{(i)})]

最終對上式求得偏導數如下:
θjJ(θ)=1/mi=1m(hθ(x(i))y(i))xj(i)\frac{\partial}{\partial \theta_j}J(\theta)=1/m*\sum_{i=1}^m (h_{\theta}(x^{(i)})-y^{(i)})x_j^{(i)}
其中求導過程如下:
這裏對複合函數求導:
令:
f1(θj)=y(i)log(hθ(x(i)))f_1(\theta_j)=y^{(i)} log(h_{\theta}(x^{(i)}))
u(θj)=hθ(x(i));g(u)=y(i)log(u);u(\theta_j)=h_{\theta}(x^{(i)}) ;g(u)=y^{(i)}log(u);
f1(θj)=g(u)u(θj)\therefore f_1'(\theta_j)=g'(u)*u'(\theta_j)
f1(θj)=y(i)u(θj)u(θj)=y(i)hθ(x(i))u(θj)\therefore f_1'(\theta_j)=\frac{y^{(i)}}{u(\theta_j)}*u'(\theta_j)=\frac{y^{(i)}}{h_{\theta}(x^{(i)})}*u'(\theta_j)

因爲:log(x)=1/xlog'(x)=1/x
(ex)=ex(e^x)'=e^x
g(z)=g(z)(1g(z))g'(z)=g(z)*(1-g(z))

u(θj)=eθTx(1+eθTx)2xj(i)=hθ(x(i))(1hθ(x(i)))xj(i)u'(\theta_j)= \frac{e^{-{\theta}^T * x}} {(1 + e^{-{\theta}^T * x})^2}*x_j^{(i)}=h_{\theta}(x^{(i)})*(1-h_{\theta}(x^{(i)}))*x_j^{(i)}
f1(θj)=y(i)(1hθ(x(i)))xj(i)\therefore f_1'(\theta_j)=y^{(i)}*(1-h_{\theta}(x^{(i)}))*x_j^{(i)}

又有:
f2(θj)=(1y(i))log(1hθ(x(i))f_2(\theta_j)= (1-y^{(i)})log(1 - h_{\theta}(x^{(i)})
最終:
f2(θj)=(1y(i))hθ(x(i))(1hθ(x(i)))xj(i)1hθ(x(i))f_2'(\theta_j)=(1-y^{(i)})* \frac{-h_{\theta}(x^{(i)})*(1-h_{\theta}(x^{(i)}))*x_j^{(i)}}{1 - h_{\theta}(x^{(i)})}
消去分子分母后得到:
f2(θj)=(1y(i))hθ(x(i))xj(i)f_2'(\theta_j)=-(1-y^{(i)})* h_{\theta}(x^{(i)})*x_j^{(i)}

所以:
θjJ(θ)=1/mi=1m(f1(θj)+f2(θj))\frac{\partial}{\partial \theta_j}J(\theta)=1/m*\sum_{i=1}^m (f_1'(\theta_j)+f_2'(\theta_j))
θjJ(θ)=1/mi=1m(y(i)hθ(x(i)))xj(i)\frac{\partial}{\partial \theta_j}J(\theta)=-1/m*\sum_{i=1}^m (y^{(i)}-h_{\theta}(x^{(i)}))x_j^{(i)}
然後提出一個負號,最終求得偏導數如下:
θjJ(θ)=1/mi=1m(hθ(x(i))y(i))xj(i)\frac{\partial}{\partial \theta_j}J(\theta)=1/m*\sum_{i=1}^m (h_{\theta}(x^{(i)})-y^{(i)})x_j^{(i)}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章