BP
This presentation is the property of its rightful owner.
Sponsored Links
1 / 66

BP 神经网络 PowerPoint PPT Presentation


  • 128 Views
  • Uploaded on
  • Presentation posted in: General

BP 神经网络. The Backpropagation Neural Network. Werbos 于 1974 年, Parker 于 1985 年, Rumelhart 等人于 1986 年各自独立地提出了误差往回传播的思想和算法。. 之后, BP 网络迅速成为最流行的神经计算模型,并得到极其广泛的应用。. 内容要点. 1 BPN 的体系结构. 2 BPN 的工作算法. 3 BP 学习算法. 4 BPN 表达 (1):映射实现. 5 BPN 表达 (2):泛化. 第一节. BPN 的体系结构.

Download Presentation

BP 神经网络

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Bp

BP 神经网络

The Backpropagation Neural Network


Bp

Werbos 于 1974 年,Parker 于 1985 年,Rumelhart 等人于 1986 年各自独立地提出了误差往回传播的思想和算法。

之后,BP 网络迅速成为最流行的神经计算模型,并得到极其广泛的应用。

The BP Neural Network


Bp

内容要点

1BPN 的体系结构

2BPN 的工作算法

3BP 学习算法

4BPN 表达 (1):映射实现

5BPN 表达 (2):泛化

The BP Neural Network


Bp

第一节

BPN 的体系结构

The Configuration

of the BPN

The BP Neural Network


Bp

x1

w1

x2

w2

v

o

f(v)

xm

wm

图 6.1 BPN 神经元

BPN 的神经元 (1)

  • BPN 神经元结构:

其中:

wi: 联结强度系数

: 阈值

: 整合函数

v: 膜电位

f(v): 传递函数

The BP Neural Network


Bp

x1

w1

x2

w2

v

o

f(v)

xm

wm

图 6.1 BPN 神经元

BPN 的神经元 (2)

  • BPN 神经元结构:

  • 整合运算:求人工神经元的膜电位

整合即加权求和:

The BP Neural Network


Bp

x1

w1

o

1.0

x2

w2

v

o

0.5

v

0

xm

wm

图 6.2 Sigmoid 神经元

BPN 的神经元 (3)

  • BPN 神经元的 Sigmoid 传递函数 (1):

The BP Neural Network


Bp

x1

w1

o

1.0

x2

w2

v

o

v

0

-1

xm

wm

图 6.3 Sigmoid 神经元

BPN 的神经元 (4)

  • BPN 的神经元的 Sigmoid 传递函数 (2):

The BP Neural Network


Bp

O Layer

  • 输入层

Input Layer

H Layer

  • 隐含层

Hidden Layer

  • 输出层

I Layer

Ouptut Layer

图 6.4 BPN 结构

BPN 的拓扑结构 (1)

如图 6.3 所示,结构上,BPN 与感知器一样被设想为一个三元组:

The BP Neural Network


Bp

(1)

(2)

(L-1)

(L)

6.5

BPN

x1

y1

x2

y2

xm

yn

W(2)

W(L)

Input Layer

Hidden Layer

Output Layer

BPN 的拓扑结构 (2)

  • BPN 是一种前向型人工神经网络:

The BP Neural Network


Bp

第二节

BPN 工作算法

BPN

Working Algorithm

The BP Neural Network


Bp

BPN 算法的变量定义 (1)

  • 符号与记法:

  • BPN 层数:L

  • 第 l层神经元数:nl (1lL)

  • 第 l层第 i个神经元:Ni(l) (1inl, 1lL)

  • 第 l层神经元:N(l)={Ni(l)︱i=1,2,…, nl} (1lL)

  • BPN 输入向量:X=(x1,x2,…,xm)T

  • BPN 输出向量:Y=(y1,y2,…,yn)T

The BP Neural Network


Bp

  • N(l) 输出向量 / N(l+1) 输入向量 :

其中,oi(l) 为 Ni(l)的输出,O(L)=Y

  • N(l) 电位向量:

其中,vi(l) 为 Ni(l)的膜电位

BPN算法的变量定义(2)

  • 符号与记法:

The BP Neural Network


