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

逻辑回归损失函数的来由

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

逻辑函数的来由

逻辑函数的形式如下,其中 x j x_j xj是第j个样本的第j维:
h ( x ) = 1 1 + e − ω x h(x)=\frac{ 1}{1+e^{-\omega x} } h(x)=1+eωx1
  我们需要线性连续值 ω T x \omega^T x ωTx转化为离散值0和1。如果用下面这种简单粗暴的方法:
f ( x ) = { 1 , i f &ThinSpace;&ThinSpace;&ThinSpace; ω T x ≥ 0 0 , i f &ThinSpace;&ThinSpace;&ThinSpace; ω T x &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的概率。那么逻辑函数的形式是怎么把线性连续值 ω T x \omega^T x ωTx转化为概率呢?
P = P ( y = 1 ∣ x ) = 1 1 + e − ω x = e ω x e ω 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 ω x P = e ω x ( 1 − P ) P 1 − P = e ω x l n P 1 − 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  
  所以,其实逻辑函数令 ω T x \omega^T x ωTx等于样本为1的几率的对数,即 l n P 1 − P ln\frac{P}{1-P} ln1PP,然后由此对数解出样本为1的概率 P P P,求解的公式即为逻辑函数。

梯度下降求解

J ( ω ) J(\omega) J(ω) ω j \omega_j ωj求导得:
d J ( ω ) d ω j = − 1 M ∑ i = 1 M [ y ( i ) ( 1 − h ( x ( i ) ) ) ⋅ h ( x ( i ) ) ⋅ x j ( i ) h ( x ( i ) ) − ( 1 − h ( x ( i ) ) ) ⋅ h ( x ( i ) ) ⋅ x j ( i ) 1 − h ( x ( i ) ) + y ( i ) ( 1 − h ( x ( i ) ) ) ⋅ h ( x ( i ) ) ⋅ x j ( i ) 1 − h ( x ( i ) ) ] = − 1 M ∑ i = 1 M [ ( y ( i ) − h ( x ( i ) ) ) x j ( 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)]

补充:逻辑函数求导公式

对于逻辑函数,其中 x j x_j xj是第j个样本的第j维:
h ( x ) = 1 1 + e − ω x h(x)=\frac{ 1}{1+e^{-\omega x} } h(x)=1+eωx1
  对 ω j \omega_j ωj求导得:
d h ( x ) d ω j = − 1 ⋅ 1 ( 1 + e − ω x ) 2 ⋅ e − ω x ⋅ ( − x j ) = − ω x 1 + e − ω x ⋅ 1 1 + e − ω x ⋅ x j = ( 1 − h ( x ) ) ⋅ h ( x ) ⋅ x j \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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值