您的位置:首页 > 编程语言 > C语言/C++

逻辑回归 logistic regression 代价函数导数求解过程

2017-12-06 23:37 465 查看
在学习机器学习的课程中,逻辑回归的对数似然函数为

J(θ)=−1m∑mi=1yilog(hθ(xi))+(1−yi)log(1−hθ(xi))

对于多元线性模型,其中θTx可以表示为:

θxi:=θ0+θ1xi1+⋯+θpxip.

θ0可以看作阈值的大小。大于阈值的分为一类,小于阈值的分为一类。

对h(x)进行归一化,

g(x)为sigmoid函数:g(z)=11+e−z

hθ(x)=g(θTx)

取h(x)的对数:

loghθ(xi)=log11+e−θxi=−log(1+e−θxi),

log(1−hθ(xi))=log(1−11+e−θxi)=log(e−θxi)−log(1+e−θxi)=−θxi−log(1+e−θxi),

由于归一化的函数为非凸函数,因此无法使用梯度下降,我们使用极大似然方法估计模型参数。

假设若为二分类,可以设

P(y=1|hi)=hθ(xi)

P(y=1|hi)=1−hθ(xi)

似然函数可以表示为:

∏mI=0hθ(xi)yI[1−hθ(xi)1−yI]

取对数,有

J(θ)=−1m∑mi=1yilog(hθ(xi))+(1−yi)log(1−hθ(xi))

J(θ)=−1m∑mi=1[−yi(log(1+e−θxi))+(1−yi)(−θxi−log(1+e−θxi))]

J(θ)=−1m∑mi=1[yiθxi−θxi−log(1+e−θxi)]

J(θ)=−1m∑mi=1[yiθxi−log(1+eθxi)]

其中的部分可以进一步化简:

−θxi−log(1+e−θxi)=−[logeθxi+log(1+e−θxi)]=−log(1+eθxi).

求偏导数:

∂∂θjyiθxi=yixij,

∂∂θjlog(1+eθxi)=xijeθxi1+eθxi=xijhθ(xi),

最后可得,

∂∂θjJ(θ)==−1m∑mi=1xij[yi−hθ(xi)]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息