Bp

  • N(l-1)Nj(l) (1jnl, 2lL) 联系效率向量:

  • Ni(l-1)Nj(l) 联系效率:wij(l)

(1inl-1, 1jnl, 2lL)

  • N(l-1)N(l)(2lL) 联系效率矩阵:

BPN算法的变量定义(3)

  • 符号与记法:

The BP Neural Network


Bp

  • N(l)(1lL) 阈值向量:

BPN算法的变量定义(4)

  • 符号与记法:

  • Ni(l)(1inl, 1lL) 传递函数:fi(l)

  • 如果限定每层的神经元具有相同的传递函数,则定义,N(l)(1lL) 传递函数:f(l)

The BP Neural Network


Bp

BPN 的工作算法 WA 描述 BPN 由给定输入信号产生输出信号的过程,即:

WA:XY

BPN 的工作算法 (1)

作为前向型网络,BPN 的信号由输入层,一层一层地向前传递,直至传递到输出层,并产生其输出信号。

BPN 工作时信号前馈的信息处理方式是前向型网络 (Feed-forward Network) 的特征。

The BP Neural Network


Bp

O(2)

O(L-1)

O(1)

O(L)

X

Y

WA:XY

BPN 的工作算法 (1)

BPN 信息的前馈过程为:

BPN 第一层每一个神经元只有一个输入端子,接收其对应输入信号,与输入信号的联结效率为 1。

BPN 第一层神经元只对输入信号 X 进行处理工作,并将输入信号 X 分配给隐含层。

The BP Neural Network


Bp

输入:

循环:from l=2 to l=L

(j=1,2,…,nl)

输出:

BPN 的工作算法 (2)

  • 标量工作算法:

The BP Neural Network


Bp

输入:

循环:from l=2 to l=L

输出:

BPN 的工作算法 (3)

  • 向量工作算法:

The BP Neural Network


Bp

第三节

BP 学习算法

BP Learning Algroithm

The BP Neural Network


Bp

引述

BP 学习算法 (Backpropagation Training Algorithm) 是一种监督学习算法 (Supervised Learning Algorithm)。

与感知器一样,BPN 学习的学习过程是:从样本中选取输入模式作为 BPN 的输入,并测试其输出,即测试实际输出与期望输出的一致性,以指导 BPN 权值和阈值的修改。

与感知器一样,BPN 学习的目标是使感知器表达某种映射。

The BP Neural Network


Bp

阈值的处理

为了 BP 算法的简单性,我们需要将 BPN 的阈值与权值统一起来。

为了将阈值与权值的调节统一起来,我们需要对 BPN 的阈值进行处理,将其转化为权值。

阈值的变换来自于 BPN 结构上的等价变换和工作算法的等价变换。

在 BPN 上附加结点是解决问题的方法。

附加神经元输出恒等于 1,无输入。

The BP Neural Network


Bp

6.6

BPN

o0(2)=1

o0(L-1)=1

o0(1)=1

x1

y1

x2

y2

xm

yn

~

~

W(L)

W(2)

阈值的处理(2)

The BP Neural Network


Bp

  • N(l) 输出扩展向量 / N(l+1) 输入扩展向量 :

阈值的处理 (3)

  • 符号与记法:

  • 附加神经元: N0(l) (1lL-1)

  • 附加神经元的输出: o0(l)=1(1lL-1)

The BP Neural Network


Bp

  • N0(l-1)Nj(l) 联系效率:w0j(l) =-j(l)

  • N(l-1)Nj(l) (1jnl+1, 2lL) 扩展权值向量:

(1jnl, 2lL)

  • N(l-1)N(l)(2lL) 扩展权值矩阵:

阈值的处理 (4)

  • 符号与记法:

The BP Neural Network


Bp

输入:

循环:from l=2 to l=L

(j=1,2,…,nl)

输出:

阈值的处理 (5)

  • 标量工作算法:

The BP Neural Network


Bp

输入:

循环:from l=2 to l=L

输出:

阈值的处理 (6)

  • 向量工作算法:

The BP Neural Network


Bp

定义:(能量函数) 设有样本集合

其中,(X(s),Y(s)) 为第 s个样本对:

(1) X(s)=(x1(s),x2(s),…,xm(s))T:样本输入模式

