神经网络及深度学习(包含matlab代码)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
x1 x2
xj
wi1 wi 2
wij
f
yi
wiN
b
i
xN
图 1-1 人工神经元模型 其中 x j 为神经元 i 的输入信号, wij 为连接权重,b 为外部刺激, f 为激励函数, yi 为
神经元的输出,其输出计算公式如(1.1)。
N yi f wij x j b j 1
X k [ J T ( X k ) J ( X k ) k I ]1 J T ( X k )V ( X k )
其中, V T [v1 , v2
(2.8)
vn ] [e1,1e2,1
eS M ,1 , e1,2
eS M ,Q ]
W ji (t 1) W ji (t )
E (t ) [W ji (t ) W ji (t 1)] W ji (t )
(2.7)
其中上式第二项为常规 BP 算法的修正量,第三项为动量项,其中 为调节因子。 通过可变学习步长可以提高收敛速度。可变学习速度(可变步长)的基本思想为:先设一 初始步长:若一次迭代后误差函数 E 增大,则将步长乘以小于 1 的常数,沿原来方向重新计 算下一个迭代点;若一次迭代后误差函数 E 减少,则将步长乘以大于 1 的常数。
f (x) tanh(x)
1 e x 1 e x
(2.4)
(3) 误差计算模型 误差计算模型是反映神经网络期望输出与计算输出之间误差大小的函数, 其计算如下:
E
其中 T p 网络目标输出。 (4) 自学习模型
N 1 (Tp Qp )2 2 N p 1
(2பைடு நூலகம்5)
神经网络的学习过程, 即连接下层节点和上层节点之间的权重矩阵 Wij 的设定和误差修 正过程。BP 网络学习分为有监督学习和无监督学习。有监督学习需要设定期望值,无监督
图(a) 前向网络
图(b) 有反馈前向网络
图(c) 层内互边前向网络 图 1-2 神经网络拓扑结构图
图(d) 互联网络
二、BP 神经网络原理 BP 神经网络是一种按误差逆传播 BP(Back Propagation)算法训练的多层前馈网络,由它 最初是由 Pau1werboSS 在 1974 年提出,但未传播,直到 20 世纪 80 年代中期 Rumelhart、 Hinton 和 Williams、 David Parker 和 Yann Le Cun 重新发现了 BP 算法, 同时因此算法被包括在 《并行分布处理》(Parallel Distributed Processing),此算法才广为人知。目前 BP 算法已成为 应用最广泛的神经网络学习算法,据统计有近 90%的神经网络应用是基于 BP 算法的。 BP 神经网络学习是由信息的正向传播和误差的反向传播两个过程组成。 BP 神经网络的 学习规则是使用最速下降法, 通过反向传播来不断调整网络的权值和阈值, 使网络的误差平 方和最小。 BP 网络的神经元采用的传递函数通常是 Sigmoid 型可微函数, 所以可以实现输入 和输出间的任意非线性映射, 这使得它在诸如信号处理、 计算机网络、 过程控制、 语音识别、 函数逼近、模式识别及数据压缩等领域均取得了成功的应用。 2.1BP 神经网络结构 BP 网络的基本结构如图 2-1 所示, 其模型拓扑结构包括输入层 (input) 、 隐层(hidden layer) 和输出层(output layer)三层结构。 输入层各神经元负责接收来自外界的输入信息,并传递给中间层各神经元;中间层是 内部信息处理层,负责信息变换,根据信息变化能力的需求。中间层可以设计为单隐层或者 多隐层结构;最后一个隐层传递到输出层各神经元的信息,经进一步处理后,完成一次学习 的正向传播处理过程,由输出层向外界输出信息处理结果。隐层节点一般采用 Sigmoid 型函 数,输入和输出节点可以采用 Sigmoid 型函数或者线性函数。
针对 BP 算法存在的缺陷,目前国内外已有不少人对 BP 网络进行了大量的研究,提出 了各种不同的改进方案,如优化训练输入参数,加入动量参数,以及学习步长的适应调整, 采用带动量的自学习率 BP 算法, 动态全参数自调整学习算法, 记忆式初值权值和阀值方法, 快速自适应学习算法等,这些方案均提高 BP 神经网络收敛速度。 比较典型的改进方法如下: (1) 启发式改进 为了使学习速率足够大,又不易产生振荡,根据 Rumelhart 的建议,在权值调整算式 中,加入“动量项” ,即
输入层
隐层
输出层
图 2-1 BP 神经网络结构图
2.2 BP 神经算法原理 BP 算法由正向传播和反向传播两部分组成。在正向传播过程中,输入信息从输入层经 隐层单元处理后,传至输出层。每一层神经元的状态只影响下一层神经元的状态。当实际输 出与期望输出不符时,进入误差的反向传播阶段。把误差通过输出层沿连接路径返回,按误 差梯度下降的方式修正各层权值,向隐层、输入层逐层反传。周而复始的信息正向传播和误 差反向传播过程,是各层权值不断调整的过程,通过修改各层神经元之间的连接权值,也是 神经网络学习训练的过程,此过程一直进行到网络输出的误差信号减少到可以接受的程度, 或者预先设定的学习次数为止。 BP 神经网络模型包括其输入输出模型、作用函数模型、误差计算模型和自学习模型。 (1) 节点的输出模型 BP 神经网络的节点输出包括隐层节点输出和输出节点输出。其中,隐层节点输出模型 为:
Q j f ( wij xi q j )
输出节点输出模型为:
(2.1)
Yk f (Tjk Oj qk )
(2.2)
其中, f 为非线形作用函数,q 为神经单元的阈值,wij 为输入节点 xi 对隐层节点 x j 的 影响权重。 (2) 作用函数模型 作用函数是反映下层输入对上层节点刺激脉冲强度的函数又称激励函数,根据激励形 式的不同,可以讲节点分为不同的类型。常见的激励函数有: (a)Sigmoid 函数(也称为 Logistic 函数) ,一般取为(0,1)内连续取值:
学习方式只需输入模式之分。自学习模型为
Wij n 1 h Фi O j Wij n ?
(2.6)
其中, h 为学习因子; i 输出节点 i 的计算误差; Q j 为输出节点 j 的计算输出; 为 动量因子。 BP 模型把一组输入输出样本的函数问题转变为一个非线性优化问题,并使用了优化技 术中最普通的梯度下降法。 如果把神经网络看成是输入到输出的映射, 则这个映射是一个高 度非线性映射。BP 算法程序框图如图 2-2 所示。
神经网络及深度学习
(包含 MATLAB 仿真) 人工神经网络(Artificial Neural Network,即 ANN ) ,作为对人脑最简单的一种抽象和 模拟,是人们模仿人的大脑神经系统信息处理功能的一个智能化系统,是 20 世纪 80 年代 以来人工智能领域兴起的研究热点。 人工神经网络以数学和物理方法以及信息处理的角度对 人脑神经网络进行抽象, 并建立某种简化模型, 旨在模仿人脑结构及其功能的信息处理系统。 人工神经网络最有吸引力的特点就是它的学习能力。因此从 20 世纪 40 年代人工神经 网络萌芽开始, 历经两个高潮期及一个反思期至 1991 年后进入再认识与应用研究期, 涌现 出无数的相关研究理论及成果, 包括理论研究及应用研究。 最富有成果的研究工作是多层网 络 BP 算法,Hopfield 网络模型,自适应共振理论,自组织特征映射理论等。因为其应用价 值, 该研究呈愈演愈烈的趋势, 学者们在多领域中应用人工神经网络模型对问题进行研究优 化解决。 人工神经网络是由多个神经元连接构成,因此欲建立人工神经网络模型必先建立人工 神经元模型,再根据神经元的连接方式及控制方式不同建立不同类型的人工神经网络模型。 一、人工神经元及神经网络 1.1 人工神经元模型 仿生学在科技发展中起着重要作用,人工神经元模型的建立来源于生物神经元结构的 仿生模拟,用来模拟人工神经网络。人们提出的神经元模型有很多,其中最早提出并且影响 较大的是 1943 年心理学家 McCulloch 和数学家 W. Pitts 在分析总结神经元基本特性的基础上 首先提出的 MP 模型。该模型经过不断改进后,形成现在广泛应用的 BP 神经元模型。人工 神经元模型是由人量处理单元厂泛互连而成的网络,是人脑的抽象、简化、模拟,反映人脑 的基本特性。一般来说,作为人工神经元模型应具备三个要素: (1) 具有一组突触或连接,常用 wij 表示神经元 i 和神经元 j 之间的连接强度。 (2) 具有反映生物神经元时空整合功能的输入信号累加器 。 (3) 具有一个激励函数 f 用于限制神经元输出。激励函数将输出信号限制在一个允许 范围内。 一个典型的人工神经元模型如图 1-11-1 所示。
f ( x)
1 1 e Qx
(2.3)
它反映了神经元的饱和特性。 上式中, Q 为表示神经元非线性的参数, 称增益值(Gain), 也称调节参数。 Q 值越大, S 形曲线越陡峭; 反之, Q 值越小, S 形曲线越平坦; 一般取 Q=1。 (b)双曲正切激励函数,一般取为(-1,1)内连续取值:
1.05* t , E t 1 E t t 1 0.75* t , E t 1 E t t , 其他
(2) BP 算法的数值优化 采用共轭梯度法和 Levenberg - Marqardt 算法可以提高数值精度。共轭梯度法选择与梯 度相反的方向作为第一次搜索方向,再使函数沿搜索方向极小化,再确定下一个搜索方向, 直至收敛。而 Levenberg - Marqardt 算法是牛顿法的变形,用以最小化那些作为其他非线性 函数平方和的函数,这非常适合于性能指数是均方误差的神经网络训练。 Levenberg - Marqardt 算法为:
(1.2)
1.2 人工神经网络模型 建立神经元模型后,将多个神经元进行连接即可建立人工神经网络模型。神经网络的 类型多种多样, 它们是从不同角度对生物神经系统不同层次的抽象和模拟。 从功能特性和学 习特性来分,典型的神经网络模型主要包括感知器、线性神经网络、BP 网络、径向基函数 网络、自组织映射网络和反馈神经网络等。一般来说,当神经元模型确定后,一个神经网络 的特性及其功能主要取决于网络的拓扑结构及学习方法。 从网络拓扑结构角度来看, 神经网 络可以分为以下四种基本形式:前向网络、有反馈的前向网络、层内互边前向网络和互连网 络。 神经网络结构如图 1-2,其中子图的图(a)为前向网络结构,图(b)有反馈的前向网络结 构、图(c)层内互边前向网络结构和图(d)互连网络结构。 根据有无反馈,亦可将神经网络划分为:无反馈网络和有反馈网络。无反馈网络为前 馈神经网络(Feed Forward NNs, FFNNs), 有反馈网络为递归神经网络和(Recurrent NNs, RNNs) 。
设置初始权系数
给定输入/输出样本对
计算隐层单元的输出
权值调整
计算输出层单元的输出
求误差梯度
计算输出层单元的误差
计算隐层单元误差
N
误差满足要求?
Y
结束
图 2-2BP 学习算法框图 2.3BP 神经网络算法分析及改进 BP 算法现在已成为目前应用最广泛的神经网络学习算法,它在函数逼近、模式识别、 分类、数据压缩等领域有着更加广泛的应用。但它存在学习收敛速度慢、容易陷入局部极小 点而无法得到全局最优解、且对初始权值的选取很敏感等缺点。具体如下: (1) 在权值调整上采用梯度下降法作为优化算法,极易陷入局部极小。 (2) 学习算法的收敛速度很慢,收敛速度还与初始权值和传输函数的选择有关。 (3) 网络的结构设计,即隐节点数的选择,尚无理论指导,具有很大的盲目性。 (4) 新加入的样本对已经学好的样本影响较大, 且每个输入样本的特征数目要求相同, 泛化能力较差。