1. 早停 (early termination)

训练时间和模型在validation dataset上的性能,该值应该是一个随时间先增后减的曲线,我们观察当该曲线达到最大值时,停止训练。这种方法叫做早停。

2. 正则化 (Regularization)

正则化是在网络上施加额外的限制,以此来间接地减少自由变量的参数数量,但同时却不增大优化的难度。

L2正则化

L= L + β*1/2*(||W||2) ,  L loss函数

(||W||2)2 = (w12+w22+...+wN2)

(1/2*(||W||2)2)' =w

3. 丢弃 (Dropout) 正则化的一种

http://www.cs.toronto.edu/~hinton/absps/JMLRdropout.pdf

前面一层神经元到后面一层神经元的值,叫做激活值(activations),在训练神经网络的过程中,对每个样例,任选所有激活值中的一半,并把他们设为0,在这个完全随机的过程中,你将选取流过神经网络的一半的数据,并直接忽略它。然后对下一组数据也进行如下随机的过程。

在该过程后,神经网络不再能依赖任何给定的激活值,因为它们很可能在下一秒就被忽略掉。因此,他要学习一个冗余的表达式,以确保至少部分的信息被保留了,万一一个激活值被删去了,但总会有另外的能起到相同作用的、未被删除的激活值。

最终,一切看起来并没有问题。

让你的神经网络学习冗余的表达式,看起来是一个低效的行为,但在实践中,它使得系统更为坚实,并能够防止过拟合。同时,它使得你的神经网络变得像是由一群神经网络的集成。这也是改善表现的好方法。

如果Dropout都没有用的话,那看来你需要使用一个更大的网络了。

posted on 2016-11-07 15:13  xiaojyan  阅读(267)  评论(0)    收藏  举报