(2) Y(s)=(y1(s),y2(s),…,yn(s))T:样本期望输出

N为样本数,s为样本序号。

能量函数 (1)

The BP Neural Network


Bp

记 X(k,s)=X(s)为 BPN 在第 k (0) 轮对第 s个样本进行学习时的输入,其产生的输出为:

期望输出与实际输出的差为:

则 BPN 第 k轮学习的能量函数定义为:

能量函数 (2)

The BP Neural Network


Bp

如果我们定义 BPN 第 k轮对第 s个样本的能量函数为:

则 BPN 第 k轮学习的能量函数可写作:

能量函数 (3)

The BP Neural Network


Bp

能量函数的梯度与权值

BPN 能量函数即 BPN 关于误差的性能函数。

BPN 学习的基本目标,就是通过修正或调节 BPN 中神经元的联结系数和神经元的阈值,使其能量函数趋于极小。

按梯度下降的原则,若能求得 BPN 能量函数对权值的偏导数,则可如下调节权值。

The BP Neural Network


Bp

复合函数求导问题 (1)

设有二元复合函数:

z 关于 s和 t的偏导数为:

The BP Neural Network


Bp

复合函数求导问题 (2)

一般地,设有 n 元复合函数:

其关于 i (i=1,2,…,m) 的偏导数为:

The BP Neural Network


Bp

n 元复合函数:

的运算可以用一个网络来描述。

图 6.7 复合函数运算网络

复合函数求导问题中

蕴含的误差反馈思想 (1)

假设 y代表网络输出误差,则这一误差可能来自 xj (j=1,2,…,m)的误差和/或 i (i=1,2,…,n) 的误差。

The BP Neural Network


Bp

y/xj 是可以直接计算的:

图 6.7 复合函数运算网络

复合函数求导问题中

蕴含的误差反馈思想 (2)

根据梯度下降原理,y关于 xj (j=1,2,…,n)的导数 y/xj 意味着 xj 关于 y的误差。

这一公式意味着误差 y 传递给了 xj (j=1,2,…,n)。

The BP Neural Network


Bp

y/i 需要通过复合函数求导公式间接计算:

图 6.8 复合函数运算网络

复合函数求导问题中

蕴含的误差反馈思想 (3)

同样,y关于 i (i=1,2,…,m)的导数 y/i 意味着 i 关于 y的误差。

这一公式意味着 i 关于 y的误差与误差 y 传递给 xj (j=1,2,…,n) 的误差 y/xj 和 xj 关于 i的误差相关,既, y 的误差传递给 xj后现在又传递到了 i。

The BP Neural Network


Bp

由梯度下降原理可知 xj ~ y/xj,即:

复合函数求导问题中

蕴含的误差反馈思想 (4)

The BP Neural Network


Bp

同样,i ~ y/i,即:

这就是误差反馈。

复合函数求导问题中

蕴含的误差反馈思想 (5)

The BP Neural Network


Bp

图 6.9 能量复合函数

BPN 能量函数求导问题 (1)

BPN 能量函数可视为复合函数

其关于 oi(l-1) (i=1,2,…,nn-1) 的偏导数为:

The BP Neural Network


Bp

BPN Delta 算法 (1)

定义 Nj(l)(1jnl, 2lL) 的 Delta 函数:

j(l)(k,s) 意味着 BPN 第 k轮第 s个样本学习时第 l 层第 j个神经元产生的误差。

The BP Neural Network


Bp

BPN Delta 算法 (2)

因为 yi =yi(s)-oi(L),故对于输出层,即 l=L时:

The BP Neural Network


Bp

BPN Delta 算法 (3)

对于隐含层,即 1<l<L时:

The BP Neural Network


Bp

BPN Delta 算法 (4)

统一的 BPN Delta 算法:

BPN Delta 算法显示,第 l 层的误差,可由第 l+1层的误差来计算。即:

这就是 BP 算法的误差往回传播思想。

The BP Neural Network


Bp

BPN 权值修正算法 (1)

设定学习因子 ,依梯度下降原理:

The BP Neural Network


Bp

BPN 权值修正算法 (2)

如果令:

则 BPN 权值修正算法可记作:

