人工神经网络(artificial neural network,缩写ANN),简称神经网络(neural network,缩写NN),是一种模仿生物神经网络的结构和功能的数学模型或计算模型。神经网络由大量的人工神经元联结进行计算。大多数情况下人工神经网络能在外界信息的基础上改变内部结构,是一种自适应系统。现代神经网络是一种非线性统计性数据建模工具,常用来对输入和输出间复杂的关系进行建模,或用来探索数据的模式。
神经网络是一种运算模型,由大量的节点(或称“神经元”, 或“单元”)和之间相互联接构成。每个节点代表一种特定的输出函数,称为激励函数(activation function)。每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重(weight),这相当于人工神经网络的记忆。网络的输出则 依网络的连接方式,权重值和激励函数的不同而不同。而网络自身通常都是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。
图1
- a1~an为输入向量的各个分量
- w1~wn为神经元各个突触的权值
- b为偏置
- f为传递函数,通常为非线性函数。一般有traingd(),tansig(),hardlim()。以下默认为hardlim()
- t为神经元输出
数学表示t=f(WA'+b)
- W为权向量
- A为输入向量,A'为A的转置
- b为偏置
- f为传递函数
可见,一个神经元的功能是求得输入向量与权向量的内积后,经一个非线性传递函数得到一个标量结果。
单个神经元的作用:把一个n维向量空间用一个超平面分割成两部分(称之为判断边界),给定一个输入向量,神经元可以判断出这个向量位于超平面的哪一边。
该超平面的方程:Wp+b=0
- W权向量
- b偏置
- p超平面上的向量
工作原理
人工神经网络首先要以一定的学习准则进行学习,然后才能工作。现以人工神经网络对手写“A”、“B”两个字母的识别为例进行说明,规定当“A”输入网络时,应该输出“1”,而当输入为“B”时,输出为“0”。
所以网络学习的准则应该是:如果网络作出错误的判决,则通过网络的学习,应使得网络减少下次犯同样错误的可能性。首先,给网络的各连接权值赋予(0,1)区间内的随机值,将“A”所对应的图象模式输入给网络,网络将输入模式加权求和、与门限比较、再进行非线性运算,得到网络的输出。在此情况下,网络输出为“1”和“0”的概率各为50%,也就是说是完全随机的。这时如果输出为“1”(结果正确),则使连接权值增大,以便使网络再次遇到“A”模式输入时,仍然能作出正确的判断。
普通计算机的功能取决于程序中给出的知识和能力。显然,对于智能活动要通过总结编制程序将十分困难。
人工神经网络也具有初步的自适应与自组织能力。在学习或训练过程中改变突触权重值,以适应周围环境的要求。同一网络因学习方式及内容不同可具有不同的功能。人工神经网络是一个具有学习能力的系统,可以发展知识,以致超过设计者原有的知识水平。 通常,它的学习训练方式可分为两种,一种是有监督或称有导师的学习,这时利用给定的样本标准进行分类或模仿;另一种是无监督学习或称无为导师学习,这时,只规定学习方式或某些规则,则具体的学习内容随系统所处环境 (即输入信号情况)而异,系统可以自动发现环境特征和规律性,具有更近似人脑的功能。
基本结构
一种常见的多层结构的前馈网络(Multilayer Feedforward Network)由三部分组成,
- 输入层(Input layer),众多神经元(Neuron)接受大量非线形输入信息。输入的信息称为输入向量。
- 输出层(Output layer),信息在神经元链接中传输、分析、权衡,形成输出结果。输出的信息称为输出向量。
隐藏层(Hidden layer),简称“隐层”,是输入层和输出层之间众多神经元和链接组成的各个层面。隐层可以有多层,习惯上会用一层。隐层的节点(神经元)数目不定,但数目越多神经网络的非线性越显著,从而神经网络的强健性(robustness)(控制系统在一定结构、大小等的参数摄动下,维持某些性能的特性。)更显著。习惯上会选输入节点1.2至1.5倍的节点。
单层神经元网络
是最基本的神经元网络形式,由有限个神经元构成,所有神经元的输入向量都是同一个向量。由于每一个神经元都会产生一个标量结果,所以单层神经元的输出是一个向量,向量的维数等于神经元的数目。示意图:
种类
人工神经网络分类为以下两种:
1.依学习策略(Algorithm)分类主要有:
- 监督式学习网络(Supervised Learning Network)为主
- 无监督式学习网络(Unsupervised Learning Network)
- 混合式学习网络(Hybrid Learning Network)
- 联想式学习网络(Associate Learning Network)
- 最适化学习网络(Optimization Application Network)
2.依网络架构(Connectionism)分类主要有:
- 前向式架构(Feed Forward Network)
- 回馈式架构(Recurrent Network)
- 强化式架构(Reinforcement Network)
(1) 前馈神经网络 ( Feedforward Neural Networks )
前馈网络也称前向网络。这种网络只在训练过程会有反馈信号,而在分类过程中数据只能向前传送,直到到达输出层,层间没有向后的反馈信号,因此被称为前馈网络。感知机( perceptron)与BP神经网络就属于前馈网络。
图2 中是一个3层的前馈神经网络,其中第一层是输入单元,第二层称为隐含层,第三层称为输出层(输入单元不是神经元,因此图中有2层神经元)。
图2. 前馈神经网络
对于一个3层的前馈神经网络N,若用X表示网络的输入向量,W1~W3表示网络各层的连接权向量,F1~F3表示神经网络3层的激活函数。
那么神经网络的第一层神经元的输出为:
O1 = F1( XW1 )
第二层的输出为:
O2 = F2 ( F1( XW1 )W2 )
输出层的输出为:
O3 = F3( F2 ( F1(XW1 ) W2 ) W3 )
若激活函数F1~F3都选用线性函数,那么神经网络的输出O3将是输入X的线性函数。因此,若要做高次函数的逼近就应该选用适当的非线性函数作为激活函数。
(2) 反馈神经网络 ( Feedback Neural Networks )
反馈型神经网络是一种从输出到输入具有反馈连接的神经网络,其结构比前馈网络要复杂得多。典型的反馈型神经网络有:Elman网络和Hopfield网络。
图3. 反馈神经网络
(3) 自组织网络 ( SOM ,Self-OrganizingNeural Networks )
自组织神经网络是一种非监督学习网络。它通过自动寻找样本中的内在规律和本质属性,自组织、自适应地改变网络参数与结构。
图4. 自组织网络
神经网络工作方式
神经网络运作过程分为学习和工作两种状态。
神经网络的学习状态
网络的学习主要是指使用学习算法来调整神经元间的联接权,使得网络输出更符合实际。学习算法分为有导师学习( Supervised Learning )与无导师学习(Unsupervised Learning )两类。
有导师学习算法将一组训练集 (training set )送入网络,根据网络的实际输出与期望输出间的差别来调整连接权。有导师学习算法的主要步骤包括:
1) 从样本集合中取一个样本(Ai,Bi);
2) 计算网络的实际输出O;
3) 求D=Bi-O;
4) 根据D调整权矩阵W;
5) 对每个样本重复上述过程,直到对整个样本集来说,误差不超过规定范围。
BP算法就是一种出色的有导师学习算法。
无导师学习抽取样本集合中蕴含的统计特性,并以神经元之间的联接权的形式存于网络中。
参考:
http://www.cnblogs.com/heaad/archive/2011/03/07/1976443.html
http://baike.baidu.com/link?url=3_x7kRkNaXqTL-eaTx8zSC4B-Qxcw10oLjw1Ir7Bv65M8yIUitWh569-p1HtweiE
http://baike.baidu.com/link?url=CURTUDCOTSwtCHOITm3MD5c_GHhXlkBxvCVClc598kAjIrSXTG7nEuFDnfUI-9gQ