[机器学习算法推导与总结] 逻辑回归

本文深入探讨逻辑回归的损失函数及其来源,解释为何采用对数似然函数,并详细解析逻辑函数如何将线性连续值转化为概率。同时,介绍了梯度下降法在逻辑回归参数求解中的应用。
逻辑回归损失函数的来由

损失函数为,其中h(x(i))h( x^{(i)})h(x(i))是第i个样本标签为1的概率
J(ω)=−1M∑i=1M[y(i)log(h(x(i)))+(1−y(i))log(1−h(x(i)))] J(\omega)=-\frac{1}{M} \sum_{i=1}^M[ y^{(i)} log ( h( x^{(i)}))+(1- y^{(i)})log(1- h( x^{(i)}))] J(ω)=M1i=1M[y(i)log(h(x(i)))+(1y(i))log(1h(x(i)))]  
  那么其实可以看出,损失函数就是对数似然函数的和。
  在极大似然法中,使用对数似然函数作为目标函数来求参数,在逻辑回归中也是差不多,使用对数似然函数的和作为目标函数来求参数。
  那么为什么要求“对数”呢?主要是在极大似然法中,为了计算求导方便。取对数可以把好几个概率的相乘变为几个概率的相加,和的导数比积的导数好求多了,而且求对数之后不改变极值点,所以习惯上都取对数。后来就把这个习惯延续到逻辑回归中了。

逻辑函数的来由

逻辑函数的形式如下,其中xjx_jxj是第j个样本的第j维:
h(x)=11+e−ωx h(x)=\frac{ 1}{1+e^{-\omega x} } h(x)=1+eωx1
  我们需要线性连续值ωTx\omega^T xωTx转化为离散值0和1。如果用下面这种简单粗暴的方法:
f(x)={1,if&ThinSpace;&ThinSpace;&ThinSpace;ωTx≥00,if&ThinSpace;&ThinSpace;&ThinSpace;ωTx&lt;0 \begin{aligned} f(x)=\left\{ \begin{array}{lr} 1,if \,\,\,\omega^T x\geq0 \\ 0, if \,\,\, \omega^T x&lt; 0 \end{array} \right. \end{aligned} f(x)={1,ifωTx00,ifωTx<0
  上面这个函数不可导,对于求解参数来说太不友好了。因此才有了逻辑函数的形式。它近似于上面这个函数,又可以求导。但是逻辑函数得到的值还不是离散值0和1,而是样本为1的概率。那么逻辑函数的形式是怎么把线性连续值ωTx\omega^T xωTx转化为概率呢?
P=P(y=1∣x)=11+e−ωx=eωxeωx+1 \begin{aligned} P=P(y=1|x)=\frac{ 1}{1+e^{-\omega x} } = \frac{e^{\omega x} }{e^{\omega x}+1 } \\ \end{aligned} P=P(y=1x)=1+eωx1=eωx+1eωx
  化简为:
P(eωx+1)=eωxP=eωx(1−P)P1−P=eωxlnP1−P=ωx \begin{aligned} P(e^{\omega x}+1 )=e^{\omega x} \\ P=e^{\omega x}(1-P) \\ \frac{P}{1-P}=e^{\omega x} \\ ln \frac{P}{1-P}=\omega x \end{aligned} P(eωx+1)=eωxP=eωx(1P)1PP=eωxln1PP=ωx  
  所以,其实逻辑函数令ωTx\omega^T xωTx等于样本为1的几率的对数,即lnP1−Pln\frac{P}{1-P}ln1PP,然后由此对数解出样本为1的概率PPP,求解的公式即为逻辑函数。

梯度下降求解

J(ω)J(\omega)J(ω)ωj\omega_jωj求导得:
dJ(ω)dωj=−1M∑i=1M[y(i)(1−h(x(i)))⋅h(x(i))⋅xj(i)h(x(i))−(1−h(x(i)))⋅h(x(i))⋅xj(i)1−h(x(i))+y(i)(1−h(x(i)))⋅h(x(i))⋅xj(i)1−h(x(i))]=−1M∑i=1M[(y(i)−h(x(i)))xj(i)] \begin{aligned} \frac{dJ(\omega) }{d \omega_j }&amp;=-\frac{1}{M} \sum_{i=1}^M [ \frac{y^{(i)}(1-h(x^{(i)})) \cdot h(x^{(i)})\cdot x^{(i)}_j}{ h(x^{(i)})} - \frac{(1-h(x^{(i)})) \cdot h(x^{(i)})\cdot x^{(i)}_j}{1-h(x^{(i)}) } + \frac{y^{(i)}(1-h(x^{(i)})) \cdot h(x^{(i)})\cdot x^{(i)}_j}{1-h(x^{(i)})} ] \\ &amp; =-\frac{1}{M} \sum_{i=1}^M[ (y^{(i)}- h(x^{(i)}) ) x^{(i)}_j ] \end{aligned} dωjdJ(ω)=M1i=1M[h(x(i))y(i)(1h(x(i)))h(x(i))xj(i)1h(x(i))(1h(x(i)))h(x(i))xj(i)+1h(x(i))y(i)(1h(x(i)))h(x(i))xj(i)]=M1i=1M[(y(i)h(x(i)))xj(i)]

补充:逻辑函数求导公式

对于逻辑函数,其中xjx_jxj是第j个样本的第j维:
h(x)=11+e−ωx h(x)=\frac{ 1}{1+e^{-\omega x} } h(x)=1+eωx1
  对ωj\omega_jωj求导得:
dh(x)dωj=−1⋅1(1+e−ωx)2⋅e−ωx⋅(−xj)=−ωx1+e−ωx⋅11+e−ωx⋅xj=(1−h(x))⋅h(x)⋅xj \begin{aligned} \frac{dh(x) }{d \omega_j }&amp;=-1\cdot \frac{1}{(1+e^{-\omega x})^2}\cdot e^{-\omega x}\cdot (-x_j) \\ &amp; =\frac{-\omega x}{1+e^{-\omega x}} \cdot \frac{ 1}{1+e^{-\omega x} }\cdot x_j \\ &amp; =(1-h(x)) \cdot h(x)\cdot x_j \end{aligned} dωjdh(x)=1(1+eωx)21eωx(xj)=1+eωxωx1+eωx1xj=(1h(x))h(x)xj

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值