人工神经网络算法

好久不见. 提交于 2020-03-12 08:46:40

转载 http://blog.sina.com.cn/s/blog_4910d7c501000ch4.html

人工神经网路

学习是要透过我们的头脑,因而研究大脑神经细胞的运作,可以帮助我们了

解学习在脑神经是如何完成的,进而可以模拟神经细胞的运作以达到類似学习的

功能。据估计人脑约有一千亿(1011)个神经细胞,每个神经细胞约有一千(103)

根連结与其它神经细胞相連,因此人脑中约有一百万亿(1014)根連结,形成一

个高度連结网狀的神经网路(neural network)。科学家们相信:人脑的信息处理工作即是透过这些連结來完成的 [葉怡成1993]。

神经细胞的形狀与一般的细胞有很大的不同,它包括:细胞体(soma):神经

细胞中呈核狀的处理机构;轴突(axon):神经细胞中呈轴索狀的输送机构;树狀

突(dendrites):神经细胞中呈树枝狀的输出入机构;与突触(synapse):树狀突上呈点狀的連结机构。根据神经学家的研究发现:当神经细胞透过神经突触与树

狀突从其它神经元输入脉波讯号后,经过细胞体处理,产生一个新的脉波讯号。

如果脉波讯号够强,将产生一个约千分之一秒100 毫伏的脉波讯号。这个讯号再

经过轴突传送到它的神经突触,成为其它神经细胞的输入脉波讯号。如果脉波讯

号是经过兴奋神经突触(excitatory synapse),则会增加脉波讯号的速率;相反的,如果脉波讯号是经过抑制神经突触(inhibitory synapse),则会减少脉波讯号的速率。因此,脉波讯号的速率是同时取决于输入脉波讯号的速率,以及神经突触的强度。而神经突触的强度可视为神经网路储存信息之所在,神经网路的学习即在调整神经突触的强度。

 

 

類神经网路(artificial neural networks),或译为人工神经网路,则是指模仿生物神经网路的信息处理系统,它是由许多人工神经细胞(又称为類神经元、人工

神经元、与处理单元)所组成,人工神经细胞,如图15-18 所示。本节将探讨最

古老、也是最基本的類神经网路模式——感知机(perceptron),它是1957 年由

Rosenblatt 所提出。感知机的基本原理是由脑神经模型所启发,特别是1943 年

McCulloch 和Pitts 所共同提出的數学模型,通称为MP 模型,以及Hebb 所提出

的神经元学习规则,通称为Hebb 学习规则。

 

 

MP 模型的要点如下:(1) 神经元的狀态为兴奋或抑制二者之一,可用0 表示

抑制狀态,用1 表示兴奋狀态。(2) 神经元与其它神经元间的連结,可用一个加

权值(weight)表示連结强度。(3) 神经元的狀态会经由連结输出到其它神经元,

成为其输入。(4) 神经元的狀态受其相連的神经元制约,当从这些神经元传來的

输入讯号(即该神经元的狀态)经过連结以加权乘积和计算所得的值大于某门坎

值(threshold)时,神经元的狀态将成为兴奋狀态;否则,为抑制狀态。以公式

表示为:

 

其中,Wij 为神经元 i 与神经元 j 间的連结强度,即連结加权值,Xi 为从神经元

i 传來的输入讯号,θ j 为神经元 j 的门坎值,f 为转换函數(transfer function),

通常为一个阶梯函數(step function),其定义如下:

 

 

(5) 神经网路的学习过程即在调整神经元间的連结强度,即連结加权值。而Hebb

学习规则的要点如下:调整兩个神经元间連结加权值的原则为当第 i 个与第 j 个

神经元同时处于兴奋狀态时,则其連结应当加强。Hebb 学习规则与动物行为科学

中的条件反射学說一致。

感知机的网路架构有兩种,如图15-19 所示,一含有隐藏层,另一种则无。

它们皆包括有输入层与输出层。输入层用以表现网路的输入变數,其处理单元數

目依问题而定,使用线性转换函數 f (X ) = X,亦即输入值即为输出值。隐藏层用

以表现输入处理单元间的交互影响,其处理单元數目通常以实验方式决定其最佳

數目,隐藏层可以有一层以上,也可以没有。输出层用以表现网路的输出变數,

其处理单元的數目依问题而定。输入变數形成一个输入向量,输出变數形成一个

输出向量。

 

图15-19 感知机网路架构

我们以简单的无隐藏层的感知机來說明類神经网路的学习机制。在神经网路

的学习中,样本资料以數值形式表示,每一个样本都包含有输入向量X = [X1, X2, …,Xn] 和目标输出向量T = [T1, T2, …, Tm]。一般将所有的样本资料随机分为兩部分,一部分为训練样本(training samples),另一部分为测试样本(test samples)。首先,将感知机初始化,即给定每一个連结一个随机亂數值。然后将一个训練样本的输入向量X 输入感知机中,并利用公式 (15-6.1) 和 (15-6.2) 计算其推論输出向量Y= [Y1, Y2, …,Ym]。此网路利用由训練样本输入之目标输出向量T 和透过网路推得的推論输出向量Y 相较之下的误差,作为修正連结中的加权值的依据,以从训練样本中学习隐含的输入向量与输出向量之对应关系。差距量 δ j 计算公式如下:

δ j=T j-Y j                                          (15-6.4)

若 δ j > 0,表示推論输出变數Y j 小于目标输出变數T j,根据公式 (15-6.2) 得知連结加权值W ij 太小,故应增加W ij 的值。相反的,若 δ j < 0,表示推論输出变數Y j 大于目标输出变數T j,根据公式 (15-6.2) 得知連结加权值W ij 太大,故应减少W ij 的值。加权值之改变量公式可表达如下:

W ij ηδ Xi                                         (15-6.5)

其中,η 为学习速率(learning rate),控制每次加权值改变量的幅度。公式 (15-6.5)中,加权值之改变量也应与输入讯号 Xi 成正比,因为讯号越大,其修正量也应越大。同理,输出单元的门坎值改变量公式计算如下:

△θj =-ηδj                                            (15-6.6)

類神经网路的学习过程,通常以一次一个训練样本的方式进行,直到学习完

所有的训練样本为止,称为一个学习循环(learning cycle)。加权值与门坎值的修正可采用逐步学习(step learning)或批次学习(batch learning),逐步学习是每输入一个训練样本,计算其加权值与门坎值的修正量后立即修改。而批次学习是在一个学习循环后,计算所有训練样本的加权值与门坎值的修正量后,依下列公式计算其整体修正量而修改之。

 

其中,m 表示第m 个样本,而N 为训練样本总數。一个网路可以将训練样本反复

学习多个循环,直到满足终止条件为止。而终止条件可订为执行一定數目的学习

循环或是网路已收敛(即误差不再有明显变化)。感知机的误差程度可用总错误率

E 定义如下:

 

学习过程:

1. 设定网路參數。

2. 以均布随机亂數设定加权值矩阵W,与偏权值向量  初始值。

3. 输入一个训練样本的输入向量 X 与目标输出向量 T

4. 计算推論输出向量 Y

5. 计算差距量 δ。

6. 计算加权值矩阵修正量ΔW,以及偏权值向量修正量 Δθ。

7. 更新加权值矩阵W,以及偏权值向量 θ。

8. 重复步骤3 至步骤7 直至到收敛或执行一定數目的学习循环。

回想过程:

1. 设定网路參數。

2. 讀入加权值矩阵W 与偏权值向量 θ。

3. 输入一个测试样本的输入向量 X

4. 计算推論输出向量Y

?/P>

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!