1.线性回归(linear regression)
可以说是机器学习中最简单的模型了,用吴恩达机器学习课中的例子来说明。
这是一个关于房屋售价的问题,数据如下:
面积(
m2
) 价格(万元)
123 250
150 320
87 160
102 220
…. ….
这是训练数据,我们需要学习一个模型,当来一个新的数据(面积)时,可以预测出对应的房屋价格(如上图右边中的绿线)。其中最简单的模型就是线性模型(当变量(特征)是一维的时候是一条直线,是高维的时候是一个超平面)。
我们通常用
X=(x1,x2...xn)T∈Rn×p
表示数据矩阵,其中
xi∈Rp
表示一个p维的样本;
y=(y1,y2...yn)T∈Rn
表示数据的标签,这里只考虑每个样本只属于一类的情况。
线性回归模型是对于一个样本
xi
,其输出是其特征的线性组合:
f(xi)=∑pm=1wmxim+w0=wTxi
其中
w0
称为截距,或者bias。
线性回归的目标是用预测结果尽可能的拟合真实label,最常见的是使用平方损失函数作为loss function。
J(w)=1n∑ni=1(yi−f(xi))2=1n||y−Xw||2
下图可以直观的看出线性回归的优化目标–图中线段距离(平方)的平均值,也是最小化到分割平面的距离之和。
如何求解w?可以使用最小二乘法,梯度下降法。
利用最小二乘法可以解出
w∗=(XTX)−1XTy
但这也会有很多问题,其中一个主要问题是 XTX 不可逆时,目标函数最小化求导为零时方程有无穷个解,没有办法求出最优解,当p>n时一定会出现这种情况,这个时候就需要对w做一些限制,使得解空间变小,这就是regularization(正则化)。
正则化的目的:防止过拟合
正则化的本质:约束要优化的参数
ridge regression (岭回归)
在线性回归的基础上加上
l2−norm
的约束,loss function是:
JR(w)=12||y−Xw||2+λ2||w||2
有解析解:
w∗R=(XTX+λI)−1XTy
λ>0
是一个参数。加上了正则项后,对w的模做约束,为让loss function 最小,w的值会比较小,这很大程度上缓解了overfitting的问题;再然后就是上面求逆部分肯定可以解。
在实际应用中,通过调价
λ
,可以得到不同的回归模型。
Lasso回归(稀疏约束)
在线性回归的基础上加上
l1−norm
的约束
在实际应用中,数据的维度中是存在噪声和冗余的,稀疏的解可以找到有用的维度并且减少冗余,提高回归预测的准确性和鲁棒性(减少了overfitting)。在压缩感知、稀疏编码等非常多的机器学习模型中到用到了稀疏约束。
稀疏约束最简单的形式是约束0范式,w的0范式是求w中非零元素的个数,但0范式是不连续的并且非凸,这是很不好求解的。1范式也可以达到稀疏的效果,是0范式的最优凸近似,并且1范式容易求解还是凸的,所以一般情况下稀疏约束都是用的1范式。
Lasso的目标函数:
JL(w)=12||y−Xw||2+λ∑i|wi|
线性回归的优点:简单、易用
线性回归的缺点:拟合能力有限(只是输入到输出的线性变换)、目标值可以是(-∞,+∞),有的时候就不那么方便了。
2.逻辑回归(logistic regression)
逻辑回归可以说是最为常用的机器学习算法之一,最经典的场景就是计算广告中用于CTR预估,是很多广告系统的核心算法。
它是用来做分类的,经典的LR用于二分类。
假设函数:
hθ(x)=g(θTx)=11+e−θTx
g(z)=11+e−z
这里
hθ(x)
表示样本x为第一类(对于的y=1)的概率,所以有:
P(y=1|x;θ)=hθ(x)
P(y=0|x;θ)=1−hθ(x)
将两者结合起来:
P(y|x;θ)=hθ(x)y(1−hθ(x))(1−y)
令 L(θ)=∏mi=1P(y(i)|x(i);θ)
对其取对数:
我们要求的是: maxθl(θ)
采用梯度上升的方法
∂l(θ)∂θj=∑mi=1(y(i)hθ(x(i))−1−y(i)1−hθ(x(i)))∂hθ(x(i))∂θj
=∑mi=1(y(i)g(θTx(i))−1−y(i)1−g(θTx(i)))g(θTx(i))(1−g(θTx(i)))x(i)j
=∑mi=1(y(i)−g(θTx(i)))x(i)j
θ:=θ+α∑mi=1(y(i)−g(θTx(i)))x(i)j
3.Softmax Regression
多分类问题,LR是Softmax的一个特例。
如果有多类,可以采用多个二分类,也可以采用softmax。该如何选择?一般来说可以根据类别是否互斥来决定:如果互相之间有重合(或者本身在语义上并不相关,比如一张图片“是否是风景照片”和“是否有人“),那么就可以用k个LR;如何类别之间是互斥的,就可以采用softmax。
当有k个类别的时候,样本
x(i)
属于第j类的概率为:
p(y(i)=j|x(i);w)=ewTjx(i)∑kl=1ewTlx(i)
类似逻辑回归,其似然函数为:
∏Ni=1∏kj=1(ewTjx(i)∑kl=1ewTlx(i))1{y(i)=1}
目标函数是:
minwJ(w)=−1N∑Ni=1∑kj=1[1{y(i)=1}logewTjx(i)∑kl=1ewTlx(i)]
求出目标函数对于参数的梯度,对于每一个输出目标j,其对于参数
wj
的梯度为:
∇wjL(w)=∂J(w)∂wj=−1N∑Ni=1xi(1{y(i)=j}−p(y(i)=j|x(i);w))
对于每一个
wj
,j=1,2,…,k,采用更新:
wj=wj−α⋅∇wjL(w)
也可以在目标函数后面加上正则项。
参考资料:
[1]http://blog.csdn.net/xbinworld/article/details/43919445
[2]http://blog.csdn.net/wsj998689aa/article/details/39547771
[3]http://blog.csdn.net/zouxy09/article/details/24971995