算法效果不仅很大程度上受影响于假设空间的函数数量,也取决于这些函数数量的具体形式。

控制算法性能的两种方式:1.允许使用的函数数量,2.这些函数的数量。

正则化是指修改学习算法,使其降低泛化误差而非训练误差。


 正则化以偏差的增加换取方差的减少,一个有效的正则化是有利的“交易”,能够显著减少方差而不过度增加偏差。

1.参数范数惩罚

正则化方法通过对目标函数J添加一个参数范数惩罚Ω(Θ),限制模型的学习能力。

选择不同的Ω,会偏好不同的解。

L2参数正则化

L1参数正则化

2.作为约束的范数惩罚

3.正则化与欠约束问题

4.数据增强

让机器泛化的更好的最好方法是使用更多的数据进行训练,解决方法:创建假数据并添加到训练集中。

5.噪声鲁棒性

方式:a.向输入添加方差极小的噪声等价于对权重施加范数惩罚

b.将噪声增加至权重。可以解释为:关于权重的贝叶斯推断的随机实现,贝叶斯学习过程将权重视为不确定的,并且通过概率分布表示这种不确定性,向权重添加噪声是反映这种不确定性的一种实用的随机方法。

6.半监督学习

7.多任务学习

通过合并几个样例来提高泛化的一种方式。

不同的监督任务共享相同的输入X,以及详细一些不同的中间层表示。能学习共同的因素池。

8.提前终止

当训练有足够的表示能力甚至会过拟合的大模型时,训练误差会随着时间的推移逐渐降低但验证集误差会再次上升。

我们需要返回使验证集误差最低的参数设置。

提前终止需要验证集,这意味着某些训练数据不能馈送到模型。

9.参数绑定和参数共享

正则化一个模型的参数,使其接近另一个无监督模式下训练的模型的参数。

10.稀疏表示

权重衰减直接惩罚模型参数,另外一种策略是惩罚神经网络中的激活单元,稀疏化激活单元。

11.Bagging和其他集成方法

Bagging是通过结合几个模型降低泛化误差之间的技术,主要思想:分别训练几个不同的模型,然后让所有模型表决测试样例的输出。

模型平均(model averaging)奏效的原因是不同的模型通常不会在测试集上产生完全相同的误差。

12.Dropout

集成大量深层神经网络的实用的Bagging方法。

在Dropout的情况下,所有模型共享参数,其中每个模型继承父神经网络参数的不同子集。

13.对抗训练

通过对抗训练减少原有独立同分布的测试集的错误率。

14.切面距离、正切传播和流形正切分类器