1. least square
1.1 随机梯度下降(stochastic gradient descent)
我们前面所学的线性模型,最终就是求解参数w,即,这里函数L是某个损失函数。
我们可以通过之前学习的方法直接求解该参数,但条件就是要求Gram矩阵可逆。当这个条件不成立时,我们就需要寻找其他方法了估计参数w。
我们之前学习的MLE最大似然估计是一个求解概率模型参数的方法,即选择使得训练数据概率最大的参数。这里通常假设训练样本之间是独立同分布的。对一个样本集D, 我们将特征X和标签Y看做随机变量,其似然函数为 。通常这里我们会取对数得到
,这样更方便计算。此时MLE就求使得似然函数最大的参数w,但为了同我们机器学习中的损失函数最小相对应,我们会在前面加上一个负号,则MLE变为:
如何求解上面这个的式子,我们可以用导数直接计算w。这一过程,我们可以泛化到对任意损失函数最小化的问题。我们也可以利用梯度下降来迭代的求解这一问题。
所谓梯度是一个向量(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向增长最快,变化率最大。而我们要求的是损失函数的最小值(通常是局部最小值),故我们要沿着梯度的反方向变化,即,
被称为学习率。
常见梯度下降算法有这么几种:
- 批量梯度下降。每次更新梯度时都使用全部样本来计算梯度,这样计算的结果只跟起始点、迭代次数和学习率相关,对于凸问题,每次都能找到最优解。这种也被叫做duck-feeding learning。
- 随机梯度下降。在每次更新时用1个样本,随机也就是说我们用样本中的一个例子来近似所有的样本,来调整w,因而随机梯度下降是会带来一定的问题,因为计算得到的并不是准确的一个梯度,对于凸问题,虽然不是每次迭代得到的损失函数都向着全局最优方向, 但是大的整体的方向是全局最优解,最终的结果往往是在全局最优解附近。这样的方法更快,虽然不是全局最优,但很多时候是我们可以接受的
用于我们的线性模型就是这里e叫做误差。
mini-batch 梯度下降。对上面两种方法进行折中,每次更新使用一部分样本计算梯度。这是目前深度学习中最常用的方法。
1.2 概率图模型
概率图模型是使用图结构来表示联合概率分布。图中每个节点代表一个随机变量,每天边代表随机变量间的直接依赖关系。
我们之前所学的模型都可以用下图表示,这里x和y都是随机变量的观测值,而参数w是未知的。如果x直接存在管线的话,那就是序列模型比如隐马尔可夫模型HMM。
若y是连续值,则我们一般当作高斯分布来处理
-
1.3 期望与方差
在利用概率模型参数估计方法求得参数
后,就要评估一下参数,我们可以看看它的期望与方差。
这里假设,这里的w是真实参数。
期望
可以看出求得的估计量是真实值w的无偏估计。
-
1.4 偏差与方差(bias / variance)
偏差:描述的是预测值(估计值)的期望与真实值之间的差距。偏差越大,越偏离真实数据
- 方差:描述的是预测值的变化范围,离散程度,也就是离其期望值的距离。方差越大,数据的分布越分散
一般我们将标签y与样本X直接关系定义为,等号右边的第二项是随机误差服从正太分布,我们希望的是学习一个函数f,即其参数w。
我们求一下习得的参数和真实值w之间期望可以发现
第一项称为方差,第二项叫做偏差
即模型误差可以分解为方差、偏差和随机误差的方差。我们希望能够获得尽可能小的模型误差,也就是要方差和变差都小最好。
- 模型越复杂,偏差越低,方差越高
- 模型越简单,偏差越高,方差越低
2.曲线拟合
2.1模型选择
由于直线拟合的能力有限,对很多数据并不适用,所以引入曲线拟合。
我们知道利用泰勒展开可以在一点处将任意函数用多项式的组合表示出来。同样对于复杂的数据,我们的可以不仅考虑数据的一次项,可以考虑引入平方甚至次方等高次项。例如将原本只有一个特征x变为。
这样就增加了模型的拟合能力,模型可以写作,这个模型一样可以使用最小二乘法或梯度下降等进行求解。这里我们主要考虑的就是选择何种复杂度的模型。
2.2 过拟合
极端情况下,可以将各数据点用一条曲线连接起来,得到一个在训练集上0误差的模型。但这种模型通常对未来的数据预测能力比较差,也就是模型泛化能力不足,这种情况叫做过拟合。
在我们之前学习中,我们最常见的损失函数为这也叫做经验风险函数,训练过程就叫经验风险最小化。
当样本容量足够大时,经验风险最小化能够保证很好的学习效果,在现实中被广泛采用,如极大似然估计。然而通常情况下,我们无法获取无限的训练样本,并且训练样本往往是真实数据的一个很小的子集或者包含一定的噪声数据,不能很好地反映全部数据的真实分布。经验风险最小化原则很容易导致模型在训练集上错误率很低,但是在未知数据上错误率很高,即过拟合。
3.如何减少过拟合
我们先看一下过拟合的特点。通常在数据样本不变的情况下,模型的复杂度越大,越容易过拟合,也就是我们引入了更多的高次项,此时参数的数量也变多了。那么我们可以视图让模型学习结果中一些参数等于0或者接近0,来减少过拟合,代价是增大了模型在训练集上的误差。
结构风险最小化(Structural Risk Minimization, SRM)准则是为了防止过拟合而提出来的策略。过拟合问题往往是由于训练数据少和噪声以及模型能力强等原因造成的。为了解决过拟合问题,一般在经验风险最小化的基础上再引入参数的正则化(regularization),来限制模型能力,使其不要过度地最小化经验风险。
结构风险=经验风险+正则化项
这里正则化项我们通常选择参数的一范数或二范数,改变后的损失函数变为
为什们正则化能减少过拟合?

我们以带有两个参数w0,w1的模型为例,模型是线性回归,有两个特征,要优化的参数分别是w1和w2,正则化项是一范数。等高线的一圈代表一个目标函数值,圆心就是样本观测值(假设一个样本),半径就是误差值,受限条件就是菱形,二者相交处,才是最优参数。可见最优参数只可能在坐标轴上,所以就会出现0权重参数,使得模型稀疏。而如果没有约束,则模型训练会倾向于无限逼近圆心,就会产生过拟合。
