人工神经网络

维基百科,自由的百科全书
跳转至: 导航搜索

人工神经网络(artificial neural network,缩写ANN),简称神经网络(neural network,缩写NN),是一种模仿生物神经网络的结构和功能的数学模型计算模型。神经网络由大量的人工神经元联结进行计算。大多数情况下人工神经网络能在外界信息的基础上改变内部结构,是一种自适应系统。现代神经网络是一种非线性统计性数据建模工具,常用来对输入和输出间复杂的关系进行建模,或用来探索数据的模式。

神经网络是一种运算模型[1],由大量的節點(或稱“神經元”,或“單元”)和之間相互聯接構成。每个节点代表一种特定的输出函数,称为激励函数(activation function)。每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重(weight),這相當於人工神經網路的記憶。网络的输出则依网络的连接方式,权重值和激励函数的不同而不同。而网络自身通常都是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。

它的构筑理念是受到生物(人或其他动物)神经网络功能的运作启发而产生的。人工神经网络通常是通过一个基于数学统计学类型的学习方法(Learning Method)得以优化,所以人工神经网络也是数学统计学方法的一种实际应用,通过统计学的标准数学方法我们能够得到大量的可以用函数来表达的局部结构空间,另一方面在人工智能学的人工感知领域,我们通过数学统计学的应用可以来做人工感知方面的决定问题(也就是说通过统计学的方法,人工神经网络能够类似人一样具有简单的决定能力和简单的判断能力),这种方法比起正式的逻辑学推理演算更具有优势。

神经元[编辑]

神经元示意图:

Ncell.png
  • a1~an为输入向量的各个分量
  • w1~wn为神经元各个突触的权值
  • b为偏置
  • f为传递函数,通常为非线性函数。一般有traingd(),tansig(),hardlim()。以下默认为hardlim()
  • t为神经元输出

