[读书笔记-西瓜书] 线性模型、Logistic回归

这是阅读周志华教授的《机器学习》中关于Logistic回归部分的笔记(在模识老师的安利下,最终还是买了西瓜书)。

Logistic回归音译为“逻辑回归”实在是太蠢了。

Logistic回归是西瓜书第三章“线性模型”中的内容,首先总结一下在logistic回归之前的知识点。

所谓线性回归就是定义一个线性函数f(x)=wTx+b,经过在一个特定数据集上学习后获得参数wb的过程。通常需要搭配优化算法使用,例如最小二乘法、梯度下降法、牛顿法、拟牛顿法[1,2]等,我将它们的特点总结如下:

最小二乘法:希望找到一条n维空间上的直线,使得所有数据点到这条线上的欧几里德距离最短(均方差误差最小),因为均方误差损失函数是凸的,所以最小二乘法直接对该损失函数关于wb进行求导。

梯度下降法:这是一种迭代求解最优的算法,方法就是将参数沿着梯度负方向更新。这种算法经常陷入局部最优,而且速度未必快。有很多延伸的优化,比如随机梯度下降、带惯性的梯度下降等。

牛顿法:对拟合目标函数泰勒展开后求导后迭代,需要计算任意两个变量的二阶偏导的逆(海森矩阵的逆)所以计算复杂度高,但是收敛快。过程一图以蔽之:

img

拟牛顿法:把海森矩阵用个近似矩阵来代替,为了减少计算的复杂度,同时这个近似矩阵保证是可逆的(感谢HF同学的指正QAQ)。

但是通常的拟合任务并非是线性的,数据可能是符合某种非线性函数的变化(例如指数),因此有了对数线性回归(log-linear regression)。由于自变量的变化还是wTx+b,因此还属于线性回归模型。更一般的形式如下:
g(y)=wTx+b


y=g1(wTx+b)

此处g()是一个非线性函数,这个函数需要“连续且充分光滑”。

分类任务和回归任务最大的区别是,分类需要一个hard-label,而回归通常是一个实数值的soft-label(hard-label和soft-label是我自己起的)。想用回归的方法进行分类,则需要有一个soft->hard的映射函数。

可以手动设阈值(阶跃,就是分段函数),但是不满足作为g()需要的充分条件。于是有人构造了更加光滑的logistic function(对数几率函数):
y=11+ez


这是一种sigmoid函数:形似S的函数。我们想表示成g(y)=wTx+b的形式,可以推:
y=11+ez

y+yez=1

1yy=ez

ln1yy=z

lny1y=z

其中z=wTx+by1y分别可看作是正反例的可能性(logits),二者的比值取对数称为“对数几率 ”。通常写作:
lnp(y=1|x)p(y=0|x)=z


有:
p(y=1|x)=ez1+ez

由于p(y=0|x)=1p(y=1|x),则:
p(y=0|x)=11+ez

使用极大似然估计wb,构造损失函数l(w,b)=mi=1lnp(yi|xi;w,b),最大化该函数,整理一下就能得到loss函数的形式,之后就能用上述的最优化算法求它的最优解了。

Reference

[1]. https://www.cnblogs.com/shixiangwan/p/7532830.html

[2]. https://www.cnblogs.com/xiaohuahua108/p/6011105.html


Code 401: 未经授权的操作,请检查你的AppId和AppKey.
Powered By Valine
v1.5.2