人工神经网络(Artificial Neural Network,ANN)简称神经网络(NN),是基于生物学中神经网络的基本原理,在理解和抽象了人脑结构和外界刺激响应机制后,以网络拓扑知识为理论基础,模拟人脑的神经系统对复杂信息的处理机制的一种数学模型。该模型以并行分布的处理能力、高容错性、智能化和自学习等能力为特征,将信息的加工和存储结合在一起,以其独特的知识表示方式和智能化的自适应学习能力,引起各学科领域的关注。它实际上是一个有大量简单组件相互连接而成的复杂网络,具有高度的非线性,能够进行复杂的逻辑操作和非线性关系实现的系统。
神经网络是一种运算模型,由大量的节点(或称神经元)之间相互联接构成。每个节点代表一种特定的输出函数,称为激活函数(activation function)。每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重(weight),神经网络就是通过这种方式来模拟人类的记忆。网络的输出则取决于网络的结构、网络的连接方式、权重和激活函数。而网络自身通常都是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。神经网络的构筑理念是受到生物的神经网络运作启发而产生的。人工神经网络则是把对生物神经网络的认识与数学统计模型相结合,借助数学统计工具来实现。另一方面在人工智能学的人工感知领域,我们通过数学统计学的方法,使神经网络能够具备类似于人的决定能力和简单的判断能力,这种方法是对传统逻辑学演算的进一步延伸。
神经网络,是一种应用类似于大脑神经突触连接结构进行信息处理的数学模型,它是在人类对自身大脑组织结合和思维机制的认识理解基础之上模拟出来的,它是根植于神经科学、数学、思维科学、人工智能、统计学、物理学、计算机科学以及工程科学的一门技术。
人工神经网络学习的原理
人工神经网络首先要以一定的学习准则进行学习,然后才能工作。现以人工神经网络对手写“A”、“B”两个字母的识别为例进行说明,规定当“A”输入网络时,应该输出“1”,而当输入为“B”时,输出为“0”。
所以网络学习的准则应该是:如果网络做出错误的判决,则通过网络的学习,应使得网络减少下次犯同样错误的可能性。首先,给网络的各连接权值赋予(0,1)区间内的随机值,将“A”所对应的图像模式输入给网络,网络将输入模式加权求和、与门限比较、再进行非线性运算,得到网络的输出。在此情况下,网络输出为“1”和“0”的概率各为50%,也就是说是完全随机的。这时如果输出为“1”(结果正确),则使连接权值增大,以便使网络再次遇到“A”模式输入时,仍然能做出正确的判断。
如果输出为“0”(即结果错误),则把网络连接权值朝着减小综合输入加权值的方向调整,其目的在于使网络下次再遇到“A”模式输入时,减小犯同样错误的可能性。如此操作调整,当给网络轮番输入若干个手写字母“A”、“B”后,经过网络按以上学习方法进行若干次学习后,网络判断的正确率将大大提高。这说明网络对这两个模式的学习已经获得了成功,它已将这两个模式分布地记忆在网络的各个连接权值上。当网络再次遇到其中任何一个模式时,能够做出迅速、准确的判断和识别。一般说来,网络中所含的神经元个数越多,则它能记忆、识别的模式也就越多。
人工神经网络学习过程
我们以简单的无隐藏层的感知机来说明类神经网路的学习机制。在神经网路的学习中,样本资料以数值形式表示,每一个样本都包含有输入矢量X = [X1, X2, …,Xn] 和目标输出矢量T = [T1, T2, …, Tm]。一般将所有的样本资料随机分为两部分,一部分为训练样本(training samples),另一部分为测试样本(test samples)。首先,将感知机初始化,即给定每一个连结一个随机随机数值。然后将一个训练样本的输入矢量X 输入感知机中,并利用公式 和 计算其推论输出矢量Y= [Y1, Y2, …, Ym]。此网路利用由训练样本输入之目标输出矢量T 和透过网路推得的推论输出矢量Y 相较之下的误差,作为修正连结中的加权值的依据,以从训练样本中学习隐含的输入矢量与输出矢量之对应关系。差距量 δ j 计算公式:δ j=T j-Y j 若 δ j > 0,表示推论输出变数Y j 小于目标输出变数T j,根据公式 得知连结加权值W ij 太小,故应增加W ij 的值。相反的,若 δ j < 0,表示推论输出变数Y j 大于目标输出变数T j,根据公式 得知连结加权值W ij 太大,故应减少W ij 的值。加权值之改变量公式可表达:△W ij =ηXi 其中,η 为学习速(learning rate),控制每次加权值改变量的幅度。公式 中,加权值之改变量也应与输入讯号 Xi 成正比,因为讯号越大,其修正量也应越大。同理,输出单元的门坎值改变量公式计算:△θj =-j神经网路的学习过程,通常以一次一个训练样本的方式进行,直到学习完所有的训练样本为止,称为一个学习循环(learning cycle)。加权值与门坎值的修正可采用逐步学习(step learning)或批次学习(batch learning),逐步学习是每输入一个训练样本,计算其加权值与门坎值的修正量后立即修改。而批次学习是在一个学习循环后,计算所有训练样本的加权值与门坎值的修正量后,依下列公式计算其整体修正量而修改之。
E 定义如下:
学习过程:
- 设定网路参数。
- 以均布随机随机数设定加权值矩阵W,与偏权值矢量 初始值。
- 输入一个训练样本的输入矢量 X 与目标输出矢量 T。
- 计算推论输出矢量 Y。
- 计算差距量 δ。
- 计算加权值矩阵修正量ΔW,以及偏权值矢量修正量 Δθ。
- 更新加权值矩阵W,以及偏权值矢量 θ。
- 重复步骤3 至步骤7 直至到收敛或执行一定数目的学习循环。