多层神经网络致命问题之一:Gradient Vanish
Gradient Vanish 这个问题是由激活函数不当引起的,多层神经网络使用Sigmoid系激活函数,会使得误差从输出层开始呈指数衰减,靠近输出层的隐层训练的比较好,而靠近输入层的隐层几乎不能训练。
以5层结构为例,大概仅有第5层输出层,第4层,第3层被训练的比较好。误差传到第1、2层的时候,几乎为0。这时候5层相当于3层,前两层完全在打酱油。并且由于神经网络的正向传播是从随机初始化的1、2层开始的,这意味着,起初必须还得经过还是一片随机的的1、2层。这样,无论你后面3层怎么训练,都不能够收敛。
这个问题已经被Hinton在2006年提出的逐层贪心预训练权值矩阵变向减轻,后来提出的ReLu则从根本上解决了这个问题。
2012年,Hinton组的Alex Krizhevsky率先将受到Gradient Vanish影响较小的CNN中大规模使用新提出的ReLu函数。
2014年,Google研究员贾扬清则利用ReLu这个神器,成功将CNN扩展到了22层巨型深度网络。