关闭

史上最直白的logistic regression教程 之 三

标签: logistic
691人阅读 评论(0) 收藏 举报
分类:

在线性拟合的基础上,我们实现logistic regression。

如前所述,样本集是

{x1,y1},{x2,y2},...,{xn,yn}[1]

其中,xi=[1,xi,1,xi,2,xi,3,...,xi,k]T,且yi(0,1)。注意,这里对yi有值上的要求,必须如此,如果值不再这个区间,要以归一化的方式调整到这个区间。对于分类问题,则yi的取值或者是0,或者是1,也就是yi{0,1}

当然,从严格的意义上说,logistic regression拟合后,yi的值只能无限地逼近0和1,而不能真正达到0和1,但在处理实际问题上,可以设定成形如 ifyi>0.5thenyi=1ifyi<=0.5thenyi=0解决。

Logistic regression的拟合形式如下:

yi=f(zi)[2]
zi=Wxi[3]

其中,f(z)=11+ez[4],也就是Logistic函数。

根据公式[2]和公式[3],则:

yi=f(Wxi)[4]

那么,如果用公式[4]拟合xiyi的关系,需要求解W,使得在公式[1]上误差最小。对应的损失函数就是

Loss=12i=1n(yif(Wxi))2[5]

跟前面的一样,我们用梯度下降法求解。
所以,要对公式[5]wj的一阶偏导,于是有

Losswj=i=1n(yif(Wxi))×(1)×f(Wxi)wj=i=1n(yif(Wxi))×(1)×f(zi)zi×ziwj[6]

注意,问题来了,公式[6]的最后一步,实际上是将Wxi视为一个变量zi,分别求导。这一步是在高等数学有详细描述了,不解释。

公式[6]中的f(zi)zi等价于f(z),因为只有一个自变量z。根据公式[4],可以求出

f(z)=ez(ez+1)2[7]

对公式[7]可以做一次变形,以方便求解:
根据公式[4],可以知道
ez=f(z)1f(z)[8]

将公式[8]代入到公式[7],就可以得到
f(z)=f(z)×(1f(z))[9]

也就是说,我们可以根据f(z)得到f(z),而且计算量很小。

把公式[9]代入公式[6],就得到

Losswj=i=1n(yif(Wxi))×(1)×f(zi)zi×ziwj=i=1n(yif(Wxi))×(1)×f(zi)×(1f(zi))×ziwj=i=1n(yif(Wxi))×(1)×f(Wxi)×(1f(Wxi))×(Wxi)wj=i=1n(yif(Wxi))×(1)×f(Wxi)×(1f(Wxi))×(Wxi)wj=i=1n(yif(Wxi))×(1)×f(Wxi)×(1f(Wxi))×xi,j=i=1n(yif(Wxi))×f(Wxi)×(f(Wxi)1)×xi,j[10]

于是公式[10]可以写成
Losswj=i=1n(yif(Wxi))f(Wxi)(f(Wxi)1)xi,j[11]

那么,wj在梯度下降法的迭代公式就是
wj=wj+wj=wjLosswj[12]

现在,我们开始做最麻烦的一步,将公式[11]进行矩阵化

Y=[y1,y2,...,yn][13]

W=[w0,w1,w2,...,wk][14]

X=11...1x1,1x2,1...xn,1x1,2x2,2...xn,2............x1,kx2,k...xn,k[15]

V=f(Wx1)(f(Wx1)1)0...00f(Wx2)(f(Wx2)1)...0............00...f(Wxn)(f(Wxn)1)[16]

L=[f(Wx1),f(Wx2),...,f(Wxn)][17]

公式[16]略有一点复杂,它是对角矩阵。
根据上述设定,公式[11]的矩阵化形式就是
Losswj=(YL)Vx1,jx2,j...xn,j[18]

那么,对W而言,更新公式就是
W=W(YL)VX[19]

到这里,logisitci regression的梯度下降法推导就结束了。下一篇我们用python实现求解过程。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:190791次
    • 积分:3814
    • 等级:
    • 排名:第8412名
    • 原创:199篇
    • 转载:1篇
    • 译文:0篇
    • 评论:51条