二十世纪四十年代 M-P 神经元模型、Hebb 学习律出现后,五十年代出现了以感知机、Adaline 为代表的一系列成果。后来因为单层神经网络无法解决非线性问题,而多层网络的训练算法尚看不到希望,神经网络研究进入“冰河期”。哈佛大学的 Paul Werbos 在 1974 年发明 BP 算法时,正值“冰河期”,因此未受到重视。
1983 年,物理学家 John Hopfield 利用神经网络,在旅行商问题这个 NP 完全问题的求解上获得了当时最好的结果,引起轰动。稍后,UCSD 的 Rumelhart 等人重新发明了 BP 算法,再次掀起研究神经网络的热潮。二十世纪九十年代中期,随着统计学习理论和支持向量机的兴起,神经网络学习的理论性质不够清楚、试错性强、在使用中充斥大量“窍门”的弱点更为明显,于是神经网络的研究又进入低谷。
2010 年前后,随着计算能力的迅猛提升和大数据的涌现,神经网络研究在“深度学习”的名义下又重新崛起,先是在 ImageNet 等若干竞赛上以大优势夺冠,此后谷歌、百度、脸书等公司纷纷投入巨资进行研发,神经网络迎来第三次高潮。
1. 神经元模型
神经网络(neural networks)是由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对真实世界物体所作出的交互反应。
神经网络中最基本的成分是神经元(neuron)模型,即上述所说的“简单单元”。在生物神经网络中,每个神经元与其他神经元相连,当它“兴奋”时,就会向相连的神经元发送化学物质,从而改变这些神经元内的电位;如果某神经元的电位超过了一个“阈值”,那么它就会被激活,即“兴奋”起来,向其他神经元发送化学物质。
1943 年,McCulloch 和 Pitts 将上述情形抽象为上图所示的简单模型,这就是一直沿用至今的 M-P 神经元模型。神经元接收来自 n 个其他神经元传递过来的输入信号
理想中的激活函数是图 5.2(a) 所示的阶跃函数,它将输入值映射为输出值 0 或
把许多这样的神经元按一定的层次结构连接起来,就得到了神经网络。事实上,从计算机科学的角度看,我们可以先不考虑神经网络是否真的模拟了生物神经网络,只需将一个神经网络视为包含了许多参数的数学模型,这个模型是若干个函数,例如 yj=f(∑iwixi−θ