第二章 机器学习概述(续)
2.3 机器学习类型
回归问题,分类问题(人脸识别问题,垃圾邮件检测等等),图像聚类(无监督学习),强化学习(AlphaGo)通过与环境进行交互学习。
下面是集中常见的机器学习类型:
监督学习的典型问题是回归和分类问题,
无监督学习的典例问题是聚类,降维,密度估计
2.4 机器学习要素
①数据:可以通过给出的数据分出不同的机器学习类型,数据非常关键,从数据中抽取特征,这是特征抽取问题,或者我们自动抽取特征,就是一个表示学习。
②模型
③学习准则
④优化算法
但是我们常说的是后面三个要素
2.4.1 模型:(得到 x 到 y的映射关系)
以回归为例:①简单的线性模型:
我们人工定义一个模型函数为:,
表示要学习的参数,是参数的总称,具体的可以有权重系数w,和偏置 b。
②非线性模型:
此时,我们定义一个函数为:,只需在原来的线性模型进行修改,把原来线性里面的x套一个函数
,我们称这个函数为基函数,通常是非线性的,即把x做一次非线性变换。
如果是一个可学习的非线性基函数,那么这个模型就相当于是神经网络。
2.4.2 学习准则:
一个好的模型应该在所有取值上都与真实映射函数一致
模型的预测与真实函数一致,是如何衡量的——使用损失函数
①损失函数:
是一个非负实数函数,用来量化模型预测和真实标签之间的差异。
以回归问题为例:
平方损失函数:,假设f(x..)这部分是模型预测,y是真实标签。
当模型预测和真实值之间的差值越小,损失函数的结果就越小,表示损失越小。我们希望找到一个
参数,使得损失最小。该损失函数是定义在一个具体的x 和 y上面的。
②期望风险:
模型的学习准则定义为(理想):损失函数在真实的数据分布中的期望最小化。找到参数,使得期望风险最小化。但是由于真实数据分布的不确定性,使得期望风险不能直接计算。
大数定律(Law of Large Numbers, LLN)是概率论的核心定理之一,它描述了在重复独立试验中,随机事件的频率会随着试验次数的增加而稳定趋近于其理论概率。通俗地说,当实验次数足够多时,“偶然性”会被“规律性”覆盖。
所以既然真实数据分布不知道,就可以采集样本,这些样本就构成一个训练集,以此得到真实学习准则(损失函数)。
期望风险可以近似为:(通过大数定律近似)
①训练数据:
②经验风险:。当N趋向于无穷大时,经验风险就逼近与期望风险。
那么,我们的学习准则就变为了经验风险最小化:
①寻找一个参数,使得经验风险最小化。
.这个问题为优化问题。
所以当风险函数确定后,机器学习问题转化为一个最优化问题。
2.4.3 最优化问题
①方法1:使用凸优化问题中的一阶导为0;
②方法2:大众化方法。使用梯度下降法。
,我们也称搜索步长为超参数,指的是需要人为选择的,而不是学习得来的。
a) 随机梯度下降法:
在每次迭代时只采集一个样本,需要进行更新
当经过足够的迭代次数时,随机梯度下降也可以收敛到局部最优解。但是因为每次都是采集一个样本,所以无法充分利用计算机的并行计算能力,折中方法就是 小批量随机梯度下降法。
b) 小批量随机梯度下降法:
随机选取一小部分训练样本去计算梯度并更新参数;既可以兼顾随机梯度下降法的优点,又可以提高训练效率。
2.5 泛化与正则化
欠拟合:按照线性模型来讲,拟合出的线时一条直线,与真实情况的差异很大。模型能力不足,使得错误率很高,这种情况为欠拟合。
过拟合:使用更加复杂的模型去拟合,虽然在训练集上的错误率很低,几乎为0,但是拟合出的线不是我们所期望的,在未知数据上的错误率很高。往往是由于训练数据少,或者模型复杂度高。
泛化误差:
是期望风险和经验风险之间的差。
当期望风险很大,但是经验风险底时,两者差值大,出现过拟合。
如何减少泛化误差?
优化——经验风险最小,会找到很复杂的模型,但是会造成过拟合;
正则化——降低模型复杂度,减少泛化误差。
正则化:
所有损害优化的方法都是正则化。
提前停止:
使用一个验证集,测试每一次迭代的参数在验证集上是否时最优。
如果在验证集上的错误率不再下降,就停止迭代。
2.6 线性回归
回归定义:
1)模型
在上面的模型中,参数b是可以消掉的。引入两个新变量去解释。
增广权重向量:
增广特征向量:
变化之后,两者都为D+1维向量,则原来的模型就变为:
.就可以直接写成不含b的模型。
2)回归问题在训练集D上的经验风险:
损失函数用的是平方损失函数。
那么经验风险有了之后,就开始令经验风险最小化。
经验风险最小化:
,解出其中的w即可。
矩阵微积分:
标量关于向量的偏导数:一个标量关于向量的偏导数还是向量。都是列向量
向量关于向量的偏导数:一个向量关于另一个向量的偏导数是一个矩阵
向量函数及其导数:
结构风险:后面的新加项就是正则化项,用来约束w,前面的系数越大对w的约束越大,前面系数是超参数
令其最小化:
岭回归。
下面引自知乎的文章,更近一步的理解线性回归。
回归的目的:通过找到的线来预测未来。
回归之所以能预测,是因为它的底层逻辑是:通过历史数据,摸透了“套路”,然后通过这个套路来预测未来的结果。
注意:在回归中,我们要预测的target是连续型数据(降雨量,房价,长度,密度这些)
2.7 多项式回归
跟上面的线性回归中的非线性模型一样。