机器学习笔记之经验风险与结构风险

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014046022/article/details/79948326

期望损失(风险函数)

当模型的损失函数是对数损失函数(对数似然损失函数):

L(Y,P(Y|X))=logP(Y|X)

损失函数值越小,模型就越好,由于模型的输入、输出 (X,Y) 是随机变量,遵循联合分布 P(X,Y), 所以损失函数的期望是:

Rexp(f)=Ep[L(Y,f(x))]=×L(y,f(x))P(x,y)dxdy

这是理论上模型 f(x) 关于联合分布 P(X,Y) 的平均意义下的损失,称为风险函数或期望损失

学习的目标就是选择期望风险最小的模型。由于联合分布 P(X,Y) 是未知的,Rexp(f) 不能直接计算。实际上,要是知道了联合分布 P(X,Y),就可以直接从联合分布求出条件概率分布 P(Y|X) ,这样就不需要学习了,直接算那就行了。正因为不知道联合概率分布,所以才需要进行学习,这里就会产生矛盾了,一方面根据期望风险最小学习模型需要用到联合概率,另一方面联合概率分布又是位置的,所以导致了监督学习称为一个病态的问题。

经验风险(经验损失)

既然我们无法直接获得总体的联合概率分布,那么我们可以用样本来对总体的联合概率分布进行估计吧。

给定一个训练数据集:

T={(x1,y1),,(xN,yN)}

模型 f(X) 关于训练集的平均损失称为经验风险(emprical risk) 或经验损失:

Remp(f)=1Ni=1NL(yi,f(xi))

容易知道,上面说的期望风险 Rexp(f) 是模型关于联合分布的期望损失,而经验风险 Remp(f) 是模型关于样本训练集的平均损失。根据大数定律,当样本容量趋近 时,经验风险趋近与期望风向。所以我们可以用经验风险估计期望风险。

这样估计存在的问题?
由于现实中样本集的数量有限,有时候并不能很好的体现总体的所有特征,所以这样的估计常常不理想,要对经验风险进行一定的矫正,于是就引出了监督学习的两个基本策略:经验风险最小化和结构风险最小化

经验风险最小化

在假设空间、损失函数以及训练数据集确定的情况下,经验风险函数 Remp(f)=1NNi=1L(yi,f(xi)) 就可以确定。 经验风险最小化(empirical risk minimization, ERM) 的策略认为,经验风险最小的模型就是最优的模型,那么按照经验风险最小化求最优模型就是求解最优化问题:

minf1Ni=1NL(yi,f(xi))

其中 是假设空间。

当样本容量足够大的时候,经验风险最小化能保证有很好的学习效果。

如何理解当模型是条件概率分布,损失函数是对数损失函数时,经验风险最小化就等价于极大似然估计?

  • 首先极大似然估计基于条件独立的假设,求某个特定的条件概率的时候是要根据情况累乘各部分的概率的。这时候我们对这个条件概率取对数,那么累乘就变成累加和了,就和上面的公式一致了。

结构风险最小化

当样本容量小的的时候,经验风险最小化的效果未必很好,容易产生过拟合

为了防止过拟合,提出了结构风险最小化的策略。

结构风险最小化(structural risk minimization, SRM) 等价于正则化 (regularization)。 结构风险在经验风险上加上表示模型复杂度的正则化项,在假定空间、损失函数以及训练数据集确定的情况下,结构风险的定义:

Rsrm=1Ni=1NL(yi,f(xi))+λJ(f)

其中 J(f) 为模型的复杂度,是定义在假设空间 上的泛函。模型越复杂,复杂度 J(f) 就会越大;反之,模型越简单,复杂度就小。这意味着 J(f) 表示对模型的惩罚。其中 λ0 是系数,用以权衡经验风险和模型复杂度。结构风险最小需要经验风险和模型复杂度同时小。结构风险小的模型对训练数据以及未知的测试数据有较好的预测。

结构风险最小化的策略认为结构风险最小的模型就是最优的模型,所以求最优模型,就是求解最优化问题:

minf1Ni=1NL(yi,f(xi))+λJ(f)

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页