5.1神经元模型
神经网络(neural networks)方面的研究很早就已经出现,今天神经网络已经是一个相当大的、多学科交叉的学科领域。各相关学科对神经网络的定义多种多样,本书采用目前使用最广泛的一种,即“神经网络是由具有适应性的简单单元组成的广泛并行互联的网络,它的组织能够模拟生物神经网络神经系统对真实世界物体所做出的交互反应”。我们再机器学习中言论神经网络时指的是“神经网络学习”,或者说,是机器学习与神经网络这两个学科l领域的交叉部分。
神经网络中最基本的成分是神经元(neuron)模型,即上述定义中的”简单单元“。
M-P神经元模型:在这个模型中,神经元接收到来自n个其他神经元传递的输入信号,这些输入信号通过带权重的连接进行传递,神经元接收到的总输入值将于神经元的阈值进行比较,然后通过”激活函数“(activation function)处理以产生神经元的输出。
激活函数(activation function)
把许多个这样的神经元按一定的层次结构连接起来,就得到了神经网络。
5.2感知机与多层网络
感知机(Perceptron)由两层神经元组成,如5.3。输入层接收外界输入信号后传递给输出层,输出层是M-P神经元,亦称”阈值逻辑单元“(threshold logic unit)
感知机能容易的实现逻辑与、或、非运算。
要解决非线性可分问题,需要考虑使用多层功能神经元。例如5.5这个简单的两层感知机就能解决问题。在5.5(a)中,输出层与输入层之间的一层神经元,被称为隐层或者隐含层(hidden layer),隐含层和输出层神经元都是拥有激活函数的功能神经元。
更一般的,常见的神经网络是形如5.6所示的层级结构,每层神经元与下一层神经元全互连,神经元之间不存在同层连接,也不存在跨层连接。这样的神经网络结构通常成为”多层前馈神经网络“(multi-layer feedforward neural)。
其中输入层神经元接收外界输入,隐层与输出层神经元对信号进行加工,最终结果由输出层神经元输出;换言之,输入层神经元仅是接收输入,不进行函数处理,隐层与输出层包含功能神经元。因此,5.6(a)通常称为”两层神经网络“,为避免歧义,本书成为”单隐层神经网络“。只需要包含隐层,即可成为多层网络。神经网络的学习过程,就是根据训练数据来调整神经元之间的”连接权“(connection weight)以及每个功能神经元的阈值;换言之,神经网络”学“到的东西,蕴含在连接权与阈值中。
5.3误差逆传播算法
多层网络的学习能力比单层感知机强的多。误差逆传播(error BackPropagation,简称BP)算法就是其中最杰出的代表。它是迄今最成功的神经网络算法。现实任务中使用神经网络时,大多是在使用BP算法进行训练。值得指出的是,BP算法不仅可以用于多层前馈神经网络,还可以用于其他模型的神经网络,例如训练递归神经网络,但通常说”BP网络“时,一般是指用BP算法训练的多层前馈神经网络。
万有逼近性:任何一个函数逼近的问题,都可以用一个单隐层神经网络来解决。任何一个图灵可计算的问题,都可以找到一个神经网络,能作为它的求解器。
但是,如何设置隐层神经元数是未决问题(Open Problem)。实际常常采用”试错法“。