理论推导
$$\int_0^1 {x^2} \,{\rm d}x$$
在以前的博客
中推导了单元线性回归和多元线性回归的模型。
将 线性回归模型简写为: y=ωTx+by=ωTx+b;对数线性回归模型可以写成: ln(y)=ωT+bln(y)=ωT+b;本质上仍然是线性回归,只不过拟合的是非线性的ln函数了。
更一般地,考虑单调可微函数 g(.)g(.),令 y=g−1(ωTx+b)y=g−1(ωTx+b);这个模型就叫做 广义线性回归模型。(直接抄书的,实在不擅长背定义QAQ)
对于二分类任务,输出标记为 y∈{0,1}y∈{0,1},而线性回归的预测结果 h(x)=ωTx+bh(x)=ωTx+b,很明显是一个连续值,所以需要将其转换为 0/10/1值。
所以要用到 单位阶越函数:
y=⎧⎩⎨0,h(x)<0;0.5,h(x)=0;1,h(x)>0;y={0,h(x)<0;0.5,h(x)=0;1,h(x)>0;
即,若预测值大于0,就判为正例;若预测值小于0,就判为负例;临界值处,任意判别。
我们都知道,阶跃函数不可导,不连续,而 g−1(.)g−1(.) 必须是一个可微的函数,所以阶跃函数不能用作 g−1(.)g−1(.) ,还需要找一个连续函数代替阶跃函数。
我们常用 对数几率函数 (logistic function)来进行替代:
y=11+e−zy=11+e−z
画出图形会看到它形似S,所以也是一种sigmoid函数。
把对数几率函数作为 g−1(.)g−1(.) ,代入到广义线性回归的公式中:
y=11+e−(ωTx+b)y=11+e−(ωTx+b)
做一些化简,可以得到:
ln(y1−y)=ωTx+bln(y1−y)=ωTx+b
其中,y是正例的可能性,(1-y)是负例的可能性。
那么,这个 ln(y1−y)ln(y1−y) 其实就是“对数几率”,等式右边的是什么不用说了吧。可以看出,对数几率回归实质上就是使用线性回归模型( ωTx+bωTx+b )来逼近这个对数几率( ln(y1−y)ln(y1−y) )。
好的,那么问题来了。如何求解出这个模型中的未知参数 ωω 和 bb 呢?
只考虑二分类的情况下,将y换成后验概率 P(y=1|x)P(y=1|x) 来表示,同理1-y可以换成 P(y=0|x)P(y=0|x) 。
则有:
{ln(P(y=1|x)P(y=0|x))=ωTx+bP(y=1|x)+P(y=0|x)=1{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{P(y=1|x)=eωTx+b1+eωTx+bP(y=0|x)=11+eωTx+b
通过极大似然法来估计 ωω 和 bb :
L(ω,b)=∑i=1mln(P(yi|xi;ω,b))L(ω,b)=∑i=1mln(P(yi|xi;ω,b))
为表述方便,使用一个新矩阵 ββ 来表示 ωω 和 bb ,令 β={ωb}β={ωb} 。
同时也要给x矩阵补上一列1,令 x′={x1}x′={x1} 。因为要对应参数b,补上1,保证结果不变。
那么, ωTx+b=βTx′ωTx+b=βTx′ 。
由于是二分类,即只有 y=0y=0 和 y=1y=1 的情况,那么可以将似然项重写为 y=0y=0 和 y=1y=1 的情况相加:
p(yi|xi;β)=yi×p(y=1|x′i;β)+(1−yi)×p(y=0|x′i;β)p(yi|xi;β)=yi×p(y=1|xi′;β)+(1−yi)×p(y=0|xi′;β)
”西瓜书“上是这么写的,当然这样也不难理解。其实为了后面推导方便和容易理解,我们可以换成对数几率的形式来表示,原理依然是一样的,无非是加了个对数:
ln[p(yi|xi;β)]=yi×ln[p(y=1|x′i;β)]+(1−yi)×ln[p(y=0|x′i;β)]ln[p(yi|xi;β)]=yi×ln[p(y=1|xi′;β)]+(1−yi)×ln[p(y=0|xi′;β)]
将上式代入到前面极大似然的公式中: L(β)=∑mi=1ln(P(yi|xi;β))L(β)=∑i=1mln(P(yi|xi;β))
联立前面推出的后验概率的结果:
⎧⎩⎨P(y=1|x)=eωTx+b1+eωTx+bP(y=0|x)=11+eωTx+b{P(y=1|x)=eωTx+b1+eωTx+bP(y=0|x)=11+eωTx+b
得到最后的结果:
L(β)=∑i=1m(yiβTx′i−ln(1+eβTx′i))L(β)=∑i=1m(yiβTxi′−ln(1+eβTxi′))
由于是极大似然,我们需要求出其极大值,所以有:
β∗=argmaxmL(β)β∗=argmaxmL(β)
求出使 L(β)L(β) 最大的最优解等价于求出使 −L(β)−L(β) 最小的解,所以有:
β∗=argmaxmL(β)=argminmL(β)=∑i=1m(−yiβTx′i+ln(1+eβTx′i))β∗=argmaxmL(β)=argminmL(β)=∑i=1m(−yiβTxi′+ln(1+eβTxi′))
最后可以通过凸优化中的梯度下降法、牛顿法等方法来求出 L(β)L(β) 函数的最优解 β∗β∗ 。