The BP Neural Network


Bp

BPN 权值修正算法

对于 BPN 权值修正算法:

可变换为如下形式吗?

The BP Neural Network


Bp

前馈

运算

BP 算法 (1)

  • BP 算法实现 (1)

step 1. Set k=0, and initialize , , W and .

step 2. Set s=1 and E=0.

step 3. Input X=X(s) to BPN, and generate Y.

step 4. Set j=1.

step 5. Calculate E=E+0.5(yj(s)-yj)2.

step 6. If j < n, then j=j+1 and go to step 5.

step 7. If s < N, then s=s+1, and go to step 3.

step 8. Test BPN, and if E, stop.

The BP Neural Network


Bp

反馈

运算

BP 算法 (2)

step 9. Set s=1 and W(l)(k)=0.

step 10. Input X=X(s) to BPN, and generate Y.

step 11. Set l=L.

step 12. Set j=1.

step 13. Calculate j(l).

step 14. Set i=0.

step 15. Calculate wij(k,s).

step 16. If i < nl-1, then i=i+1 and go to step 15.

step 17. If j < nl, then j=j+1 and go to step 13.

step 18.W(l)(k)= W(l)(k)+ W(l)(k,s).

step 19. If l > 2, then l=l-1 and go to step 12.

step 20. If s < N, then s=s+1, and go to step 10.

step 21.W(l)(k+1)= W(l)(k)+ W(l)(k).

step 22.k=k+1, go to step 2.

The BP Neural Network


Bp

前馈

运算

BP 算法 (3)

  • BP 算法实现 (1)

step 1. Set k=0, and initialize , , W and .

step 2. Set s=1 and E=0.

step 3. Input X=X(s) to BPN, and generate Y.

step 4. Memorize all information generated with X(s).

step 5. Set j=1.

step 6. Calculate E=E+0.5(yj(s)-yj)2.

step 7. If j < n, then j=j+1 and go to step 6.

step 8. If s < N, then s=s+1, and go to step 3.

step 9. Test BPN, and if E, stop.

The BP Neural Network


Bp

反馈

运算

BP 算法 (4)

step 10. Set s=1 and W(l)(k)=0.

step 11. Set l=L.

step 12. Set j=1.

step 13. Calculate j(l).

step 14. Set i=0.

step 15. Calculate wij(k,s).

step 16. If i < nl-1, then i=i+1 and go to step 15.

step 17. If j < nl, then j=j+1 and go to step 13.

step 18.W(l)(k)= W(l)(k)+ W(l)(k,s).

step 19. If l > 2, then l=l-1 and go to step 12.

step 20. If s < N, then s=s+1, and go to step 10.

step 21.W(l)(k+1)= W(l)(k)+ W(l)(k).

step 22.k=k+1, go to step 2.

The BP Neural Network


Bp

第四节

BPN 表达 (1)

— 映射实现

BPN Representation

— Mapping Implementation

The BP Neural Network


Bp

BPN 表达问题 (1)

和感知器一样,作为一种计算模型,BPN 表达即 BPN 对某种计算功能的实现。

如果 BPN 模拟了某个自动机器的功能,我们说它表达了这一机器,这是物理表达。

如果 BPN 实现了某个函数或映射,我们说它表达了这一函数或映射,这是数学表达。

The BP Neural Network


Bp

定义:设有 BPN

及某映射,如果对于任意使 f有定义的 X满足 Y = f(X),则称 BPN是 f 的表达。

BPN 表达问题 (2)

任意计算功能的 BPN 表达问题都可以统一为某种映射的实现问题。我们有如下的定义:

The BP Neural Network


Bp

BPN 表达问题 (3)

BP 算法实际上是在执行一项模式分类任务:

即把样本集合 Smpl={(X(s),Y(s))︱s=1,2,…,N} 的输入模式集合 U={X(1),X(2),…,X(N)} 划分为 C (N)个不同的类 {U1,U2,…,UC},每一个类 Uk(1kN)拥有一个类属标志 Yk{Y(1),Y(2),…,Y(N)}。

因此,BPN 所表达问题首先是其学习样本的模式分类问题 T。

The BP Neural Network


Bp