数学表示 t = f(\vec{W}\vec{A'}+b)

  • \vec{W}为权向量
  • \vec{A}为输入向量,\vec{A'}\vec{A}的转置
  • b为偏置
  • f为传递函数

可见,一个神经元的功能是求得输入向量与权向量的内积后,经一个非线性传递函数得到一个标量结果。

单个神经元的作用:把一个n维向量空间用一个超平面分割成两部分(称之为判断边界),给定一个输入向量,神经元可以判断出这个向量位于超平面的哪一边。

该超平面的方程:\vec{W}\vec{p}+b=0

  • \vec{W}权向量
  • b偏置
  • \vec{p}超平面上的向量

[2]

神经元网络[编辑]

单层神经元网络[编辑]

是最基本的神经元网络形式,由有限个神经元构成,所有神经元的输入向量都是同一个向量。由于每一个神经元都会产生一个标量结果,所以单层神经元的输出是一个向量,向量的维数等于神经元的数目。 示意图:

SingleLayerNeuralNetwork english.png

多层神经元网络[编辑]

人工神经网络的使用性[编辑]

人工神经网络是一个能够学习,能够总结归纳的系统,也就是说它能够通过已知数据的实验运用来学习和归纳总结。人工神经网络通过对局部情况的对照比较(而这些比较是基于不同情况下的自动学习和要实际解决问题的复杂性所决定的),它能够推理产生一个可以自动识别的系统。与之不同的基于符号系统下的学习方法,它们也具有推理功能,只是它们是建立在逻辑演算法的基础上,也就是说它们之所以能够推理,基础是需要有一个推理演算法则的集合。

人工神经元网络模型[编辑]

通常来说,一个人工神经元网络是由一个多层神经元结构组成,每一层神经元拥有输入(它的输入是前一层神经元的输出)和输出,每一层(我们用符号记做)Layer(i)是由Ni(Ni代表在第i层上的N)个网络神经元组成,每个Ni上的网络神经元把对应在Ni-1上的神经元输出做为它的输入,我们把神经元和与之对应的神经元之间的连线用生物学的名称,叫做突触英语Synapse),在数学模型中每个突触有一个加权数值,我们称做权重,那么要计算第i层上的某个神经元所得到的势能等于每一个权重乘以第i-1层上对应的神经元的输出,然后全体求和得到了第i层上的某个神经元所得到的势能,然后势能数值通过该神经元上的激励函数(activation function,常是en:Sigmoid function以控制輸出大小,因為其可微分且連續,方便en:Delta rule處理。)求出该神经元的输出,注意的是该输出是一个非线性的数值,也就是说通过激励函数求的数值根据极限值来判断是否要激活该神经元,换句话说我们对一个神经元网络的输出是否线性不感兴趣。

基本結構[编辑]

一种常见的多层结构的前馈网络(Multilayer Feedforward Network)由三部分組成,

  • 輸入層(Input layer),眾多神經元(Neuron)接受大量非線形輸入信息。輸入的信息稱為輸入向量。
  • 輸出層(Output layer),信息在神經元鏈接中傳輸、分析、權衡,形成輸出結果。輸出的信息稱為輸出向量。
  • 隱藏層(Hidden layer),簡稱「隱層」,是輸入層和輸出層之間眾多神經元和鏈接組成的各個層面。隱層可以有多層,習慣上會用一層。隱層的節點(神經元)數目不定,但數目越多神經網絡的非線性越顯著,從而神經網絡的強健性(robustness)(控制系統在一定結構、大小等的參數攝動下,維持某些性能的特性。)更顯著。習慣上會選輸入節點1.2至1.5倍的節點。

神经网络的类型已经演变出很多种,这种分层的结构也并不是对所有的神经网络都适用。

學習過程[编辑]

通過訓練樣本的校正,對各個層的權重進行校正(learning)而建立模型的過程,稱為自動學習過程(training algorithm)。具体的学习方法则因网络结构和模型不通而不同,常用反向传播算法(Backpropagation/倒傳遞/逆傳播,以output利用一次微分en:Delta rule來修正weight)來驗證。

參見:神經網絡介紹

種類[编辑]

人工神經網路分類為以下兩種:
1.依學習策略(Algorithm)分類主要有:


2.依網路架構(Connectionism)分類主要有:

理论性质[编辑]

计算能力[编辑]

多层感知器(MLP)是一个通用的函数逼近器,由Cybenko定理证明。然而,证明不是由所要求的神经元数量或权重来推断的。 Hava Siegelmann和Eduardo D. Sontag的工作证明了,一个具有有理数权重值的特定递归结构(与全精度实数权重值相对应)相当于一个具有有限数量的神经元和标准的线性关系的通用图灵机。[3] 他们进一步表明,使用无理数权重值会产生一个超图灵机。

容量[编辑]

人工神经网络模型有一个属性,称为“容量”,这大致相当于他们可以塑造任何函数的能力。它与可以被储存在网络中的信息的数量和复杂性相关。

收敛性[编辑]

没有什么通常意义上的收敛,因为它取决于一些因素。首先,函数可能存在许多局部极小值。这取决于成本函数和模型。其次,使用优化方法在远离局部最小值时可能无法保证收敛。第三,对大量的数据或参数,一些方法变得不切实际。在一般情况下,我们发现,理论保证的收敛不能成为实际应用的一个可靠的指南。

综合统计[编辑]

在目标是创建一个普遍系统的应用程序中,过度训练的问题出现了。这出现在回旋或过度具体的系统中当网络的容量大大超过所需的自由参数。为了避免这个问题,有两个方向:第一个是使用交叉验证和类似的技术来检查过度训练的存在和选择最佳参数如最小化泛化误差。二是使用某种形式的正规化。这是一个在概率化(贝叶斯)框架里出现的概念,其中的正则化可以通过为简单模型选择一个较大的先验概率模型进行;而且在统计学习理论中,其目的是最大限度地减少了两个数量:“风险”和“结构风险”,相当于误差在训练集和由于过度拟合造成的预测误差。

参见[编辑]

外部連結[编辑]

参考文献[编辑]

  1. ^ Zeidenberg, Matthew. Neural Networks in Artificial Intelligence. 1990: Ellis Horwood Limited. 1990. ISBN 0-13-612185-3. 
  2. ^ Hagan, Martin. Neural Network Design. PWS Publishing Company. 1996. ISBN 7-111-10841-8. 
  3. ^ Siegelmann, H.T.; Sontag, E.D. Turing computability with neural nets. Appl. Math. Lett. 1991, 4 (6): 77–80. doi:10.1016/0893-9659(91)90080-F.