Marchine Learning in Action 一书第五章介绍了逻辑回归(Logistic regression),但是书中没有给出目标函数,也没有给出梯度下降法的推导。在解释代码处文中指出:
A little math is needed to derive the equations used here, and I’ll leave you to look into that further if desired.
So, 本文的目的就是展示所谓的A little math
。
Logistic regression
sigmoid function
σ(z)=11+e−z
结合线性分类器,分类方法写为:
hθ(x)=11+e−θTx
其中,θ和x都是矢量,如果hθ(x)>0.5则y=1, 否则y=0。根据y的取值,样本x就被分成两类。
下面的问题是如何求出最优的θ?
目标函数
一般而言目标函数会写成所有训练样本的误差项求和的形式
J(θ)=1NN∑i=112[y(i)−hθ(x(i))]2
但是对于Logstic回归来说,这个目标函数并不好,相对于自变量是一个非凸函数,
因此使用另外的目标函数,这个目标函数是
定义如下函数
Cost(hθ(x),y)=−ylog(hθ(x))−(1−y)log(1−hθ(x))
并将目标函数写为
J(i)(θ)=1NN∑i=1Cost(hθ(x(i)),y(i))=−1N[y(i)log(hθ(x(i)))+(1−y(i))log(1−hθ(x(i)))]
梯度下降法求解∂∂θjJ(θ)
括号[]内第一求和项的导数
∂y(i)log(hθ(x(i))∂θj=y(i)(1+e−θTx)e−θTxx(j)(1+e−θTx)2=y(i)e−θTxx(j)1+e−θTx括号[]内第二求和项的导数
∂(1−y(i))log(1−hθ(x(i))∂θj=(1−y(i))(1+e−θTx)e−θTx×−e−θTx(1+e−θTx)2x(j)=(y(i)−1)x(j)1+e−θTx以上两式求和得
(y(i)−hθ(x(i)))x(j)
因此
∂∂θjJ(θ)=1N(hθ(x(i))−y(i))x(j)