当前位置: 代码迷 >> 综合 >> 【深度学习】丢弃法(dropout)
  详细解决方案

【深度学习】丢弃法(dropout)

热度:45   发布时间:2024-02-08 12:38:31.0

丢弃法

      在小虾的这篇文章中介绍了权重衰减来应对过拟合问题(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中的任一个,从而在训练模型时起到正则化的作用,并可以用来应对过拟合。

      在测试模型时,为了得到更加确定性的结果,一般不使用丢弃法。