混合神经网络。 - 页 17

 

谁试过了?

...........................................................

将反向传播与Cauchy学习相结合

在使用反向传播和Cauchy学习的综合算法中,对权重的修正由两部分组成:(1)使用反向传播算法计算的方向性成分,以及(2)由Cauchy分布定义的随机成分。

这些成分是为每个权重计算的,它们的总和就是权重变化的量。与Cauchy算法一样,一旦计算出权重变化,就会计算出目标函数。如果有改进,则保存该变化。否则,它将以波尔兹曼 分布决定的概率被保存。

权重校正是用前面介绍的每个算法的方程式来计算的。

wmn,k(n+1) = wmn,k(n) + η [aΔwmn,k(n) + (1- a) δ n,k OUT m,j ] + (1-η)xc,

其中η 是控制相对Cauchy和Backpropagation量的系数,在权重步骤分量中 如果η 等于零,系统就成为一个完全的考奇机 如果η 等于 1,系统就会成为一个反向传播的机器

........................................................

 
gumgum >> :

你能否更详细地介绍一下准牛顿理论和LMA。

LMA = Levenberg-Marquardt算法

准牛顿法

二阶梯度法


要写的东西很多,简而言之。


牛顿的算法。
xk+1 = xk - sk*H^(-1)(xk)grad f(xk) ,其中
H^(-1)(xk)是Hesse矩阵在xk点的逆值。
sk是步骤值。
gradf(xk)是函数在xk点的梯度。

因此,准牛顿方法使用矩阵H(xk)而不是H^(-1)(xk),后者是由二阶偏导数构建的。
在准牛顿方法中,二阶导数是用极差法计算的。因此,我们有两个最经常使用的

CR计算公式。


布罗伊登-弗莱彻-戈尔德法布-山诺(BFGS)

德维登-弗莱彻-鲍威尔(DFP)。


LMA。


也指二阶方法,即必须计算二阶偏导数。


xk+1 = xk - sk*H^(-1)(xk)grad f(xk) ,其中

所以H^(-1)(xk)被计算为H= J^t*J,其中J是雅各布系数

分别为gradf(xk)=J^t*E,J^t是转置雅各布,E是网络误差向量,则

xk+1 = xk - [J^t*J + mu*I]^(-1)*J^t*E,其中mu是标量,如果mu为0,我们有牛顿法与Hessian近似,如果mu -> + Inf。

小步梯度法。


这里有更多的讨论。


神经合成器,构造师+实验室

 
rip писал(а)>>

LMA = Levenberg-Marquardt算法

准牛顿法

二阶梯度法

要写的东西很多,简而言之。

牛顿的算法。
xk+1 = xk - sk*H^(-1)(xk)grad f(xk) ,其中
H^(-1)(xk)是Hesse矩阵在xk点的倒数。
sk是步骤值。
gradf(xk)是函数在xk点的梯度。

因此,准牛顿方法使用矩阵H(xk)而不是H^(-1)(xk),后者是由二阶偏导数构建的。
在准牛顿方法中,二阶导数是用极差法计算的。相应地,我们有两个最经常使用的

CR计算公式。

布罗伊登-弗莱彻-戈尔德法布-沙诺(BFGS)

德维顿-弗莱彻-鲍威尔(DF P)


LMA。

也指二阶方法,即必须计算二阶偏导数。

xk+1 = xk - sk*H^(-1)(xk)grad f(xk) ,其中

所以H^(-1)(xk)被计算为H= J^t*J,其中J是雅各布系数

分别为gradf(xk)=J^t*E,J^t是转置的Jacobian,E是网络误差向量,则

xk+1 = xk - [J^t*J + mu*I]^(-1)*J^t*E,其中mu是一个标量,如果mu为0,我们有牛顿方法与Hessian近似,如果mu -> + Inf。

小步梯度法。

这里有更多的讨论。


神经合成器,构造师+实验室

谢谢。

问题仍然是...真相在哪里?

左上角(RProp)。当DE/DW(t-1)*DE/DW<0时,为什么DE/DW=0?

 
gumgum >> :

谢谢你。

问题仍然是...真相在哪里?

左上角。当DE/DW(t-1)*DE/DW<0时,为什么DE/DW=0?

梯度的负积表示算法已经 "跳过 "了所需的极值。这就是为什么存储当前步骤的梯度值的那个存储单元(注意是存储单元,而不是梯度本身)被清零,以使第三个条件在下一步骤发挥作用。如果你完整地阅读这篇文章,这是算法的一个很好的特点。

 
alsu писал(а)>>

梯度的负积表示算法已经 "超过 "了所需的极值。这就是为什么存储当前步骤的梯度值的存储单元(注意,是存储单元,而不是梯度本身)被清零,这样第三个条件将在下一个步骤被触发。如果你完整地阅读了这篇文章,这是算法的一个技巧。

但这样你需要de/dw(t-1)=0

 
gumgum >> :

但这样你需要de/dw(t-1)=0

在这一步,它是de/dw(t),在下一步它将成为de/dw(t-1)

 
alsu писал(а)>>

在这一步,它是de/dw(t),在下一步它将成为de/dw(t-1)

谢谢你。你能提示一下JRprop q是针对每个重量的个体还是什么?

 

我已经被一些人写的deltaW=n*DE/DW其他人deltaW=n*DE/DW其他人等混淆了,......。

 
gumgum >> :

谢谢你。你能告诉我JRprop的q是针对每个重量的个体还是什么?

据我所知,Q对所有的人都是一样的。

 
gumgum >> :

我已经很困惑了,有的人写deltaW=-*DE/DW,有的人写deltaW=n*DE/DW,有的人写等等,......。

让我们从头开始,RProp启发式算法,它采用分析突触权重的误差函数的第一导数的符号。

如果导数的符号是正的,dEdW(t)*dEdW(t-1)>0,即误差最小化得到实施,我们就向正确的方向前进。

如果符号发生了变化,即dEdW(t)*dEdW(t-1)<0,我们就错过了最小值(局部最小值),我们应该后退两步。首先,补偿我们刚刚错过的最小值--在你的例子中,DELTAij(t)是根据delta和-eta的前值计算的。 在这一步你不需要修正Wij(t),我们将只返回Wij的前值,但你的方法意味着我们从导数符号的变化点回到了两次。


关于<deltaW=-*DE/DW其他deltaW=n*DE/DW>,这并不重要,你只需了解哪一步做什么,在哪个方向,在哪个时间点。


由于这是一个启发式的方法,准确遵守公式并不重要,重要的是原则。