机器学习中期望风险、经验风险与结构风险之间的关系

机器学习中期望风险、经验风险与结构风险之间的关系

基础

损失函数刚好是期望风险、经验风险和结构风险的基础。

损失函数是针对单个具体的样本而言的。表示的是模型预测的值与样本真实值之间的差距。比如对于某个样本,其真实的值为Yi,而我们的模型选择决策函数为f,那么通过模型预测的值为f(Xi);损失函数就是用来表示Yi与f(Xi)之间的差距的,我们用函数L(f(Xi),Yi)来衡量。我们希望的是这个L函数最小化。当然,最理想的情况下,模型决策函数预测值f(Xi)刚好等于该样本的真值Yi。

常见的损失函数通常有以下几种:

选取上述的任意一个损失函数可以衡量其预测值与真实值的差异度。

问题1:为什么要引入损失函数,直接使用误差平方和不就好了么?而且其中有一个平方损失函数用的就是误差平方的概念?

是否是因为损失函数是对于具体的某个样本点进行描述的。(待续)

通过损失函数,我们只能知道模型决策函数F(X)对于单个样本点的预测能力,损失函数越小,说明模型对于该样本预测越准确。

问题2:如果想知道模型f(X)对训练样本中所有的样本的预测能力应该怎么办?

显然,如果要知道所有样本的预测能力,就将所有的样本点都求一次损失函数然后进行累加。——公式1

通过两个问题的导入,就引出了经验风险的概念。公式1的引出就是经验风险概念的体现,所谓的经验风险最小化便是让这个公式1最小化,式中累加和的上标N表示的是训练样例中样本的数目。

经验风险

经验风险是对训练集中的所有样本点损失函数的平均最小化。经验风险越小说明模型f(X)对训练集的拟合程度越好。

问题3:经验风险最小化是指让公式1最小化,描述经验风险使用的是损失函数的累加值,但是在处理一些未知样本量的数据时,因为不知道样本量的大小,因此N的值未知,从而无法使用经验风险进行描述,那么这时应该使用什么风险来描述?

问题三的答案从概率论的角度给出,衡量模型对所有的样本(包含未知的样本和已知的训练样本)的预测能力,从概率论的知识中我们可以用到期望的概念。

期望(或均值):是试验中每次可能结果的概率乘以其结果的总和。期望值是该变量输出值的平均数,期望值并不一定包含于变量的输出集合里。且大数定律规定,随着重复次数接近无穷大,数值的算术平均值几乎肯定地收敛于期望值。

接下来便引入了期望风险的概念,假设X和Y服从联合P(X,Y)。那么期望风险就可以表示为:公式2

期望风险

上式(公式2)表示的便是期望风险的概念。期望风险表示的是一种全局的概念,表示的是决策函数对所有的样本(X,Y)预测能力的大小,而经验风险则是局部的概念,仅仅表示决策函数对训练数据集里样本的预测能力。理想的模型(决策)函数应该是让所有的样本的损失函数最小(即期望风险最小化),但是期望风险函数往往是不可得到的,即公式2中,X与Y的联合分布函数是不容易得到的。期望风险是全局的,理想情况下应该是让期望风险最小化,但是呢,期望风险函数又不是那么容易得到的。怎么办呢?那就用局部最优代替全局最优这个思想吧。而这就是经验风险最小化的理论基础。

经验风险与期望风险之间的联系与区别

经验风险是局部的、基于训练集所有样本点损失函数最小化的。

期望风险是全局的,是基于所有样本点的损失函数最小化的。

经验风险函数是现实的,可求的。

期望风险函数是理想化的,不可求的。

若是只考虑经验风险的话,会出现过拟合的现象,过拟合的极端情况便是模型f(x)对训练集中所有的样本点都有最好的预测能力,但是对于非训练集中的样本数据,模型的预测能力非常不好。

结构风险

问题4:只考虑经验风险时,很容易产生过拟合化的问题,也就是说在训练集中的所有样本点都有最好的预测能力,但是对于非训练集中的样本数据,模型的预测能力非常不好,那么这个时候应该怎样进行处理呢?

这时候就开始引入结构风险的概念,结构风险是对经验风险和期望风险的折中。在经验风险函数后面加一个正则化项(惩罚项)便是结构风险了。如式所示:

公式3

相比于经验风险,结构风险多了一个惩罚项,其中lamada参数是一个大于的系数。J(f)表示的是模型f的复杂度。

经验风险越小,模型决策函数越复杂,其包含的参数越多,当经验风险函数小到一定程度就出现了过拟合现象。也可以理解为模型决策函数的复杂程度是过拟合的必要条件,那么要想防止过拟合现象的方式,就要破坏这个必要条件,即降低决策函数的复杂度。也即,让惩罚项J(f)最小化,那么到现在为止,已经出现两个需要最小化的函数了。

我们需要同时保证经验风险函数和模型决策函数的复杂度都达到最小化,一个简单的办法就是把两个式子融合成一个式子得到结构风险函数然后对这个结构风险函数进行最小化。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180714G1LVV400?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券