[小白式机器学习(一)] logistic regression(LR)对数几率回归 / 逻辑回归 公式推导

因为是傻瓜式教程,所以一定会非常详细!一些概念link到了Wiki的相应解释上。 
欢迎捉虫~!

二分类和回归的关系

考虑  xy  表示的二分类或回归问题,其中  x  是输入,  y  是输出。 
1. 在二分类中,  y  的值取0或1,代表被分为正类或负类。在回归中,  y  的取值为连续值。 
2. 在线性回归模型中,  y=wTx=wx ,此处  w  为参数向量,  x  为输入样本向量。 
3. 进一步,广义线性回归模型可以写为  g(y)=wx  或者   y=g1(wx) 的形式,其中  g  为单调可微函数。所以在对数回归中,模型是  ln(y)=wx

sigmoid函数与LR的关系

sigmoid函数:在数学上是拥有性感的s形曲线样子的函数: 
这里写图片描述

通常说的sigmoid函数指的是这个logistic函数  δ(z)=11+ez=ez1+ez  。本文所指的sigmoid函数就是该logistic函数: 
这里写图片描述

sigmoid函数具有以下特点: 
- 值域在(0,1) 
- 求导非常容易  δ(z)=δ(1δ(z))  (求导过程见附录,或Wiki)

我们希望在做二分类时,输出  y  不再是非0即1的取值,而是希望输出一个有概率意义的  (0,1)  之间的值,表示的是分为正类的概率(所以  1y 是分为负类的概率),然后再做二分类,所以我们挑选sigmoid函数作为广义线性回归的 g1 ,即

y=δ(wx)=11+ewx(1)
接下来将符合   y=g1(wx)  形式的  (1)  写为  g(y)=wx  的形式,则 
y+yewx=1
yewx=1y
ewx=1yy
wx=ln(1yy)
wx=ln(y1y)(2)

所以,现在   g(y)=ln(y1y) 。 
前面说到,输出值  y  代表分到正类的概率,  1y  代表分到负类的概率,那么  y1y=  ,称为 几率  ln(y1y) 称为 对数几率(logit)  (2)  的本质是用  wx  线性回归模型逼近对数几率,我们管这叫 对数几率回归( logit regression / logistics regression)

