dropout层的理解
原文:https://blog.csdn.net/u013007900/article/details/78120669/
作用:用于减少过拟合。
dropout是指深度学习训练过程中,对于神经网络训练单元,按照一定的概率将其从网络中移除,注意是暂时,对于随机梯度下降来说,由于是随机丢弃,故而每一个mini-batch都在训练不同的网络。
过拟合是深度神经网(DNN)中的一个常见问题:模型只学会在训练集上分类,这些年提出的许多过拟合问题的解决方案,其中dropout具有简单性而且效果也非常良好。
算法概述
我们知道如果要训练一个大型的网络,而训练数据很少的话,那么很容易引起过拟合,一般情况我们会想到用正则化、或者减小网络规模。然而Hinton在2012年文献:《Improving neural networks by preventing co-adaptation of feature detectors》提出了,在每次训练的时候,随机让一半的特征检测器停过工作,这样可以提高网络的泛化能力,Hinton又把它称之为dropout。
Hinton认为,过拟合可以通过阻止某些特征的协同作用来缓解。
带dropout的训练过程
而为了达到ensemble的特性,有了dropout后,神经网络的训练和预测就会发生一些变化。在这里使用的是dropout以pp的概率舍弃神经元.
测试层面
预测的时候,每一个单元的参数要预乘以p。
cheetah_747: 我也是,真是无语。
weixin_52067993: 博主,可以请问一下EM是什么意思吗?Dev是什么意思呢?谢谢您!
冰雪飞儿: 如果报错: max_index=sim.index(max) AttributeError: 'numpy.ndarray' object has no attribute 'index' 解决办法: [code=python] import numpy as np sim = sim.tolist() #获得最大值,转化成list进行操作,使用list的max函数 max_sim=max(list(sim)) #获得最大值索引,使用list的index函数 max_index=sim.index(max(sim)) print("最大值元素索引%d" % max_index) [/code]
道尽似空: 答非所问
猪猪侠方丈——px: 确实要更新下