机器学习基础(十三)—— regularization & validation

  • (1)无论是正则化(regularization)还是校验(validation)都是一种模型选择方法;

  • (2)regularization:经验风险( Ein )+ regularizer ,二者加在一起,又称为 augmented error,可以有效地限制模型的复杂度;

1. 经验风险最小化与结构风险最小化

模型 f(X) 关于数据集的平均损失称为经验风险(empirical risk)或经验损失(empirical loss)。

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

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

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

其中 F 是假设空间(hypothesis space)。

样本容量足够大时,经验风险最小化能保证有很好的学习效果,在现实中被广泛采用。比如,极大似然估计(MLE)就是经验风险最小化的一个例子(当模型是条件概率分布,损失函数是对数损失函数时,经验风险最小化就等价于极大似然估计)。

样本容量很小时,经验风险最小化学习的效果就未必很好,会产生“过拟合(overfitting)”现象。

结构风险最小化(Structural Risk Minimization,SRM)是为了防止过拟合而提出来的策略。结构风险最小化等价于正则化(regularization)。结构风险在经验风险上加上表示模型复杂度的正则化项(regularizer)或罚项(penalty term)。

在假设空间、损失函数以及训练数据确定的情况下,结构风险的定义为:

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

其中 J(f) 表示模型的复杂度,是定义在假设空间上的泛函。模型 f 越复杂,复杂度 J(f) 就越大。也即是说,复杂度表示了对复杂模型的惩罚。 λ0 是系数(tradeoff),用以权衡经验风险和模型复杂度。结构风险小要求经验风险和模型复杂度同时小。结构风险小的模型往往对训练数据以及未知的测试数据都有较好的预测。

比如,贝叶斯估计中的最大后验概率估计(MAP)就是结构风险最小化的一个例子。当模型是条件概率分布,损失函数是对数损失函数,模型的复杂度由模型的先验概率表示,结构风险最小化等价于最大后验概率估计。

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

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

这样,监督学习就变成了经验风险或结构风险的最小化问题,这时经验或结构风险函数是最优化的目标函数。

2. 正则化

模型选择的典型方法是正则化(regularization)。正则化是结构风险最小化策略的实现,是在经验风险上加一个正则化项(regularizer)或罚项(penalty term)。正则化项一般是模型复杂度的单调递增函数,模型越复杂,正则化值就越大。比如,正则化项可以是模型参数向量的范数( w1 w2 )。

正则化项可以取不同的形式,例如,回归问题中,损失函数是平方损失正则化项可以是参数向量的 2 范数:

L(w)=1Ni=1N(f(xi;w)yi)2+λw2

正则化项也可以是参数向量 w 1 范数:
L(w)=1Ni=1N(f(xi;w)yi)2+λw1

正则化符合奥卡姆剃刀(Occam’s razor)原理,奥卡姆剃刀原理应用于模型选择时:在所有可选的模型中,能够很好地解释已知数据并且十分简单才是最好的模型。

3. 交叉验证

另一种常用的模型选择方法是交叉验证(cross-validation)。

如果给定的样本数据充分,进行模型选择的一种简单方法是随机地将数据集切分成三部分,

  • 分别为训练集(training set):训练模型
  • 验证集(validation set):模型的选择
    在学习到的不同复杂度的模型中,选择对验证集有最小预测误差的模型。
  • 测试集(test set); 最终对学习方法的评估

在许多实际应用中数据是不充足的(交叉验证),为了选择好的模型,可以采用交叉验证方法,交叉验证的基本想法是重复地使用数据

  • 简单交叉验证(70%:训练集,30%:测试集)
  • S 折交叉验证




    从第 fold 1 到 fold S,逐 hold 作为校验集,并将最后得到的结果,取均值;

  • 留一交叉验证( N 者交叉验证)

S 折交叉验证的特殊情形是 S=N,称为留一交叉验证(leave-one-out cross validation),往往在数据缺乏的情况下使用。这里, N <script type="math/tex" id="MathJax-Element-271">N</script> 是给定数据集的容量。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五道口纳什

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值