BP(Back Propagation)神经网络及Matlab矩阵实现

本文详细介绍了BP(Back Propagation)神经网络的矩阵推导过程,并提供了具体的Matlab实现。从多层网络的结构到性能指标,再到梯度计算、最速下降法和敏感度矩阵的计算,文章覆盖了BP网络的关键概念。最后,通过一个逼近函数的实例展示了Matlab程序的运行过程,探讨了如何调整参数以优化结果。

BP(Back Propagation)神经网络及Matlab矩阵实现

 

1、简介

人工神经网络是一种应用类似于大脑神经突触联接的结构进行信息处理的数学模型。在工程与学术界也常直接简称为“神经网络”或类神经网络。神经网络是一种运算模型,由大量的节点(或称“神经元”,或者“单元”)和之间相互联接构成。人工神经网络通常可以分为两类:依学习策略分类的网络(包含监督式学习网络(Supervised Learning Network)、无监督式学习网络(Unsupervised Learning Network)、混合式学习网络(Hybrid Learning Network)、联想式学习网络(Associate Learning Network)以及最适化学习网络(Optimization Application Network));依网络架构分类的网络(前向式架构(Feed Forward Network)、回馈式架构(Recurrent Network)以及强化式架构(Reinforcement Network))。

本文主要是对神经网络中的前向式网络进行Matlab实现(尽量使用矩阵操作)。

BP神经网络由以下的优点:

(1)、经证明可以实现任意复杂的非线性函数。

(2)、具有较强的学习能力以及一定的推广、概括能力。

(3)、实现简单,已应用于许多大型系统中。

在拥有以上优点的同时,BP神经网络仍有其缺点:

(1)、收敛速度较慢。

(2)、易于陷入局部极小,易出现过拟合现象。

(3)、网络结构的选择尚无完整的理论指导,一般只能由经验决定。

 

2、BP神经网络的相关矩阵推导

2.1、多层网络

假设网络具有M层(包含输入层),并使用0到M-1标记各层,则可以用下式来表示本网络:

BP神经网络矩阵形式2.1公式1   BP神经网络矩阵形式2.1公式2

其中BP神经网络矩阵形式2.1公式3表示由第m层神经元输出组成的矩阵,BP神经网络矩阵形式2.1公式4为第m及m+1层神经元之间的连接矩阵,BP神经网络矩阵形式2.1公式5是由第m+1层中神经元所对应偏移值组成的矩阵,BP神经网络矩阵形式2.1公式6是由第m+1层中各神经元对应的激活函数组成的矩阵,BP神经网络矩阵形式2.1公式7表示第m层神经元的数目。由此可以看出,网络第零层为特征输入层(由P表示),第M层为最终输出层。

BP神经网络矩阵形式2.1公式8

BP神经网络矩阵形式2.1公式9

2.2、性能指标

网络训练集由下式表示:

BP神经网络矩阵形式2.2公式1

网络实际输出与期望输出的均方差可以表示为:

BP神经网络矩阵形式2.2公式2

均方差的向量形式为:

BP神经网络矩阵形式2.2公式3

单样本下,均方差的向量形式为:

BP神经网络矩阵形式2.2公式4

网络的更新(使用最速下降法)可近似表示为:

BP神经网络矩阵形式2.2公式5

BP神经网络矩阵形式2.2公式6

其中α(alpha)表示网络的学习率。

2.3、规则链

BP神经网络矩阵形式2.3公式1

样例:

BP神经网络矩阵形式2.3公式2   BP神经网络矩阵形式2.3公式3   BP神经网络矩阵形式2.3公式4

BP神经网络矩阵形式2.3公式5

将规则链应用到梯度计算可得:

BP神经网络矩阵形式2.3公式6   BP神经网络矩阵形式2.3公式7

2.4、梯度计算

第m层中第i个神经元的输出(未经过激励函数)为:

BP神经网络矩阵形式2.4公式1

BP神经网络矩阵形式2.4公式2   BP神经网络矩阵形式2.4公式3

这里定义敏感度:

BP神经网络矩阵形式2.4公式4

梯度:

BP神经网络矩阵形式2.4公式5   BP神经网络矩阵形式2.4公式6

2.5、最速下降操作

BP神经网络矩阵形式2.5公式1   BP神经网络矩阵形式2.5公式2

矩阵形式表示为:

BP神经网络矩阵形式2.5公式3   BP神经网络矩阵形式2.5公式4

BP神经网络矩阵形式2.5公式5

2.6、雅克比矩阵

BP神经网络矩阵形式2.6公式1

BP神经网络矩阵形式2.6公式2

BP神经网络矩阵形式2.6公式3

BP神经网络矩阵形式2.6公式4

BP神经网络矩阵形式2.6公式5

BP神经网络矩阵形式2.6公式6

2.7、网络的反向传播(层间敏感度矩阵的推导)

BP神经网络矩阵形式2.7公式1

BP神经网络矩阵形式2.7公式2

首先计算网络末层的敏感度矩阵BP神经网络矩阵形式2.7公式3,然后可以反向计算各个前层的敏感度矩阵,直至网络第一层的敏感度矩阵(这里应该注意到:网络其实还包括第零层)。

BP神经网络矩阵形式2.7公式4

2.8、敏感度矩阵的初始化

BP神经网络矩阵形式2.8公式1

BP神经网络矩阵形式2.8公式2

BP神经网络矩阵形式2.8公式3

BP神经网络矩阵形式2.8公式4

2.9、网络训练算法简述

前向传播:

BP神经网络矩阵形式2.1公式8

BP神经网络矩阵形式2.1公式1   BP神经网络矩阵形式2.1公式2

BP神经网络矩阵形式2.1公式9

反向传播:

BP神经网络矩阵形式2.8公式4

BP神经网络矩阵形式2.7公式2   BP神经网络矩阵形式2.9公式1

权值更新:

BP神经网络矩阵形式2.5公式3   BP神经网络矩阵形式2.5公式4

 

3、BP神经网络的Matlab矩阵实现

以下给出了一个按照本文第二部分所示公式编写的Matlab程序

程序的输出图形如下:

BP神经网络矩阵形式3图1

为了使运行的结果更好,这里可以更改程序中的相关参数。由于网络的初始权重及阈值是随机的,因此得到的每一次程序结果图或多或少都会有一点不同。

 

4、参考内容

(1)、http://zh.wikipedia.org/wiki/%E4%BA%BA%E5%B7%A5%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C

(2)、http://blog.donews.com/elite/archive/2007/11/23/1230721.aspx

(3)、http://www.hudong.com/wiki/BP%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C

(4)、http://hagan.okstate.edu/nnd.html

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值