算法效果不仅很大程度上受影响于假设空间的函数数量,也取决于这些函数数量的具体形式。
控制算法性能的两种方式: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.切面距离、正切传播和流形正切分类器