BP神经网络基础算法

BP算法是一种有监督式的学习算法,其主要思想是:输入学习样本,使用反向传播算法对网络的权值和偏差进行反复的调整训练,使输出的向量与期望向量尽可能地接近,当网络输出层的误差平方和小于指定的误差时训练完成,保存网络的权值和偏差。具体步骤如下:

(1)初始化,随机给定各连接权[w],[v]及阀值θi,rt。

(2)由给定的输入输出模式对计算隐层、输出层各单元输出

bj=f(■wijai-θj) ct=f(■vjtbj-rt)

式中:bj为隐层第j个神经元实际输出;ct为输出层第t个神经元的实际输出;wij为输入层至隐层的连接权;vjt为隐层至输出层的连接权。

dtk=(ytk-ct)ct(1-ct) ejk=[■dtvjt] bj(1-bj)

(3)选取下一个输入模式对返回第2步反复训练直到网络设输出误差达到要求结束训练。

传统的BP算法,实质上是把一组样本输入/输出问题转化为一个非线性优化问题,并通过负梯度下降算法,利用迭代运算求解权值问题的一种学习方法,但其收敛速度慢且容易陷入局部极小,为此提出了一种新的算法,即高斯消元法。

折叠改进的BP网络算法 2.1 改进算法概述

此前有人提出:任意选定一组自由权,通过对传递函数建立线性方程组,解得待求权。本文在此基础上将给定的目标输出直接作为线性方程等式代数和来建立线性方程组,不再通过对传递函数求逆来计算神经元的净输出,简化了运算步骤。没有采用误差反馈原理,因此用此法训练出来的神经网络结果与传统算法是等效的。其基本思想是:由所给的输入、输出模式对通过作用于神经网络来建立线性方程组,运用高斯消元法解线性方程组来求得未知权值,而未采用传统BP网络的非线性函数误差反馈寻优的思想。

2.2 改进算法的具体步骤

对给定的样本模式对,随机选定一组自由权,作为输出层和隐含层之间固定权值,通过传递函数计算隐层的实际输出,再将输出层与隐层间的权值作为待求量,直接将目标输出作为等式的右边建立方程组来求解。

现定义如下符号(见图1):x (p)输入层的输入矢量;y (p)输入层输入为x (p)时输出层的实际输出矢量;t (p)目标输出矢量;n,m,r分别为输入层、隐层和输出层神经元个数;W为隐层与输入层间的权矩阵;V为输出层与隐层间的权矩阵。具体步骤如下:

(1)随机给定隐层和输入层间神经元的初始权值wij。

(2)由给定的样本输入xi(p)计算出隐层的实际输出aj(p)。为方便起见将图1网络中的阀值写入连接权中去,令:隐层阀值θj=wnj,x(n)=-1,则:

aj(p)=f(■wijxi(p)) (j=1,2…m-1)。

(3)计算输出层与隐层间的权值vjr。以输出层的第r个神经元为对象,由给定的输出目标值tr(p)作为等式的多项式值建立方程,用线性方程组表示为:

a0(1)v1r+a1(1)v2r+…+am(1)vmr=tr(1)a0(2)v1r+a1(2)v2r+…+am(2)vmr=tr(2) ……a0(p)v1r+a1(p)v2r+…+am(p)vmr=tr(p) 简写为: Av=T

为了使该方程组有唯一解,方程矩阵A为非奇异矩阵,其秩等于其增广矩阵的秩,即:r(A)=r(A┊B),且方程的个数等于未知数的个数,故取m=p,此时方程组的唯一解为: Vr=v0r,v2r,…vmr

(4)重复第三步就可以求出输出层m个神经元的权值,以求的输出层的权矩阵加上随机固定的隐层与输入层的权值就等于神经网络最后训练的权矩阵。

折叠计算机运算实例 现以神经网络最简单的XOR问题用VC编程运算进行比较(取神经网络结构为2-4-1型),传统算法和改进BP算法的误差(取动量因子α=0.001 5,步长η=1.653) BP神经网络模型拓扑结构包括:

输入层(Input),这一区域相当于外界的刺激,是刺激的来源并且将刺激传递给神经元。

隐藏层( Hide layer),这一区域表示神经元相互之间传递刺激,相当于人脑里面。

输出层(Output layer),这一区域表示神经元经过多层次相互传递后,对外界的反应。

BP反馈机制

简单的描述就是,输入层将刺激传递给隐藏层,隐藏层通过神经元之间,联系的权重和激活函数,将刺激传到输出层,输出层整理隐藏层处理后的刺激,产生最终结果。