条件概率

  •  y  代表分到正类的概率,即为条件概率:  P(y=1|x) 。 
     1y  代表分到负类的概率,即为条件概率:  P(y1|x)=P(y=0|x)=1P(y=1|x)
  • 我们有 P(y=1|x)=y=11+ewx
  • 假设数据集共有  N  个样本,记第i个样本输入(m维向量)和样本标签分别为  xi=[xi(1),xi(2),...,xi(m)]Tyi={0,1}  。条件概率其实和参数  w  有关,那么正确分类的条件概率应该写为:   P(y=yi|x=xi;w) ,简记为  P(yi|xi;w)  。 
    (意思是输入变量  x  取  xi  时,输出  y =真实标签  yi  的概率)
  • P(yi|xi;w)=P(y=1|xi;w),P(y=0|xi;w)=1P(y=1|xi;w),if yi=1 if yi=0

  • ln[P(yi|xi;w)]=ln[P(y=1|xi;w)],ln[[P(y=0|xi;w)]=ln[1P(y=1|xi;w)],if yi=1 if yi=0

  • 也等价于 lnP(y=yi|xi;w)={yi=1}lnP(y=1|xi;w)+{yi=0}ln(1P(y=1|xi;w))  
    其中 {yi=1} 称为示性函数,当条件被满足就取1,否则取0。 
    在二分类型况下,怎么样的函数能满足这样的条件呢? yi 1yi 就可以呀! 
    ln[P(yi|xi;w)]=(yi)ln[P(y=1|xi;w)]+(1yi)ln[1P(y=1|xi;w)](3)

从原始概率来看,即

P(yi|xi;w)=P(y=1|xi;w)yi×(1P(y=1|xi;w))(1yi)

最大似然求解

似然的解释见附录或Wiki

我们希望,求得参数  w  ,使“抽取的样本  xi  属于本身的标签  yi  的概率最大 ”即  P(yi|xi;w) 尽量大。 
换句话说,就是极大化对数似然  L(w) : 

L(w)=lniNP(yi|xi;w)=iNln[P(yi|xi;w)](4)

那么我们的目标就是
w=awrgmaxL(w)

 (4)  中我们用到  ln(ab)=ln(a)+ln(b) ,是因为连乘比起连加,求最优的难度更大,所以用对数函数转换一下,方便求解。 
(3)  带入 (4)  ,得: 
L(w)=iNln[P(y=1|xi;w)yi×(1P(y=1|xi;w))(1yi)](5)

化简: 
L(w)=iN{ln[P(y=1|xi;w)yi]+ln[(1P(y=1|xi;w)(1yi)]}

L(w)=iN{yiln[P(y=1|xi;w)]+(1yi)ln[1P(y=1|xi;w)]}

我们有 P(y=1|x;w)=y=11+ewx  
L(w)=iN{yiln(P(y=1|xi;w)1P(y=1|xi;w))+ln(1ewxi1+ewxi)}

回忆 (2)ln(P(y=1|xi;w)1P(y=1|xi;w))  实际就是  wxi  嘛! 
L(w)=iN{yiwxiln(1+ewxi)}

w=awrgmaxL(w)=awrgmin[L(w)]=awrgminiN{ln(1+ewxi)yiwxi}(6)

最终目标函数成了最小化这个loss了,如何最小化?它关于x可导又连续,学过凸优化的都知道怎么做了吧?牛顿法、梯度下降等可以迭代求解最优。从搞神经网络的角度看,sigmoid是经典的激活函数,LR完全可以等价成一层的神经网络,激活函数是sigmoid!这里回忆一下,sigmoid函数的优良性质之一:导数好求。所以对于一切需要求梯度的方法,代码实现的难度就降低了。


附录

sigmoid函数求导

 f=δ(x)  

f=11+ex=exex+1
1f1=ex+1ex1=ex

(1f)=1f2; g(f)=gff  
f=1(1+ex)2ex=f2(1f1)=f(1f)

似然

我们从机器学习的角度看

  • θ  为模型(参数)。
  • 记  D  为训练数据集,是真实数据空间的抽样集合,训练数据集越大,D的分布越接近真实数据空间的分布。
  • 记  x  为一个观测,也可以理解为一个训练样本,是真实数据空间的一个抽样,即随机变量X的一个取值。

  • 似然/似然函数(likelihood):给定参数时,事件出现的可能性。 
    “似然”和“概率”可以算作同义词。通常,似然用于数据已知时描述模型参数(数据已知了还要描述数据出现的可能性,可不是就和参数有关嘛)。而概率通常用于描述未知的事件出现的可能性。似然的举例如下:

    1. 当假设数据集中的每个样本在样本空间中都是独立的时候,参数 θ  相对于样本集 D={x1,x2,x3,...,xn} 的似然为 L(θ)=P(x1,x2,x3,...,xn|θ)=niP(xi|θ)
    2. 参数 θ  相对于一个观测 x  的似然为 L(θ)=P(x|θ)

    L(θ)  是一个关于 θ  的函数。特别的,当  θ  是随机变量时, L(θ)  是条件概率 P(X=x|θ) ,也可以写为 P(X=x;θ)

  • 贝叶斯推理的观点: 
    θ  是服从分布 pθ  的随机变量,分布 pθ  是关于模型的假设,称为先验,先验概率(piror probability)也记为 p(θ) ;给定数据集能得到模型 θ  的概率 P(θ|D) 称为后验概率(posterior probability);参数 θ  下数据集样本都在观测都出现的概率 P(x|θ)  为似然(likelihood);数据集的联合概率为 P(D)

Reference:

周志华 -《机器学习》 
ufldl - softmax 
图片均来自维基百科

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值