1. 什么是Dropout?
Dropout是通过使得每个神经元以一定的概率停止工作来接缓解过拟合问题。dropout(随机失活):dropout是通过遍历神经网络每一层的节点,然后通过对该层的神经网络设置一个keep_prob(节点保留概率),即该层的节点有keep_prob的概率被保留,keep_prob的取值范围在0到1之间。通过设置神经网络该层节点的保留概率,使得神经网络不会去偏向于某一个节点(因为该节点有可能被删除),从而使得每一个节点的权重不会过大,有点类似于L2正则化,来减轻神经网络的过拟合。
2. Dropout反向传播时如何处理?
反向传播时,忽略掉被dropout的神经元。即如果某个神经元被dropout,那么这个神经元以及与他相连接的前面的所有神经元通过这个路径计算的梯度都是0【并不意味着总梯度是0,因为前面的神经元可能还连接了别的神经元】。即:被暂时删除的神经元本次不进行更新
3. Dropout为什么能够缓解过拟合?
(1)由于每次都会随机删除一个节点,下一层的节点就不会太依靠上一层的某个节点,也就是说它再分配权重的时候,不会给上一层的节点分配很高的权重,有点像L2正则的作用。这样的话,某个节点就不会太依赖与某些局部的特征,模型的泛化能力就更强。
(2)Dropout可以看作是不同模型的集成。Dropout每次随机失活一些神经元,相当