人工神经网络简介.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
人工神经网络简介
一、人工神经网络的发展
⑴Mcculloch(生理学家)和Pitts(数理逻辑学家)1943年首次提出神经网络数学模型;M-P数学模型,神经元的数学模型。
⑵Von Neumann冯·诺依曼模型
⑶50年代,F·Rosenblatt单层网络,可学习——感知机
⑷1962年Widraw提出自适应线性元件网络
⑸Hopfield1982和1984年发表论文,将能量函数引入神经网络计算——HNN模型
⑹1986年Rumelhart提出PDP理论,解决中间层神经元权的调整问题,并行分布式,——多层网络的反向传播算法。
BP——Error Back Propagation误差反向传播算法(前向网络的一种)
二、神经元的特点
⑴神经元是一个多输入、单输出的元件
⑵神经元是一个具有非线性的元件
⑶神经元具有可塑性,传递强度可变
⑷神经元的输出是每个输入综合的结果
三、人工神经网络特点
⑴分步存储与容错性
⑵并行处理
⑶信息处理与存储合二为一
⑷层次性与系统性 四、BP 人工神经网络
1、BP 网络的学习过程 ⑴模式的顺向传播过程 ⑵误差的逆向传播过程
⑶记忆训练过程:⑴、⑵的交替过程 ⑷学习的收敛过程:E->min 2、输入输出变换函数:f(x) ①阶跃函数:
f(x)=⎩⎨⎧<≥0x 00x 1 (不可导)
输入层 隐含层 输出层 n 个 W ij p 个 V jt q 个
y 1
y t
y q
②S 型函数
f(x)= x
e μ-+11
(可导)
③比例函数 f(x)=kx ④符号函数
f(x)= ⎩⎨⎧<-≥0x 10x
1
⑤饱和函数
f(x)= ⎪⎪
⎪
⎩
⎪
⎪
⎪⎨⎧
-<-<<>k k x kx 1x 11k 1- k 1x 1
⑥双曲函数
f(x)=x
e e x
μμ+--11
3、M-P
输入向量:12n 权值向量:W=(w 1,w 2,…,w n ) 阈值:θ
输出:y=f(∑=-n
i i i x w 1
θ)
若f(x)为阶跃函数
则f(x)=⎩
⎨⎧<≥0x 00
x 1
5、BP 网络学习算法
⑴变量假定:
输入: A k =(a 1k ,a 2k ,…,a n k ) 希望输出: Y k =(y 1k ,y 2k ,…,y q k ) 中间层神经元输入: S k =(s 1k ,s 2k ,…,s p k )
中间层神经元输出: B k =(b 1k ,b 2k ,…,b p k
) 输出层神经元输入: L k =(l 1k ,l 2k ,…,l q k ) 输出层神经元实际输出:C k =(c 1k ,c 2k ,…,c n k ) 中间层神经元阈值: θj (j=1,2,…,p) 输出层神经元阈值: γt (t=1,2,…,q)
S 型函数: f(x)=1/(1+e -x ),f '(x)=f(x)[1-f(x)] (中间层两端可取不同函数,但此处相同。
)
输入层与中间层连接权值:w ij (i=1,2,…,n,j=1,2,…,p) 中间层与输出层连接权值:v jt (j=1,2,…,p,t=1,2,…,q) ⑵模式顺传播过程:
中间层神经元输入: S j =j i ij n
i a w θ-∑=1 (j=1,2,…,p)
中间层神经元输出: B j =f 1(s j ) (j=1,2,…,p) 输出层神经元输入: L t =t j jt p
j b v γ-∑=1(t=1,2,…,q)
输出层神经元实际输出: C t =f 2(L t ) (t=1,2,…,q)
误差函数: E k =∑=-q
t k t k t c y 12)(21->min
权值调整:
k j k t k t b L f c y v L L c c E v c c E v E v t jt
t
t t t k jt t t k jt k jt )()('2-=∂∂∙∂∂∙∂∂-=∂∂∙∂∂-=∂∂-=∆αααα
(按负梯度方向变化或梯度下降原则,应使jt
k
jt v E v ∂∂∆与的负值成正比例变化,优化算法中得到。
)
i
jt ij k ij k ij k ij k ij k ij k ij k ij k ij a s f v L f c y w s s b b L L c c E w b b L L c c E w L L c c E w c c E w c c E w c c E w c c E w E w k
j q
t k t k t k t q
t k j k j k j k j k t
k t k t k t
q
t k j k j k t
k t k t k t
q
t q t k t
k t k t k t
k t k t k q
k q k
k k k )(])()[(]
[]
[][]
['11'211112211∑∑∑∑∑=====-=∂∂∙∂∂∙∂∂∙∂∂∙∂∂-=∂∂∙∂∂∙∂∂∙∂∂-=∂∂∙
∂∂∙∂∂-=⎥⎦⎤⎢⎣⎡∂∂∙∂∂-=∂∂∙∂∂++∂∂∙∂∂+∂∂∙∂∂-=∂∂-=∆βββββββ
(w ij 对所有输出都有影响,与Δv jt 不同。
)
令d t k =(y t k -c t k )f 2'(L t k )=δt k f 2’(输出层广义误差,=
t
k
L E ∂∂) 则Δv jt =αd t k b j k
—Hebb 规则(α—学习率,d t —广义误差,b j —输入)
Δw ij =k
i k j q
t k t a s f v d jt )(]['11
∑=β
令e j k
=)(]['11
k j q
t k t s f v d jt ∑= (广义误差)
则Δw ij =βe j k a i k (Hebb 学习规则,β学习率)
后层误差加权后传向前层误差d t k −→−jt v e j
k 阈值修正值: Δγt =αd t k Δθj =βe j k
6、BP 网络学习算法流程图
⑴初始化{}
{}{}{}t j jt ij v w γθ赋予[-1,+1]间随机值 ⑵随机选取一模式对(A k ,y k )提供给网络
⑶计算中间层单元的输入与输出 S j =j i ij n
i a w θ-∑=1 (i=1,2,…,n )
B j =f 1(s j ) (j=1,2,…,p) ⑷计算输出层单元的输入及输出 L t =t p
j j jt b v γ-∑=1 (t=1,2,…,q)
C t =f 2(L t )
⑸计算输出层一般误差
d t k =(y t k -c t )f 2'(L t ) (t=1,2,…,q) ⑹计算中间层各单元一般化误差
e j k
=)(]['11
j jt t s f v d q
t ∑=
⑺权值修正
v jt (N+1)= v jt (N) +αd t k b j (j=1,2,…,p) γt (N+1)= γt (N)+αd t k (t=1,2,…,q) w ij (N+1)= w ij (N)+βe j k a i k θj (N+1)= θj (N)+βe j k
⑻随机选取一个学习模式提供给网络,返回⑶,直到m 个模式训练完毕 ⑼重新从m 个模式对中随机选取一个模式对重返⑶,直到全局误差ε<=∑=m
k k E E 1。