Logistic回归的梯度下降法推导

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+ez

结合线性分类器,分类方法写为:

hθ(x)=11+eθTx

其中,θx都是矢量,如果hθ(x)>0.5y=1, 否则y=0。根据y的取值,样本x就被分成两类。
下面的问题是如何求出最优的θ

目标函数

一般而言目标函数会写成所有训练样本的误差项求和的形式
J(θ)=1NNi=112[y(i)hθ(x(i))]2

但是对于Logstic回归来说,这个目标函数并不好,相对于自变量是一个非凸函数,
因此使用另外的目标函数,这个目标函数是

J(i)(θ)={log(1hθ(x(i)))if y(i)=0log(hθ(x(i))if y(i)=1

定义如下函数
Cost(hθ(x),y)=ylog(hθ(x))(1y)log(1hθ(x))


并将目标函数写为
J(i)(θ)=1NNi=1Cost(hθ(x(i)),y(i))=1N[y(i)log(hθ(x(i)))+(1y(i))log(1hθ(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

括号[]内第二求和项的导数

(1y(i))log(1hθ(x(i))θj=(1y(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)

热评文章