前言
前面讲过Rumelhart重新发表了BP backpropagation算法, 从此掀起了连接主义的新时代。 Hinton是其中的重要参与者。
为什么是Rumelhart发明的BP算法?
早早的BP算法被Werbos发明了,多层感知机MLP就可用了, 甚至在Rumelhart之前, Hinton的学生Yann Lecun也号称重新发明了BP算法, 为啥不是他们?
最重要的是Rumelhart受到Grossberg的影响(这个Grossberg就是ART的发明人, 他对Hopfield网络时代的成果进行了广泛的总结),默认激活函数就应该是sigmoid函数。 如果默认是Sigmoid函数之后, 利用Sigmoid函数导数的良好性质。 Rumelhart的BP算法的形式极其极其的简单! 易经告诉我们, 简而易从, 易从则有功, 有功乃大! 这就是为什么是Rumelhart!
Sigmoid函数就是标准logistic函数, 它的导数的形式真是简单。
再回到Lecun的贡献,Lecun给出了BP算法详细的梯度下降的分析, 所以Lecun这种对性能追求的态度也是一种很大的贡献。
再回到Werbos的贡献,他给出了导数递归求解的形式,但是相对比较复杂, 也没有相关性能分析解释, 只是一堆自己很理解的公式。
这样, 我们开始回顾BP盛行后带来什么问题导致了深度学习的爆发?
一图抵千言
前面讲过在Hopfield网络发展出来的Elman网络就是SRN,简单递归网络。 出现了BPTT,EKF和RTRL三大算法。但是实际应用的效果却非常不好!有个做语音识别的叫Schmidhuber的家伙,带着他的硕士学生Hchreiter,就开始认知的生成图片分析到底什么问题!结果这个叫Hchreiter的硕士很给力, 画除了各种效果图, 在硕士论文中把问题写清楚了, 是梯度消失或者爆炸。
前面不是讲到新的Rumelhart的BP算法时代, 默认的激活函数是Sigmoid函数, 这样就会连续多次求导之后乘积就会带来要么指数消失,要么指数爆炸的情况。 为了解决这个问题, 这个硕士生Hchreiter很给力, 利用记忆学习的思路, 搞出了LSTM的模型, 一应用,效果很好!从此Schmidhuber他开启了各种应用。 后来还开了公司Nnaisense搞自动驾驶,聘请了他的学生来做顾问。 另外他的类似堂吉柯德的自画像和他按照Godel的思想搞得Godel Machine也很有意思。并且他还最早提出了Pretraining的思想, 不过是应用到RNN上面的 。
小结
通过对以Hopfield网络时代,神经网络学习效果不好的情况的分析, 找到了梯度消失的问题,同时Hinton发现效果好的复杂模型, 定义了深度学习。 后续我们讲深度学习的初期发展。
相关话题: