开发者学堂课程【机器学习算法 :机器学习方法三要素-4】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/535/detail/7171
机器学习方法三要素-4
内容介绍
一、正则化项例子
二、正则化项
三、范数
一、正则化项例子
例如:再看一个例子:已知某数据集有6个特征值,在特征值和结果之间建立联系,去预测未知数据集上的结果。
选取绝对值损失西数 L(Y,f(x)=|Y-f(x)| 惩罚西数项选择
计算结构风险和经验风险:
⊙指参数的个数,复杂程度。
经验风险很好计算。经验风险就是每一个输入的损失函数的累加值。一元4.68,二元1.05,三元5.12,四元2.62,五元2.1,六元2.15.实际上二元是最好的。接着我们算srm,就会有一个惩罚项(上面的公式)。一元的 srm 是1.97,二元是2.04,三元是5.12,四元是31.09,五元是35.27,六元是276.71. 用 srm 作为最终选择模型的标准。我们就会选择一元。
用这些不同的模型来做预测时,一元的风险为1.15,二元3.41,三元4.75,四元134.29,五元419.21,六元782.35. 实际上一元的最合适。
在只知道训练集,不知道预测集时,如果根据经验风险判断,最好是二元。
如果加了惩罚项,看一下结构风险,一元的最好。但是如果按照经验风险,最好的是二元,二元最后的预测集是3.41. 并不是最好的。所以按照经验风险选择的,得到的模型在预测结论并不好。
如果根据结构风险选择,表现最好的是一元的,事实上在预测上一元的表现也是最好的。
为什么经验风险出来后,只看经验风险不看结构风险?
因为到现在为止,有了预测集就认为已经拿到数据全集,有了数据全集,经验风险就等于期望风险。事实上就只有这么多,不会再有新的记录,就可以根据经验风险来判断。
二、正则化项
正则化项(Regularizer):即惩函数,该项对模型向量进行惩罚,从而避免过拟合问题。正
则化方法会自动削弱不重要的特征变量,自动从许多的特征变量中”提取“重要的特征变量,减小特征变量的数量级。
之前的例子,选取损失函数为绝对值。入取值为 1,J 为各参数的平方和计算一下结构风险:
根据刚才的例子,我们来计算一下:
一次模型: y= 1.0429x +0.2571
六次模型:y=-0.0289x6 + 0.73x5 - 7.1972x4 + 34.933x3 - 86.574x2 + 103.14x - 43.8
计算它们的惩罚项。
一次模型:=1/7*4.68 + 1*1.0429 ≈ 1.7114(4.68是经验风险)
六次模型:=1/7*2.15+1(6个参数)*(|-0.0289|+|0732|+|-7.1972|+|34.933| + | - 86.574| + |103.14|) ≈ 232.91。(整体看上去6次模型的惩罚项很大)
综合起来看一次模型的结构风险较小。一次模型会避过拟合现象。
三、范数
规则化函数 λJ(f) 有多种选择,一般地,它是模型复杂度的单调递增函数,模型越复杂,该函数的值就越大,惩罚力度相应的越大。常用模型的参数向量的范数。常用的有零范数、一范数、二范数、迹范数、Frobenius 范数和核范数等等。
范数( Norm):是数学中的一种基本概念,它定义在赋泛线性空间中 ,满足(1)非负性:②齐次性:③三角不等式等条件的量。常常用来度量向量的长度或者大小。
下面的 L0 常熟不太常见
L1 范数就是绝对值
LO 范数:非0的元素的个数。使用 LO 范数,期望参数大部分为0,即让参数是稀疏的。
11 范数:各个元素的绝对值之和,使用 L1 范数,会使参数稀疏(有些项直接会消失)。L1也被称为稀疏规则算子。
L2 范数:各元素的平方和求平方根,使得每个元素都很小,但不会等于0,而是接近0。
比如说有五项,通常的五项会保留,但是其中有一些项会被调的很小。
例如:有五项,使用 L0 范数来作为惩罚项,他可能将其中四项都作为0了;
如果使用 L1 范数,可能部分会为0;
如果使用 L2 范数,则五个可能在。但是可能几个会非常小,接近于0,不是等于0.
L2 就相当于两个圆相交的点,就是我们希望的那个点。在这个点上,实际横坐标和纵坐标都不为0.
但是对于绝对值来讲,图二。与风险函数相接的时候,发生在坐标轴上。X=0.
作为 L1 范数时,回归项一般。为 lasso 回归
L2 为 ridge 回归。
大家不必纠结细节,大家只需了解怎么判断一个模型的好坏,要有一些规则,根据期望风险值判断模型是好是坏。但是期望风险值除了训练数值之外,预测数据也要拿到。现实中基本不会发生。所以期望风险只是一个理想状态,能拿到一个全局最优值,是拿不到的。这时可以使用经验风险,经验风险在其中的训练值上效果最好,拟合效果最好。但是经验风险有他的问题。就是容易产生过拟合。为了避免,引入结构风险,在经验风险中增加一个惩罚项。
首先结构风险就等于经验风险加上惩罚项。经验风险保证的是训练集上拟合效果不错。
惩罚项是拟合效果不错但是不要基于太复杂的模型。
结构风险用来做选择模型的时候考虑两个因素,第一训练集不错,第二模型不能太复杂。
奥卡姆剃刀原则:得到的结果看上去很好但是前置条件越多,结论越不可靠。这个模型在训练集上表现的很重要。但是模型不能太过复杂。不要依赖过多的项。否则模型是不可靠的。
后续我们还会讲惩罚项。