丢弃法
在小虾的这篇文章中介绍了权重衰减来应对过拟合问题(https://blog.csdn.net/qq_33432841/article/details/107879937),下面在介绍一种应对过拟合问题的方法丢弃法。因为丢弃法有许多不同的变体,下面提到的丢弃法特指倒置丢弃法。
方法:
在“多层感知机”(https://blog.csdn.net/qq_33432841/article/details/107858405)中,描述了一个单隐藏层的多层感知机,其中输入个数为4,隐藏单元个数为5,且隐藏单元??(?=1,…,5i=1,…,5)的计算表达式为
这里?是激活函数,?1,…,?4是输入,隐藏单元?的权重参数为?1?,…,?4?,偏差参数为??。
当对该隐藏层使用丢弃法时,该层的隐藏单元将有一定概率被丢弃掉。设丢弃概率为?, 那么有?的概率??会被清零,有1??的概率??会除以1??做拉伸。丢弃概率是丢弃法的超参数。具体来说,设随机变量??为0和1的概率分别为?和1?p。使用丢弃法时我们计算新的隐藏单元
由于?(??)=1??,因此
即丢弃法不改变其输入的期望值。
那么让我们对“多层感知机”中图的隐藏层使用丢弃法,一种可能的结果如下图所示。
在图中?2和?5被清零,这时输出值的计算不再依赖?2和?5,在反向传播时,与这两个隐藏单元相关的权重的梯度均为0。由于在训练中隐藏层神经元的丢弃是随机的,即?1,…,?5都有可能被清零,输出层的计算无法过度依赖?1,…,?5中的任一个,从而在训练模型时起到正则化的作用,并可以用来应对过拟合。
在测试模型时,为了得到更加确定性的结果,一般不使用丢弃法。