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

时间:2022-04-04 20:02:22

理论推导

  在以前的博客(机器学习入门学习笔记:(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=0 y=1 的情况,那么可以将似然项重写为 y=0 y=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(β) 函数的最优解 β

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