Logistic Regression对数几率回归

Logistic Regression 对数几率回归

首先logistic regression不是叫逻辑回归,而是叫对数几率回归。然后对数几率回归也不是用来解决回归问题的,而是解决分类问题的。

一、由线性回归引入对数几率回归

设有训练集 { X , Y } ∈ N \{X,Y\}\in \Bbb N {X,Y}N { x 0 , x 1 , x 2 , . . . , x n } ∈ X \{x_0,x_1,x_2,...,x_n\}\in X {x0,x1,x2,...,xn}X { y 0 , y 1 , y 2 , . . , y n } ∈ Y \{y_0,y_1,y_2,..,y_n\}\in Y {y0,y1,y2,..,yn}Y。先构造线性回归函数:

f ( x ) = w T x + b f(x)={\bf w}^T {\bf x}+b f(x)=wTx+b

这个大家应该都知道怎么来的, x \bf x x为输入向量, w , b {\bf w},b w,b为参数向量。
考虑二分类问题,线性回归的输出是真实数,而二分类问题的输出则是阶跃函数:

f ( z ) = { 0 , if  z &lt; 0.5 0.5 , if  z = 0.5 1 , if  z &gt; 0.5 f(z)=\begin{cases}0, &amp; \text{if $z&lt;0.5$} \\0.5, &amp; \text{if $z=0.5$} \\1, &amp; \text{if $z&gt;0.5$} \end{cases} f(z)=0,0.5,1,if z<0.5if z=0.5if z>0.5

那么如何将线性回归输出的真实数转化为阶跃函数的0/1(0.5抛弃不用)呢。这里考虑sigmoid函数,构造sigmoid函数如下:
σ ( z ) = 1 1 + e − z \sigma(z)=\cfrac{1}{1+e^{-z} } σ(z)=1+ez1 z = w T x + b z={\bf w}^T {\bf x}+b z=wTx+b

其函数图像如下:

sigmoid函数图

该函数的导如下,因为可以用自身来表示,接下来用到的时候,就知道它的好处了

σ ( z ) ′ = ( 1 1 + e z ) ′ = e − z ( 1 + e − z ) 2 = 1 + e − z − 1 ( 1 + e − z ) 2 = 1 1 + e − z ( 1 + − 1 1 + e − z ) = σ ( z ) ( 1 − σ ( z ) ) \begin{aligned} \sigma(z)^\prime &amp; = (\cfrac{1}{1+e^z})^\prime \\ &amp; = \cfrac {e^{-z}}{(1+e^{-z})^2} \\ &amp; = \cfrac {1+e^{-z}-1}{(1+e^{-z})^2} \\ &amp; = \cfrac {1}{1+e^{-z}}(1+\cfrac {-1}{1+e^{-z}}) \\ &amp; = \sigma(z) (1-\sigma(z)) \end{aligned} σ(z)=(1+ez1)=(1+ez)2ez=(1+ez)21+ez1=1+ez1(1+1+ez1)=σ(z)(1σ(z))

二、损失函数

目前已知对数几率函数如下:

σ ( x ) = 1 1 + e − ( w T x + b ) \sigma(x)=\cfrac{1}{1+e^{-({\bf w^Tx}+b)}} σ(x)=1+e(wTx+b)1

现在问题变成如何求解该函数的两个未知参数w,b。由于分类问题为有监督学习,对于训练集来说,我们是已知其分布的。那么已知数据分布,求解能够使最大限度地其服该分布的参数,可以用极大似然估计来解决。构造极大似然函数

l ( w , b ) = ∏ i = 0 n P ( y i ∣ x i ; w , b ) l(w,b)= \prod_{i=0}^n P(y_i|x_i;w,b) l(w,b)=i=0nP(yixi;w,b)

要使学习算法尽可能地学习到训练集特征,即是说预测出来的当前数据类别是真实类别的概率要尽可能大,那么就要最大化极大似然函数。则有下面等价变换(取对数是一般极大似然估计函数的解法,转累乘为累加,转最大化为最小化,因为目标函数为凸函数。这部分可以看看极大似然函数相关知识):

w ∗ , b ∗ = a r g   m a x w , b l ( w , b ) = a r g   m i n w , b − l n l ( w , b ) \begin{aligned} w^*,b^* &amp; = arg \text{ } max_{w,b}l(w,b) \\ &amp; = arg \text{ } min_{w,b}-lnl(w,b) \\ \end{aligned} w,b=arg maxw,bl(w,b)=arg minw,blnl(w,b)

在本二分类问题中,设类别0为 y 0 y^0 y0,设类别1为 y 1 y^1 y1,对于任意 x ∈ X x\in X xX,设其为类别0的概率为 p ( x ) = P ( y 0 ∣ x ) p(x)=P(y^0|x) p(x)=P(y0x),则其为类别1的概率为 P ( y 1 ∣ x ) = 1 − p ( x ) P(y^1|x)=1-p(x) P(y1x)=1p(x)
设训练集中第一个数据为类别0,第二个数据为类别1,第三个数据为类别0,……,
则极大似然函数可展开为:

− l n l ( w , b ) = − l n [ p ( x 0 ) ( 1 − p ( x 1 ) ) p ( x 2 ) . . . ] = − [ y 0 ∗ l n p ( x 0 ) + ( 1 − y 0 ) ∗ l n ( 1 − p ( x 0 ) ) ] &ThinSpace; − [ y 1 ∗ l n p ( x 1 ) + ( 1 − y 1 ) ∗ l n ( 1 − p ( x 1 ) ) ] &ThinSpace; − [ y 2 ∗ l n p ( x 2 ) + ( 1 − y 2 ) ∗ l n ( 1 − p ( x 2 ) ) ] &ThickSpace;&ThinSpace; . . . \begin{aligned} -lnl(w,b) &amp; = -ln[p(x_0)(1-p(x_1))p(x_2)...] \\ &amp; = -[ {\color{#F0F}{y_0}}*lnp(x_0)+ {\color{#F0F}{(1-y_0)}}*ln(1-p(x_0)) ] \\ &amp; \quad \, -[ {\color{#F0F}{y_1}}*lnp(x_1)+ {\color{#F0F}{(1-y_1)}}*ln(1-p(x_1))] \\ &amp; \quad \, -[ {\color{#F0F}{y_2}}*lnp(x_2)+ {\color{#F0F}{(1-y_2)}}*ln(1-p(x_2)) ] \\ &amp; \quad \; \, ... \end{aligned} lnl(w,b)=ln[p(x0)(1p(x1))p(x2)...]=[y0lnp(x0)+(1y0)ln(1p(x0))][y1lnp(x1)+(1y1)ln(1p(x1))][y2lnp(x2)+(1y2)ln(1p(x2))]...

注意粉色部分对应其真实类别,因此与真实类别不符的一边就会为0,从而消去,得到的结果也是符合实际要求的。这样我们需要最小化的损失函数就如下:

− l n l ( w , b ) = ∑ i − [ y i ∗ l n p ( x i ) + ( 1 − y i ) ∗ l n ( 1 − p ( x i ) ) ] -lnl(w,b)=\sum_{i} -[y_i*lnp(x_i)+(1-y_i)*ln(1-p(x_i))] lnl(w,b)=i[yilnp(xi)+(1yi)ln(1p(xi))]

接下来可以用很多方法来最小化这个函数,比如牛顿法或者梯度下降法。这里使用梯度下降法来解:
− l n l ( w , b ) ∂ w = ∑ i − [ y i ∗ l n p ( x i ) ∂ w + ( 1 − y i ) ∗ l n ( 1 − p ( x ) ) ∂ w ] = ∑ i − [ y i ∗ l n σ ( z ) ∂ z ∂ z ∂ w + ( 1 − y i ) ∗ l n ( 1 − σ ( z ) ) ∂ z ∂ z ∂ w ] = ∑ i − [ y i ∗ 1 σ ( z ) ∂ σ ( z ) ∂ z ∂ ( w T x i + b ) ∂ w + ( 1 − y i ) ∗ 1 1 − σ ( z ) − ∂ σ ( z ) ∂ z ∂ ( w T x i + b ) ∂ w ] ∂ σ ( z ) ∂ z 前面已经提过 = ∑ i − [ y i ∗ ( 1 − σ ( z ) ) x i − ( 1 − y i ) σ ( z ) x i ] = ∑ i − [ y i ∗ ( 1 − σ ( z ) ) − ( 1 − y i ) σ ( z ) ] x i = ∑ i − ( y i − σ ( z ) ) x i \begin{aligned} \cfrac {-lnl(w,b)}{\partial w} &amp; =\sum_{i}-[y_i*\cfrac {lnp(x_i)}{\partial w}+(1-y_i)*\cfrac {ln(1-p(x))}{\partial w}] \\ &amp; = \sum_{i} -[y_i*\cfrac {ln \sigma(z)}{\partial z} \cfrac {\partial z}{\partial w}+(1-y_i)* \cfrac{ln(1-\sigma(z))}{\partial z} \cfrac{\partial z}{\partial w}] \\ &amp; = \sum_{i} -[y_i * \cfrac {1}{\sigma(z)} \cfrac { \partial \sigma(z)}{ \partial z} \cfrac { \partial (w^Tx_i + b)}{ \partial w}+(1-y_i)* \cfrac {1}{1- \sigma(z)} \cfrac {- \partial \sigma(z)}{ \partial z} \cfrac { \partial (w^Tx_i + b)}{ \partial w}] \qquad \text{$ \cfrac{\partial{ \sigma(z)}}{ \partial z}$前面已经提过} \\ &amp; = \sum_{i}-[y_i*(1- \sigma(z))x_i-(1-y_i) \sigma(z)x_i] \\ &amp; = \sum_{i}-[y_i*(1- \sigma(z))-(1-y_i) \sigma(z)]x_i \\ &amp; = \sum_{i}-(y_i- \sigma(z))x_i \end{aligned} wlnl(w,b)=i[yiwlnp(xi)+(1yi)wln(1p(x))]=i[yizlnσ(z)wz+(1yi)zln(1σ(z))wz]=i[yiσ(z)1zσ(z)w(wTxi+b)+(1yi)1σ(z)1zσ(z)w(wTxi+b)]zσ(z)前面已经提过=i[yi(1σ(z))xi(1yi)σ(z)xi]=i[yi(1σ(z))(1yi)σ(z)]xi=i(yiσ(z))xi

则有 w w w更新公式,其中 η \eta η l e a r n i n g &ThickSpace; r a t e learning \; rate learningrate,即学习率:
w i + 1 = w i − η ∑ i − ( y i − σ ( z ) ) x i w_{i+1}=w_i- \eta \sum_i-(y_i- \sigma(z))x_i wi+1=wiηi(yiσ(z))xi

有机会再更新手写logistic regression。

有写的不对的地方还望不吝指教。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值