开发者学堂课程【机器学习算法 :机器学习方法三要素-3】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/535/detail/7170
机器学习方法三要素-3
内容介绍
一、经验风险( Empirical Risk)
二、风险函数( Risk Function)
三、经验风险 vs 期望风险
四、经验风险的问题
五、那么经验风险低预测模型就一定会好吗?
六、结构风险
七、结构风险 vs 经验风险
一、经验风险( Empirical Risk)
损失函数度量了单个样本的预测结果,要想衡量整个训练集的预
测值与真实值的差异,将整个训练集所有记录均进行一次预测,求取损失函数,将所有值累加,即为经验风险。经验风险越小说明模型 f(x)对训练集的拟合程度越好。
公式为:
二、风险函数( Risk Function)
又称期望损失、期望风险。所有数据集(包括训练集和预测集,遵循联合分布 P(XY))的损失西数的期望值。
公式为:
三、经验风险 vs 期望风险
1、期望风险是模型对全局(所有数据集)的效果,即将发生:经验风险是模型对局部(训练集)的效果。
2、 期望风险往往无法计算,即联合分布 P(X,Y)通常是未知的;经验风险可以计算
3、当训练集足够大时,经验风险可以替代期望风险,即局部最优代替全局最优(实际上如果可以计算期望风险,期望风险对我们做判断是最佳的)经验风险是针对已有的样本计算,但是已有的样本是局部数据,得到的只是局部最优。
四、经验风险的问题
在样本较小时,仅关注经验风险,很容易导致过拟合。
过拟合:对当前的样本数据特别好,但是如果遇到新的数据集,预测效果很差,这就叫做过拟合。
一次模型:y = 1.0429x + 0.2571
二次模型:y=-0.0524x2 + 1.4619x - 0.3714
四次横型:y = 0.0886x4 - 1.3904x3 + 7.275x2 - 13.303x + 8.6571
六次横型:y=-0.0289x6 + 0.73x5 - 7.1972x4 + 34.933x3 - 86.574x2 + 103.14x - 43.8
例如:我们有两个数据,一个x一个y,把这些点在图上画出来,可以看到大概分布状况。实际上对数据处理有经验,会知道通过曲线去拟合。
二次模型:看上去比经验风险更小。
四次模型:与每个点都比较接近。
六次模型:完美拟合每一个点。
按照这个逻辑来讲,经验风险最低的是六次模型。
五、那么经验风险低预测模型就一定会好吗?
在样本较小时,仅关注经验风险,很容易导致过拟合。
下图为所有的数据集。刚刚我们拿到的是已有的训练集。实际上我们还有预测集。需要把十条数据全部加起来,才可以预测数据。
一次函数是4.68,二次是4.79,四次是2.62,六次是2.15。按这个道理来讲,六次在样本风险表现出来的最小。似乎我们应该选择这个模型。
我们可以看到一次函数在预测值时是1.15,二次函数是3.68,四次函数是134.29,六次函数是782.35。综合起来看,一次函数在整个数据集来看,数据风险最低。六次函数的期望风险最高。这就表示产生了严重的过拟合。
大家可以看到,数据全集上面是训练集,下面是预测集,在没达到数据全集的情况下算的是经验风险,基于7条记录做的经验风险。实际上下面的预测集合起来叫做数据全集。在数据全集算出来的叫做死亡风险。实际上下面三条记录没有产生的时候,我们是得不到全局的期望风险的。所以我们得到的只是局部的自由解。这个时候非常容易导致过拟合。
六、结构风险
结构风险 ( Structural Risk):在经验风险的基础上,增加一个正则化项(Reguarizer) 或者叫做惩罚项,公式:
其中λ为一个大于0的系数,J(f)表示模型f(x)的复杂度。
不管是结构风险还是经验风险,值越大说明模型匹配的拟合程度越差。值越小表示拟合程度越好。在这个基础上加了一个正数,实际上风险值就会变大,不同的模型,复杂度不一样。惩罚力度就不一样。
七、结构风险 vs 经验风险
1、经验风险越小,模型决策函数越复杂,其包含的参数越多(回想一次函数和六次函数的例子)
2、当经验风险函数小到一定程度就出现了过拟合现象
3、防止过拟合现象的方式,就要降低决策函数的复杂度,让惩罚项j(f最小化
4、需要同时经验风险函数和模型决策函数的复杂度都达到最小化(首先来说这个模型对数据拟合还不错同时模型不可以太复杂)
5、把两个式子融合成一个式子得到结构风险函数然后对这个结构风险函数进行最小化。