BPN 表达问题 (4)

作为计算模型,BPN 表达了某种映射:

为了实现或表达 T,BP 算法应该使 BPN 对任意 X(s)U,如果 X(s)Uk,成立:

其中,Yk{Y(1),Y(2),…,Y(N)}。

The BP Neural Network


Bp

Sin(x) 函数的 BPN 表达 (1)

以 sin(2x) 函数:

为例,用 BPN 表达 sin(2x) 函数。

给定样本:

The BP Neural Network


Bp

Output

Response

Layer

O

Hidden

Layer

1

I

Stimulus

Layer

Input

Sin(x) 函数的 BPN 表达 (2)

图 6.10 (a) 隐层节点数 n2 = 1 时

O 为样本目标值 / 实线为 sin(x) 函数的 BPN 表达

The BP Neural Network


Bp

Output

Response

Layer

O

Hidden

Layer

1

2

I

Stimulus

Layer

Input

Sin(x) 函数的 BPN 表达 (3)

图 6.10 (b) 隐层节点数 n2 = 2 时

O 为样本目标值 / 实线为 BP 网络实现的正弦函数曲线

The BP Neural Network


Bp

Output

Response

Layer

O

Hidden

Layer

1

2

3

4

I

Stimulus

Layer

Input

Sin(x) 函数的 BPN 表达 (4)

图 6.10 (c) 隐层节点数 n2 = 4 时

O 为样本目标值 / 实线为 BP 网络实现的正弦函数曲线

The BP Neural Network


Bp

Output

Response

Layer

O

Hidden

Layer

1

2

3

4

5

6

7

8

I

Stimulus

Layer

Input

Sin(x) 函数的 BPN 表达 (5)

图 6.10 (d) 隐层节点数 n2 = 8 时

O 为样本目标值 / 实线为 BP 网络实现的正弦函数曲线

The BP Neural Network


Bp

Sin(x) 函数的 BPN 表达 (6)

对于 sin(2x) 函数的 BPN 表达问题,我们首先需要做到的是实现 sin(2x) 函数样本模式的分类任务。

BPN 实现了 sin(2x) 函数的样本模式分类,然而,我们还不能肯定,此时的 BPN 已经表达了,或足够精确地表达了 sin(2x) 函数。

我们还不清楚,是否一定存在某个 BPN,能实现给定的模式分类任务,并能足够精确地表达样本模式分类问题隐含的非线性映射。

The BP Neural Network


Bp

第五节

BPN 表达 (2)

— 泛化问题

BPN Representation

— Generalization Problem

The BP Neural Network


Bp

BPN 的泛化问题 (1)

在 BPN 中,T 被延伸为映射:

的实现问题。

假定 T中包含了 F足够的信息,使 BPN 通过对T中样本的学习,不仅表达了 T,同时也表达了 F,则称 BPN 由 T泛化作 F。

因此,BPN 所表达的或实现东西的可能超过 T,因为 TF。

The BP Neural Network


Bp

BPN 的泛化问题 (2)

如果 F是 L2函数,必定存在某个 BNP,能在任意精度范围内表达 F。

然而,BPN 通过对样本的学习或对模式分类任务 T的表达就一定能实现对 F的表达。

由 T的 BPN 表达实现对 F的 BPN 表达的问题就是 BPN 的泛化 (Generalization) 问题。

The BP Neural Network


Bp

BPN 的泛化问题 (3)

泛化,如同归纳推理,是一个由特殊到一般的过程,对 BPN 而言,是一个由特定的 T到一般化的 F的过程。

从智能计算模型的角度看,BPN 应该具有足够的智能,具有由特殊到一般的逻辑推理的能力。

可见,BPN 的泛化能力与自身的“智慧”或“智能”有关。

The BP Neural Network


Bp

BPN 的泛化问题 (4)

从数学计算模型的角度看,BPN 的泛化必定要求学习样本集合中 Smpl 或 T中包含足够的关于 F的信息。

因此,BPN 的泛化能力又与学习样本或 T 提供的信息有关。

研究显示,BPN 的确具有泛化能力。然而,这种泛化能力是有条件的,显然,它与学习样本的数量和密度有关。

The BP Neural Network


  • Login