标题的四个方法分别是这两年来Deep Learning中对深度网络的一种正则化的trick,至于什么是什么时正则化,我也不清楚,姑且认为这些都是防止网络过拟合的技术吧。
PS:本文不对这四种方法的背后理论和原理作任何分析和解释,只直观的解释它是怎么用的,因为背后的原理总是涉及这个正则化,我一点也不懂,就不献丑了
Dropout:直接参考tornadomeet的博文:http://www.cnblogs.com/tornadomeet/p/3258122.html
Dropout是指在模型训练时随机让网络某些隐含层节点的权重不工作,不工作的那些节点可以暂时认为不是网络结构的一部分,但是它的权重得保留下来(只是暂时不更新而已),因为下次样本输入时它可能又得工作了(有点抽象,具体实现看后面的实验部分)。
按照hittion的文章,他使用Dropout时训练阶段和测试阶段做了如下操作:
在样本的训练阶段,在没有采用pre-training的网络时(Dropout当然可以结合pre-training一起使用),hintion并不是像通常那样对权值采用L2范数惩罚,而是对每个隐含节点的权值L2范数设置一个上限bound,当训练过程中如果该节点不满足bound约束,则用该bound值对权值进行一个规范化操作(即同时除以该L2范数值),说是这样可以让权值更新初始的时候有个大的学习率供衰减