Recurrent network 的backpropagation公式 怎么样推导出来
反向传播算法(Backpropagation)是目前用来训练人工神经网络(ArtificialNeuralNetwork,ANN)的最常用且最有效的算法。
其主要思想是:(1)将训练集数据输入到ANN的输入层,经过隐藏层,最后达到输出层并输出结果,这是ANN的前向传播过程;(2)由于ANN的输出结果与实际结果有误差,则计算估计值与实际值之间的误差,并将该误差从输出层向隐藏层反向传播,直至传播到输入层;(3)在反向传播的过程中,根据误差调整各种参数的值;不断迭代上述过程,直至收敛。
反向传播算法的思想比较容易理解,但具体的公式则要一步步推导,因此本文着重介绍公式的推导过程。变量定义上图是一个三层人工神经网络,layer1至layer3分别是输入层、隐藏层和输出层。
如图,先定义一些变量:表示第层的第个神经元连接到第层的第个神经元的权重;表示第层的第个神经元的偏置;表示第层的第个神经元的输入,即:表示第层的第个神经元的输出,即:其中表示激活函数。
2.代价函数代价函数被用来计算ANN输出值与实际值之间的误差。
常用的代价函数是二次代价函数(Quadraticcostfunction):其中,表示输入的样本,表示实际的分类,表示预测的输出,表示神经网络的最大层数。
3.公式及其推导本节将介绍反向传播算法用到的4个公式,并进行推导。如果不想了解公式推导过程,请直接看第4节的算法步骤。
首先,将第层第个神经元中产生的错误(即实际值与预测值之间的误差)定义为:本文将以一个输入样本为例进行说明,此时代价函数表示为:公式1(计算最后一层神经网络产生的错误):其中,表示Hadamard乘积,用于矩阵或向量之间点对点的乘法运算。
公式1的推导过程如下:公式2(由后往前,计算每一层神经网络产生的错误):推导过程:公式3(计算权重的梯度):推导过程:公式4(计算偏置的梯度):推导过程:4.反向传播算法伪代码输入训练集对于训练集中的每个样本x,设置输入层(Inputlayer)对应的激活值:前向传播:,计算输出层产生的错误:反向传播错误:
神经网络BP模型
一、BP模型概述误差逆传播(ErrorBack-Propagation)神经网络模型简称为BP(Back-Propagation)网络模型AI爱发猫 www.aifamao.com。
PallWerbas博士于1974年在他的博士论文中提出了误差逆传播学习算法。完整提出并被广泛接受误差逆传播学习算法的是以Rumelhart和McCelland为首的科学家小组。
他们在1986年出版“ParallelDistributedProcessing,ExplorationsintheMicrostructureofCognition”(《并行分布信息处理》)一书中,对误差逆传播学习算法进行了详尽的分析与介绍,并对这一算法的潜在能力进行了深入探讨。
BP网络是一种具有3层或3层以上的阶层型神经网络。上、下层之间各神经元实现全连接,即下层的每一个神经元与上层的每一个神经元都实现权连接,而每一层各神经元之间无连接。
网络按有教师示教的方式进行学习,当一对学习模式提供给网络后,神经元的激活值从输入层经各隐含层向输出层传播,在输出层的各神经元获得网络的输入响应。
在这之后,按减小期望输出与实际输出的误差的方向,从输入层经各隐含层逐层修正各连接权,最后回到输入层,故得名“误差逆传播学习算法”。
随着这种误差逆传播修正的不断进行,网络对输入模式响应的正确率也不断提高。
BP网络主要应用于以下几个方面:1)函数逼近:用输入模式与相应的期望输出模式学习一个网络逼近一个函数;2)模式识别:用一个特定的期望输出模式将它与输入模式联系起来;3)分类:把输入模式以所定义的合适方式进行分类;4)数据压缩:减少输出矢量的维数以便于传输或存储。
在人工神经网络的实际应用中,80%~90%的人工神经网络模型采用BP网络或它的变化形式,它也是前向网络的核心部分,体现了人工神经网络最精华的部分。
二、BP模型原理下面以三层BP网络为例,说明学习和应用的原理。
1.数据定义P对学习模式(xp,dp),p=1,2,…,P;输入模式矩阵X[N][P]=(x1,x2,…,xP);目标模式矩阵d[M][P]=(d1,d2,…,dP)。
三层BP网络结构输入层神经元节点数S0=N,i=1,2,…,S0;隐含层神经元节点数S1,j=1,2,…,S1;神经元激活函数f1[S1];权值矩阵W1[S1][S0];偏差向量b1[S1]。
输出层神经元节点数S2=M,k=1,2,…,S2;神经元激活函数f2[S2];权值矩阵W2[S2][S1];偏差向量b2[S2]。
学习参数目标误差ϵ;初始权更新值Δ0;最大权更新值Δmax;权更新值增大倍数η+;权更新值减小倍数η-。
2.误差函数定义对第p个输入模式的误差的计算公式为中国矿产资源评价新技术与评价新模型y2kp为BP网的计算输出。
3.BP网络学习公式推导BP网络学习公式推导的指导思想是,对网络的权值W、偏差b修正,使误差函数沿负梯度方向下降,直到网络输出误差精度达到目标精度要求,学习结束。
各层输出计算公式输入层y0i=xi,i=1,2,…,S0;隐含层中国矿产资源评价新技术与评价新模型y1j=f1(z1j),j=1,2,…,S1;输出层中国矿产资源评价新技术与评价新模型y2k=f2(z2k),k=1,2,…,S2。
输出节点的误差公式中国矿产资源评价新技术与评价新模型对输出层节点的梯度公式推导中国矿产资源评价新技术与评价新模型E是多个y2m的函数,但只有一个y2k与wkj有关,各y2m间相互独立。
其中中国矿产资源评价新技术与评价新模型则中国矿产资源评价新技术与评价新模型设输出层节点误差为δ2k=(dk-y2k)·f2′(z2k),则中国矿产资源评价新技术与评价新模型同理可得中国矿产资源评价新技术与评价新模型对隐含层节点的梯度公式推导中国矿产资源评价新技术与评价新模型E是多个y2k的函数,针对某一个w1ji,对应一个y1j,它与所有的y2k有关。
因此,上式只存在对k的求和,其中中国矿产资源评价新技术与评价新模型则中国矿产资源评价新技术与评价新模型设隐含层节点误差为中国矿产资源评价新技术与评价新模型则中国矿产资源评价新技术与评价新模型同理可得中国矿产资源评价新技术与评价新模型4.采用弹性BP算法(RPROP)计算权值W、偏差b的修正值ΔW,Δb1993年德国MartinRiedmiller和HeinrichBraun在他们的论文“ADirectAdaptiveMethodforFasterBackpropagationLearning:TheRPROPAlgorithm”中,提出ResilientBackpropagation算法——弹性BP算法(RPROP)。
这种方法试图消除梯度的大小对权步的有害影响,因此,只有梯度的符号被认为表示权更新的方向。
权改变的大小仅仅由权专门的“更新值”确定中国矿产资源评价新技术与评价新模型其中表示在模式集的所有模式(批学习)上求和的梯度信息,(t)表示t时刻或第t次学习。
权更新遵循规则:如果导数是正(增加误差),这个权由它的更新值减少。如果导数是负,更新值增加。中国矿产资源评价新技术与评价新模型RPROP算法是根据局部梯度信息实现权步的直接修改。
对于每个权,我们引入它的各自的更新值,它独自确定权更新值的大小。
这是基于符号相关的自适应过程,它基于在误差函数E上的局部梯度信息,按照以下的学习规则更新中国矿产资源评价新技术与评价新模型其中0<η-<1<η+。
在每个时刻,如果目标函数的梯度改变它的符号,它表示最后的更新太大,更新值应由权更新值减小倍数因子η-得到减少;如果目标函数的梯度保持它的符号,更新值应由权更新值增大倍数因子η+得到增大。
为了减少自由地可调参数的数目,增大倍数因子η+和减小倍数因子η–被设置到固定值η+=1.2,η-=0.5,这两个值在大量的实践中得到了很好的效果。
RPROP算法采用了两个参数:初始权更新值Δ0和最大权更新值Δmax当学习开始时,所有的更新值被设置为初始值Δ0,因为它直接确定了前面权步的大小,它应该按照权自身的初值进行选择,例如,Δ0=0.1(默认设置)。
为了使权不至于变得太大,设置最大权更新值限制Δmax,默认上界设置为Δmax=50.0。在很多实验中,发现通过设置最大权更新值Δmax到相当小的值,例如Δmax=1.0。
我们可能达到误差减小的平滑性能。5.计算修正权值W、偏差b第t次学习,权值W、偏差b的的修正公式W(t)=W(t-1)+ΔW(t),b(t)=b(t-1)+Δb(t),其中,t为学习次数。
6.BP网络学习成功结束条件每次学习累积误差平方和中国矿产资源评价新技术与评价新模型每次学习平均误差中国矿产资源评价新技术与评价新模型当平均误差MSE<ε,BP网络学习成功结束。
7.BP网络应用预测在应用BP网络时,提供网络输入给输入层,应用给定的BP网络及BP网络学习得到的权值W、偏差b,网络输入经过从输入层经各隐含层向输出层的“顺传播”过程,计算出BP网的预测输出。
8.神经元激活函数f线性函数f(x)=x,f′(x)=1,f(x)的输入范围(-∞,+∞),输出范围(-∞,+∞)。一般用于输出层,可使网络输出任何值。
S型函数S(x)中国矿产资源评价新技术与评价新模型f(x)的输入范围(-∞,+∞),输出范围(0,1)。f′(x)=f(x)[1-f(x)],f′(x)的输入范围(-∞,+∞),输出范围(0,]。
一般用于隐含层,可使范围(-∞,+∞)的输入,变成(0,1)的网络输出,对较大的输入,放大系数较小;而对较小的输入,放大系数较大,所以可用来处理和逼近非线性的输入/输出关系。
在用于模式识别时,可用于输出层,产生逼近于0或1的二值输出。双曲正切S型函数中国矿产资源评价新技术与评价新模型f(x)的输入范围(-∞,+∞),输出范围(-1,1)。
f′(x)=1-f(x)·f(x),f′(x)的输入范围(-∞,+∞),输出范围(0,1]。
一般用于隐含层,可使范围(-∞,+∞)的输入,变成(-1,1)的网络输出,对较大的输入,放大系数较小;而对较小的输入,放大系数较大,所以可用来处理和逼近非线性的输入/输出关系。
阶梯函数类型1中国矿产资源评价新技术与评价新模型f(x)的输入范围(-∞,+∞),输出范围{0,1}。f′(x)=0。
类型2中国矿产资源评价新技术与评价新模型f(x)的输入范围(-∞,+∞),输出范围{-1,1}。f′(x)=0。
斜坡函数类型1中国矿产资源评价新技术与评价新模型f(x)的输入范围(-∞,+∞),输出范围[0,1]。中国矿产资源评价新技术与评价新模型f′(x)的输入范围(-∞,+∞),输出范围{0,1}。
类型2中国矿产资源评价新技术与评价新模型f(x)的输入范围(-∞,+∞),输出范围[-1,1]。中国矿产资源评价新技术与评价新模型f′(x)的输入范围(-∞,+∞),输出范围{0,1}。
三、总体算法1.三层BP网络(含输入层,隐含层,输出层)权值W、偏差b初始化总体算法(1)输入参数X[N][P],S0,S1,f1[S1],S2,f2[S2];(2)计算输入模式X[N][P]各个变量的最大值,最小值矩阵Xmax[N],Xmin[N];(3)隐含层的权值W1,偏差b1初始化。
情形1:隐含层激活函数f()都是双曲正切S型函数1)计算输入模式X[N][P]的每个变量的范围向量Xrng[N];2)计算输入模式X的每个变量的范围均值向量Xmid[N];3)计算W,b的幅度因子Wmag;4)产生[-1,1]之间均匀分布的S0×1维随机数矩阵Rand[S1];5)产生均值为0,方差为1的正态分布的S1×S0维随机数矩阵Randnr[S1][S0],随机数范围大致在[-1,1];6)计算W[S1][S0],b[S1];7)计算隐含层的初始化权值W1[S1][S0];8)计算隐含层的初始化偏差b1[S1];9))输出W1[S1][S0],b1[S1]。
情形2:隐含层激活函数f()都是S型函数1)计算输入模式X[N][P]的每个变量的范围向量Xrng[N];2)计算输入模式X的每个变量的范围均值向量Xmid[N];3)计算W,b的幅度因子Wmag;4)产生[-1,1]之间均匀分布的S0×1维随机数矩阵Rand[S1];5)产生均值为0,方差为1的正态分布的S1×S0维随机数矩阵Randnr[S1][S0],随机数范围大致在[-1,1];6)计算W[S1][S0],b[S1];7)计算隐含层的初始化权值W1[S1][S0];8)计算隐含层的初始化偏差b1[S1];9)输出W1[S1][S0],b1[S1]。
情形3:隐含层激活函数f()为其他函数的情形1)计算输入模式X[N][P]的每个变量的范围向量Xrng[N];2)计算输入模式X的每个变量的范围均值向量Xmid[N];3)计算W,b的幅度因子Wmag;4)产生[-1,1]之间均匀分布的S0×1维随机数矩阵Rand[S1];5)产生均值为0,方差为1的正态分布的S1×S0维随机数矩阵Randnr[S1][S0],随机数范围大致在[-1,1];6)计算W[S1][S0],b[S1];7)计算隐含层的初始化权值W1[S1][S0];8)计算隐含层的初始化偏差b1[S1];9)输出W1[S1][S0],b1[S1]。
(4)输出层的权值W2,偏差b2初始化1)产生[-1,1]之间均匀分布的S2×S1维随机数矩阵W2[S2][S1];2)产生[-1,1]之间均匀分布的S2×1维随机数矩阵b2[S2];3)输出W2[S2][S1],b2[S2]。
2.应用弹性BP算法(RPROP)学习三层BP网络(含输入层,隐含层,输出层)权值W、偏差b总体算法函数:Train3BP_RPROP(S0,X,P,S1,W1,b1,f1,S2,W2,b2,f2,d,TP)(1)输入参数P对模式(xp,dp),p=1,2,…,P;三层BP网络结构;学习参数。
(2)学习初始化1);2)各层W,b的梯度值,初始化为零矩阵。
(3)由输入模式X求第一次学习各层输出y0,y1,y2及第一次学习平均误差MSE(4)进入学习循环epoch=1(5)判断每次学习误差是否达到目标误差要求如果MSE<ϵ,则,跳出epoch循环,转到(12)。
(6)保存第epoch-1次学习产生的各层W,b的梯度值,(7)求第epoch次学习各层W,b的梯度值,1)求各层误差反向传播值δ;2)求第p次各层W,b的梯度值,;3)求p=1,2,…,P次模式产生的W,b的梯度值,的累加。
(8)如果epoch=1,则将第epoch-1次学习的各层W,b的梯度值,设为第epoch次学习产生的各层W,b的梯度值,。
(9)求各层W,b的更新1)求权更新值Δij更新;2)求W,b的权更新值,;3)求第epoch次学习修正后的各层W,b。
(10)用修正后各层W、b,由X求第epoch次学习各层输出y0,y1,y2及第epoch次学习误差MSE(11)epoch=epoch+1,如果epoch≤MAX_EPOCH,转到(5);否则,转到(12)。
(12)输出处理1)如果MSE<ε,则学习达到目标误差要求,输出W1,b1,W2,b2。2)如果MSE≥ε,则学习没有达到目标误差要求,再次学习。
(13)结束3.三层BP网络(含输入层,隐含层,输出层)预测总体算法首先应用Train3lBP_RPROP()学习三层BP网络(含输入层,隐含层,输出层)权值W、偏差b,然后应用三层BP网络(含输入层,隐含层,输出层)预测。
函数:Simu3lBP()。1)输入参数:P个需预测的输入数据向量xp,p=1,2,…,P;三层BP网络结构;学习得到的各层权值W、偏差b。
2)计算P个需预测的输入数据向量xp(p=1,2,…,P)的网络输出y2[S2][P],输出预测结果y2[S2][P]。四、总体算法流程图BP网络总体算法流程图见附图2。
五、数据流图BP网数据流图见附图1。
六、实例实例一全国铜矿化探异常数据BP模型分类1.全国铜矿化探异常数据准备在全国铜矿化探数据上用稳健统计学方法选取铜异常下限值33.1,生成全国铜矿化探异常数据。
2.模型数据准备根据全国铜矿化探异常数据,选取7类33个矿点的化探数据作为模型数据。
这7类分别是岩浆岩型铜矿、斑岩型铜矿、矽卡岩型、海相火山型铜矿、陆相火山型铜矿、受变质型铜矿、海相沉积型铜矿,另添加了一类没有铜异常的模型(表8-1)。3.测试数据准备全国化探数据作为测试数据集。
4.BP网络结构隐层数2,输入层到输出层向量维数分别为14,9、5、1。学习率设置为0.9,系统误差1e-5。没有动量项。表8-1模型数据表续表5.计算结果图如图8-2、图8-3。
图8-2图8-3全国铜矿矿床类型BP模型分类示意图实例二全国金矿矿石量品位数据BP模型分类1.模型数据准备根据全国金矿储量品位数据,选取4类34个矿床数据作为模型数据,这4类分别是绿岩型金矿、与中酸性浸入岩有关的热液型金矿、微细浸染型型金矿、火山热液型金矿(表8-2)。
2.测试数据准备模型样本点和部分金矿点金属量、矿石量、品位数据作为测试数据集。3.BP网络结构输入层为三维,隐层1层,隐层为三维,输出层为四维,学习率设置为0.8,系统误差1e-4,迭代次数5000。
表8-2模型数据4.计算结果结果见表8-3、8-4。表8-3训练学习结果表8-4预测结果(部分)续表。
如何理解神经网络里面的反向传播算法
反向传播算法(Backpropagation)是目前用来训练人工神经网络(ArtificialNeuralNetwork,ANN)的最常用且最有效的算法。
其主要思想是:(1)将训练集数据输入到ANN的输入层,经过隐藏层,最后达到输出层并输出结果,这是ANN的前向传播过程;(2)由于ANN的输出结果与实际结果有误差,则计算估计值与实际值之间的误差,并将该误差从输出层向隐藏层反向传播,直至传播到输入层;(3)在反向传播的过程中,根据误差调整各种参数的值;不断迭代上述过程,直至收敛。
反向传播算法的思想比较容易理解,但具体的公式则要一步步推导,因此本文着重介绍公式的推导过程。1.变量定义上图是一个三层人工神经网络,layer1至layer3分别是输入层、隐藏层和输出层。
如图,先定义一些变量:表示第层的第个神经元连接到第层的第个神经元的权重;表示第层的第个神经元的偏置;表示第层的第个神经元的输入,即:表示第层的第个神经元的输出,即:其中表示激活函数。
2.代价函数代价函数被用来计算ANN输出值与实际值之间的误差。
常用的代价函数是二次代价函数(Quadraticcostfunction):其中,表示输入的样本,表示实际的分类,表示预测的输出,表示神经网络的最大层数。
3.公式及其推导本节将介绍反向传播算法用到的4个公式,并进行推导。如果不想了解公式推导过程,请直接看第4节的算法步骤。
首先,将第层第个神经元中产生的错误(即实际值与预测值之间的误差)定义为:本文将以一个输入样本为例进行说明,此时代价函数表示为:公式1(计算最后一层神经网络产生的错误):其中,表示Hadamard乘积,用于矩阵或向量之间点对点的乘法运算。
公式1的推导过程如下:公式2(由后往前,计算每一层神经网络产生的错误):推导过程:公式3(计算权重的梯度):推导过程:公式4(计算偏置的梯度):推导过程:4.反向传播算法伪代码输入训练集对于训练集中的每个样本x,设置输入层(Inputlayer)对应的激活值:前向传播:,计算输出层产生的错误:反向传播错误:
相关系数r的计算公式是什么?
相关系数介于区间[-1,1]。当相关系数为-1,表示完全负相关,表明两项资产的收益率变化方向和变化幅度容完全相反。当相关系数为+1时,表示完全正相关,表明两项资产的收益率变化方向和变化幅度完全相同。
当相关系数为0时,表示不相关。r值的绝对值介于0~1之间。通常来说,r越接近1,表示x与y两个量之间的相关程度就越强,反之,r越接近于0,x与y两个量之间的相关程度就越弱。
扩展资料:相关关系:当一个或几个相互联系的变量取一定的数值时,与之相对应的另一变量的值虽然不确定,但它仍按某种规律在一定的范围内变化。变量间的这种相互关系,称为具有不确定性的相关关系。
⑴完全相关:两个变量之间的关系,一个变量的数量变化由另一个变量的数量变化所惟一确定,即函数关系。⑵不完全相关:两个变量之间的关系介于不相关和完全相关之间。
⑶不相关:如果两个变量彼此的数量变化互相独立,没有关系。参考资料来源:百度百科-相关关系。
如何理解bp神经网络算法中,总方差对某个权值的偏导,是某层的误差?
。
可以把网络的输出误差(或者熵)理解成一个隐函数,一个关于权值的隐函数error=f(w1,w2,...,wn)要求函数f的最小值,通常使用梯度下降法,那么就要求梯度,也就是f对每个wi的偏导。
深度学习需要哪些基础知识?
数学基础如果你能够顺畅地读懂深度学习论文中的数学公式,可以独立地推导新方法,则表明你已经具备了必要的数学基础。
掌握数学分析、线性代数、概率论和凸优化四门数学课程包含的数学知识,熟知机器学习的基本理论和方法,是入门深度学习技术的前提。
因为无论是理解深度网络中各个层的运算和梯度推导,还是进行问题的形式化或是推导损失函数,都离不开扎实的数学与机器学习基础。数学分析在工科专业所开设的高等数学课程中,主要学习的内容为微积分。
对于一般的深度学习研究和应用来说,需要重点温习函数与极限、导数(特别是复合函数求导)、微分、积分、幂级数展开、微分方程等基础知识。在深度学习的优化过程中,求解函数的一阶导数是最为基础的工作。
当提到微分中值定理、Taylor公式和拉格朗日乘子的时候,你不应该只是感到与它们似曾相识。线性代数深度学习中的运算常常被表示成向量和矩阵运算。线性代数正是这样一门以向量和矩阵作为研究对象的数学分支。
需要重点温习的包括向量、线性空间、线性方程组、矩阵、矩阵运算及其性质、向量微积分。
当提到Jacobian矩阵和Hessian矩阵的时候,你需要知道确切的数学形式;当给出一个矩阵形式的损失函数时,你可以很轻松的求解梯度。
概率论概率论是研究随机现象数量规律的数学分支,随机变量在深度学习中有很多应用,无论是随机梯度下降、参数初始化方法(如Xavier),还是Dropout正则化算法,都离不开概率论的理论支撑。
除了掌握随机现象的基本概念(如随机试验、样本空间、概率、条件概率等)、随机变量及其分布之外,还需要对大数定律及中心极限定理、参数估计、假设检验等内容有所了解,进一步还可以深入学习一点随机过程、马尔可夫随机链的内容。
凸优化结合以上三门基础的数学课程,凸优化可以说是一门应用课程。
但对于深度学习而言,由于常用的深度学习优化方法往往只利用了一阶的梯度信息进行随机梯度下降,因而从业者事实上并不需要多少“高深”的凸优化知识。
理解凸集、凸函数、凸优化的基本概念,掌握对偶问题的一般概念,掌握常见的无约束优化方法如梯度下降方法、随机梯度下降方法、Newton方法,了解一点等式约束优化和不等式约束优化方法,即可满足理解深度学习中优化方法的理论要求。
机器学习归根结底,深度学习只是机器学习方法的一种,而统计机器学习则是机器学习领域事实上的方法论。
以监督学习为例,需要你掌握线性模型的回归与分类、支持向量机与核方法、随机森林方法等具有代表性的机器学习技术,并了解模型选择与模型推理、模型正则化技术、模型集成、Bootstrap方法、概率图模型等。
深入一步的话,还需要了解半监督学习、无监督学习和强化学习等专门技术。
如何理解神经网络里面的反向传播算法
。
反向传播算法(BP算法)主要是用于最常见的一类神经网络,叫多层前向神经网络,本质可以看作是一个generalnonlinearestimator,即输入x_1...x_n输出y,视图找到一个关系y=f(x_1...x_n)(在这里f的实现方式就是神经网络)来近似已知数据。
为了得到f中的未知参数的最优估计值,一般会采用最小化误差的准则,而最通常的做法就是梯度下降,到此为止都没问题,把大家困住了很多年的就是多层神经网络无法得到显式表达的梯度下降算法!
BP算法实际上是一种近似的最优解决方案,背后的原理仍然是梯度下降,但为了解决上述困难,其方案是将多层转变为一层接一层的优化:只优化一层的参数是可以得到显式梯度下降表达式的;而顺序呢必须反过来才能保证可工作——由输出层开始优化前一层的参数,然后优化再前一层……跑一遍下来,那所有的参数都优化过一次了。
但是为什么说是近似最优呢,因为数学上除了很特殊的结构,step-by-step的优化结果并不等于整体优化的结果!不过,好歹现在能工作了,不是吗?
至于怎么再改进(已经很多改进成果了),或者采用其他算法(例如智能优化算法等所谓的全局优化算法,就算是没有BP这个近似梯度下降也只是局部最优的优化算法)那就是新的研究课题了。
如何理解神经网络里面的反向传播算法
反向传播算法(Backpropagation)是目前用来训练人工神经网络(ArtificialNeuralNetwork,ANN)的最常用且最有效的算法。
其主要思想是:(1)将训练集数据输入到ANN的输入层,经过隐藏层,最后达到输出层并输出结果,这是ANN的前向传播过程;(2)由于ANN的输出结果与实际结果有误差,则计算估计值与实际值之间的误差,并将该误差从输出层向隐藏层反向传播,直至传播到输入层;(3)在反向传播的过程中,根据误差调整各种参数的值;不断迭代上述过程,直至收敛。
反向传播算法的思想比较容易理解,但具体的公式则要一步步推导,因此本文着重介绍公式的推导过程。1.变量定义上图是一个三层人工神经网络,layer1至layer3分别是输入层、隐藏层和输出层。
如图,先定义一些变量:表示第层的第个神经元连接到第层的第个神经元的权重;表示第层的第个神经元的偏置;表示第层的第个神经元的输入,即:表示第层的第个神经元的输出,即:其中表示激活函数。