dropout原理和作用
Dropout叫作随机失活,简单来说就是在模型训练阶段的前向传播过程中,让一些神经元的激活值以一定的概率停止工作,如下图所示,这样可以使模型的泛化性更强。
L1和L2正则化通过在损失函数上增加参数的惩罚项,通过对参数大小的约束,起到类似降维的作用(若高阶项参数接近0,相当于降阶)。进而简化模型,提高模型泛化力,避免过拟合。dropout是一种常用的防止过拟合的方法,在实践中,我们通常可以通过,增加训练样本,早停(即提前停止训练过程),L1\L2正则,dropout,以及batch normalize等手段来防止过拟合。正则化是为了防止
dropout实现了一种继承学习的思想,在每一次训练时候,模型以概率p“丢弃”一些节点,每一次“丢弃”的节点不完全相同,从而使得模型在每次训练过程中都是在训练一个独一无二的模型,最终集成在同一个模型中。并且在集成过程中dropout采用的并不是平均预测结果,而是将测试时的权重都乘上概率p。在训练过程中,dropout的工作机理是:以一个概率为p的伯努利分布随机的生成与节点数相同的0,1值,将这些值与输入相乘后部分节点被屏蔽,此时再用这些节点值做后续的计算。
在机器学习或者深度学习中,经常出现的问题是,训练数据量小,模型复杂度高,这就使得模型在训练数据上的预测准确率高,但是在测试数据上的准确率低,这时就是出现了过拟合。为了缓解过拟合,可采用的方法有很多,其中一种就是集成,通过训练多个模型,采用“少数服从多数”的策略决定最终的输出,但同时这个方法有一个很明显的缺点–训练时间长。
在神经网络的训练过程中,对于一次迭代中的其中一层神经网络,先随机选择其中的一些神经元并将其临时隐藏(丢弃),然后再进行本次训练和优化。在下一次迭代中,继续随机隐藏一些神经元,如此直至训练结束。由于是随机丢弃,故而每一个mini-batch都在训练不同的网络。
在机器学习的模型中,如果模型的参数太多,而训练样本又太少,训练出来的模型很容易产生过拟合的现象。在训练神经网络的时候经常会遇到过拟合的问题,过拟合具体表现在:模型在训练数据上损失函数较小,预测准确率较高;但是在测试数据上损失函数比较大,预测准确率较低。过拟合是很多机器学习的通病。如果模型过拟合,那么得到的模型几乎不能用。为了解决过拟合问题,一般会采用模型集成的方法,即训练多个模型进行组合。此时,
训练模型费时就成为一个很大的问题,不仅训练多个模型费时,测试多个模型也是很费时。Dropout可以比较有效的缓解过拟合的发生,在一定程度上达到正则化的效果。
Dropout可以作为训练深度神经网络的一种trick供选择。在每个训练批次中,在前向传播的时候,让一些神经元的激活值以一定的概率停止工作,这样可以使模型泛化性更强,因为它不会太依赖一些局部的特征。因为在机器学习的一些模型中,如果模型的参数太多,而训练样本又太少的话,这样训练出来的模型很容易产生过拟合现象。在训练bp网络时经常遇到的一个问题,过拟合指的是模型在训练数据上损失函数比较小,预测准确率较高(如果通过画图来表示的话,就是拟合曲线比较尖,不平滑,泛化能力不好),但是在测试数据上损失函数比较大,预测准确率较低。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。