机器学习入门学习笔记:(2.3)对数几率回归推导

来源:互联网 发布:前端软件开发工程师 编辑:程序博客网 时间:2024/04/28 05:03

理论推导

  在以前的博客(机器学习入门学习笔记:(2.1)线性回归理论推导 )中推导了单元线性回归多元线性回归的模型。
  将线性回归模型简写为:y=ωTx+b
  对数线性回归模型可以写成:ln(y)=ωT+b;本质上仍然是线性回归,只不过拟合的是非线性的ln函数了。
  更一般地,考虑单调可微函数g(.),令y=g1(ωTx+b);这个模型就叫做广义线性回归模型。(直接抄书的,实在不擅长背定义QAQ)
  对于二分类任务,输出标记为y{0,1},而线性回归的预测结果h(x)=ωTx+b,很明显是一个连续值,所以需要将其转换为0/1值。
   所以要用到单位阶越函数

y=0,h(x)<0;0.5,h(x)=0;1,h(x)>0;

即,若预测值大于0,就判为正例;若预测值小于0,就判为负例;临界值处,任意判别。
  我们都知道,阶跃函数不可导,不连续,而g1(.)必须是一个可微的函数,所以阶跃函数不能用作g1(.),还需要找一个连续函数代替阶跃函数。
  我们常用对数几率函数(logistic function)来进行替代:
y=11+ez

  画出图形会看到它形似S,所以也是一种sigmoid函数。
  把对数几率函数作为g1(.),代入到广义线性回归的公式中:
y=11+e(ωTx+b)

  做一些化简,可以得到:
ln(y1y)=ωTx+b

  其中,y是正例的可能性,(1-y)是负例的可能性。
  那么,这个ln(y1y)其实就是“对数几率”,等式右边的是什么不用说了吧。可以看出,对数几率回归实质上就是使用线性回归模型(ωTx+b)来逼近这个对数几率(ln(y1y))。
  好的,那么问题来了。如何求解出这个模型中的未知参数ωb呢?
  只考虑二分类的情况下,将y换成后验概率P(y=1|x)来表示,同理1-y可以换成P(y=0|x)
  则有:
{ln(P(y=1|x)P(y=0|x))=ωTx+bP(y=1|x)+P(y=0|x)=1

  解得:
P(y=1|x)=eωTx+b1+eωTx+bP(y=0|x)=11+eωTx+b

  通过极大似然法来估计ωb
L(ω,b)=i=1mln(P(yi|xi;ω,b))

  为表述方便,使用一个新矩阵β来表示ωb,令β={ωb}
  同时也要给x矩阵补上一列1,令x={x1}。因为要对应参数b,补上1,保证结果不变。
  那么,ωTx+b=βTx
  由于是二分类,即只有y=0y=1的情况,那么可以将似然项重写为y=0y=1的情况相加:
p(yi|xi;β)=yi×p(y=1|xi;β)+(1yi)×p(y=0|xi;β)

  ”西瓜书“上是这么写的,当然这样也不难理解。其实为了后面推导方便和容易理解,我们可以换成对数几率的形式来表示,原理依然是一样的,无非是加了个对数:
ln[p(yi|xi;β)]=yi×ln[p(y=1|xi;β)]+(1yi)×ln[p(y=0|xi;β)]

  将上式代入到前面极大似然的公式中:L(β)=mi=1ln(P(yi|xi;β))
  联立前面推出的后验概率的结果:
P(y=1|x)=eωTx+b1+eωTx+bP(y=0|x)=11+eωTx+b

  得到最后的结果:
L(β)=i=1m(yiβTxiln(1+eβTxi))

  由于是极大似然,我们需要求出其极大值,所以有:

β=argmaxmL(β)

  求出使L(β)最大的最优解等价于求出使L(β)最小的解,所以有:
β=argmaxmL(β)=argminmL(β)=i=1m(yiβTxi+ln(1+eβTxi))

  最后可以通过凸优化中的梯度下降法、牛顿法等方法来求出L(β)函数的最优解β

以上仅是个人学习笔记分享用,也留作我自己以后温习。
(>.<)

阅读全文
1 0
原创粉丝点击