理论推导
在以前的博客(机器学习入门学习笔记:(2.1)线性回归理论推导 )中推导了单元线性回归和多元线性回归的模型。
将线性回归模型简写为:
y=ωTx+b
;
对数线性回归模型可以写成:
ln(y)=ωT+b
;本质上仍然是线性回归,只不过拟合的是非线性的ln函数了。
更一般地,考虑单调可微函数
g(.)
,令
y=g−1(ω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,就判为负例;临界值处,任意判别。
我们都知道,阶跃函数不可导,不连续,而
g−1(.)
必须是一个可微的函数,所以阶跃函数不能用作
g−1(.)
,还需要找一个连续函数代替阶跃函数。
我们常用
对数几率函数(logistic function)来进行替代:
y=11+e−z
画出图形会看到它形似S,所以也是一种sigmoid函数。
把对数几率函数作为
g−1(.)
,代入到广义线性回归的公式中:
y=11+e−(ωTx+b)
做一些化简,可以得到:
ln(y1−y)=ωTx+b
其中,y是正例的可能性,(1-y)是负例的可能性。
那么,这个
ln(y1−y)
其实就是“对数几率”,等式右边的是什么不用说了吧。可以看出,对数几率回归实质上就是使用线性回归模型(
ωTx+b
)来逼近这个对数几率(
ln(y1−y)
)。
好的,那么问题来了。如何求解出这个模型中的未知参数
ω
和
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|x′i;β)+(1−yi)×p(y=0|x′i;β)
”西瓜书“上是这么写的,当然这样也不难理解。其实为了后面推导方便和容易理解,我们可以换成对数几率的形式来表示,原理依然是一样的,无非是加了个对数:
ln[p(yi|xi;β)]=yi×ln[p(y=1|x′i;β)]+(1−yi)×ln[p(y=0|x′i;β)]
将上式代入到前面极大似然的公式中:
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βTx′i−ln(1+eβTx′i))
由于是极大似然,我们需要求出其极大值,所以有:
β∗=argmaxmL(β)
求出使
L(β)
最大的最优解等价于求出使
−L(β)
最小的解,所以有:
β∗=argmaxmL(β)=argminmL(β)=∑i=1m(−yiβTx′i+ln(1+eβTx′i))
最后可以通过凸优化中的梯度下降法、牛顿法等方法来求出
L(β)
函数的最优解
β∗
。
以上仅是个人学习笔记分享用,也留作我自己以后温习。
(>.<)