Neural Networks for Machine Learning Lecture 9
课程地址:https://www.coursera.org/learn/neural-networks
老师主页:http://www.cs.toronto.edu/~hinton
备注:笔记内容和图片均参考老师课件。
这一讲介绍了主要介绍了提升generalization的一些方法,这里总结一下。
参考资料:http://www.hankcs.com/ml/hinton-ways-to-make-neural-networks-generalize-better.html
防止过拟合
方法1:获得更多数据
这个方法无需解释,数据越多,过拟合的可能性就会减少。
方法2:使用能力恰到好处的模型
其实就是奥卡姆剃刀原理,用尽量简单的模型来拟合数据。
方法3:平均很多不同的模型
这个主要是bagging的思想,例如决策树。
方法4:贝叶斯方法
利用先验信息。
下面介绍方法2以及方法4
几种限制模型能力的方法
Architecture
限制隐藏层以及每一层的神经元个数。
Early stopping
从一个很小的权重开始,在过拟合之前就停止。
Weight-decay
增加损失项。
$L_2$损失项
$L_2$损失项会使得很大的$w_i$变小。
$L_1$损失项
$L_1$损失项会使得很多权重变为$0$。
其他损失项
上图中绿色曲线代表的损失项允许出现比较大的权重出现,这是因为这个损失函数的增速比较慢。
Noise
对输入输出都增加噪音,如下图所示
我们来求误差函数
这说明增加噪音相当于增加了$L_2$损失项
贝叶斯方法
贝叶斯方法的核心公式如下
其中$W$表示权重,$D$表示数据。
这里考虑在神经网络中的应用。假设$t$为目标值,$y$为预测值,$W,D$如之前所述,目标值的概率密度函数为
假设不同的目标值相互独立,所以
接下来我们要考虑$p(W)$,假设权重的概率密度函数为
现在利用贝叶斯公式,对其两边取对数可得
将之前的式子带入,记$C=-\text{log }P(W|D)$,常数记为constant
注意损失函数为
所以
这说明贝叶斯方法与$L_2$有着密切的联系,损失项的系数为两个方差的比值,老师据此介绍了MacKay的调参方法,具体的可以参考课件,这里略过。