若有正确的结果,那么将正确的结果和产生的结果进行比较,得到误差,再逆推对神经网中的链接权重进行反馈修正,从而来完成学习的过程。

这就是BP (Back Propagation)神经网的反馈机制,也是名字的来源,即运用向后反馈的学习机制,来修正神经网中的权重,最终达到输出正确结果的目的。

双向信号传播

BP算法由数据流的前向(正向)传播和误差信号的反向传播两个过程构成。

–正向传播时,传播方向为输入层-隐层-输出层,每层神经元的状态只影响下一层神经元。

–若在输出层得不到期望的输出,则转向误差信号的反向传播流程。

这两个过程的交替进行

–在权向量空间,执行误差函数梯度下降策略,动态迭代搜索一组权向量。

–使网络误差函数达到最小值,从而完成信息提取,和记忆过程。

正向传播

设BP神经网络的输入层有n个节点,隐层有q个节点,输出层有m个节点,输入层与隐层之间有权值为vki,隐层与输出层之间的权值为wjk,三层神经网络的拓扑结构,如下图所示。

隐层传递函数为ƒ1(•),输出层的传递函数为ƒ2(•),则隐层节点的输出为(将阈值写入求和项中,k=1,2,…q)

•输出层节点的输出为(j=l,2,…,m):

•至此BP网络完成n维空间向量对m维空间的近似映射

反向传播

反向传播,目的是传递误差信号

–所以要进行定义误差函数、输出层权值变化、以及隐层权值变化等操作。

–以上作用可分别以数据公式表达出来:

–式中x1,x2,…,xq为输入信号,wj1,wj2,…,wji,…,wjn为神经元k之权值,uk为线性组合结果,θk为阈值,f (•)为激活函数,yk为神经元k的输出。

–若把输入的维数增加一维,则可把阈值θk包括进去。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏人工智能

单样本学习:使用孪生神经网络进行人脸识别

选自towardsdatascience 作者:Firdaouss Doukkali 机器之心编译 参与:Nurhachu Null、刘晓坤 这篇文章简要介绍单...

3378
来自专栏大数据挖掘DT机器学习

机器学习模型的特性

机器学习模型中有许多种不同方法可以用来解决分类和回归问题。对同一个问题来说,这些不同模型都可以被当成解决问题的黑箱来看待。然而,每种模型都源自于不同的...

33411
来自专栏智能算法

机器学习三人行(系列三)----end-to-end机器学习

系列二我们详细介绍了数据下载,数据透析以及数据的不同分组方式,详情请参考:机器学习三人行(系列二)----机器学习前奏,洞悉数据之美!。但是在真正进行训练之前,...

3398
来自专栏fangyangcoder

Andrew Ng机器学习课程笔记(四)之神经网络

http://www.cnblogs.com/fydeblog/p/7365730.html

451
来自专栏PPV课数据科学社区

机器学习算法基础概念学习总结

1.基础概念 (1) 10折交叉验证:英文名是10-fold cross-validation,用来测试算法的准确性。是常用的测试方法。将数据集分成10份。轮...

3424
来自专栏IT技术精选文摘

机器学习之预测分析模型

介绍 预测分析是基于以前收集的数据来预测未来的结果。它包括两个阶段: 训练阶段:从训练数据中学习一个模型。 预测阶段:使用模型预测未知或未来的结果。 预测模...

2406
来自专栏大数据挖掘DT机器学习

隐马尔科夫模型 和动态贝叶斯网络

(一):定义及简介: 介绍(introduction) 通常我们总是对寻找某一段时间上的模式感兴趣,这些模式可能出现在很多领域:一个人在使用电脑的时候使用的命...

4105
来自专栏SIGAI学习与实践平台

神经网络的激活函数总结

激活函数在神经网络中具有重要的地位。在SIGAI之前的公众号文章“理解神经网络的激活函数”中,我们回答了3个关键的问题:

772
来自专栏WD学习记录

机器学习 学习笔记(23) 卷积网络

卷积网络(convolutional network),也叫做卷积神经网络(convolutional neural network,CNN),是一种专门用来处...

1222
来自专栏深度学习之tensorflow实战篇

sigmoid和tanh求导的最终结果,以及Sigmoid函数与损失函数求导

sigmoid Sigmoid函数,即f(x)=1/(1+e-x)。是神经元的非线性作用函数。 ? 2. 函数: ? ? 1.1 从指数函数到si...

4737

扫码关注云+社区