混合神经网络。 - 页 17 1...10111213141516171819202122 新评论 gumgum 2009.10.12 18:40 #161 谁试过了? ........................................................... 将反向传播与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,系统就会成为一个反向传播的机器。 ........................................................ 利用 MQL5 矩阵的反向传播神经网络 RIP 2009.10.12 22:07 #162 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。 小步梯度法。 这里有更多的讨论。 神经合成器,构造师+实验室 gumgum 2009.10.13 08:55 #163 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? Alexey Subbotin 2009.10.13 09:06 #164 gumgum >> : 谢谢你。 问题仍然是...真相在哪里? 左上角。当DE/DW(t-1)*DE/DW<0时,为什么DE/DW=0? 梯度的负积表示算法已经 "跳过 "了所需的极值。这就是为什么存储当前步骤的梯度值的那个存储单元(注意是存储单元,而不是梯度本身)被清零,以使第三个条件在下一步骤发挥作用。如果你完整地阅读这篇文章,这是算法的一个很好的特点。 gumgum 2009.10.13 09:10 #165 alsu писал(а)>> 梯度的负积表示算法已经 "超过 "了所需的极值。这就是为什么存储当前步骤的梯度值的存储单元(注意,是存储单元,而不是梯度本身)被清零,这样第三个条件将在下一个步骤被触发。如果你完整地阅读了这篇文章,这是算法的一个技巧。 但这样你需要de/dw(t-1)=0 Alexey Subbotin 2009.10.13 09:12 #166 gumgum >> : 但这样你需要de/dw(t-1)=0 在这一步,它是de/dw(t),在下一步它将成为de/dw(t-1) gumgum 2009.10.13 09:30 #167 alsu писал(а)>> 在这一步,它是de/dw(t),在下一步它将成为de/dw(t-1) 谢谢你。你能提示一下JRprop q是针对每个重量的个体还是什么? gumgum 2009.10.13 10:27 #168 我已经被一些人写的deltaW=n*DE/DW其他人deltaW=n*DE/DW其他人等混淆了,......。 Alexey Subbotin 2009.10.13 17:06 #169 gumgum >> : 谢谢你。你能告诉我JRprop的q是针对每个重量的个体还是什么? 据我所知,Q对所有的人都是一样的。 RIP 2009.10.13 19:15 #170 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>,这并不重要,你只需了解哪一步做什么,在哪个方向,在哪个时间点。 由于这是一个启发式的方法,准确遵守公式并不重要,重要的是原则。 1...10111213141516171819202122 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
谁试过了?
...........................................................
将反向传播与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,系统就会成为一个反向传播的机器。
........................................................
你能否更详细地介绍一下准牛顿理论和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。
小步梯度法。
这里有更多的讨论。
神经合成器,构造师+实验室
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?
谢谢你。
问题仍然是...真相在哪里?
左上角。当DE/DW(t-1)*DE/DW<0时,为什么DE/DW=0?
梯度的负积表示算法已经 "跳过 "了所需的极值。这就是为什么存储当前步骤的梯度值的那个存储单元(注意是存储单元,而不是梯度本身)被清零,以使第三个条件在下一步骤发挥作用。如果你完整地阅读这篇文章,这是算法的一个很好的特点。
梯度的负积表示算法已经 "超过 "了所需的极值。这就是为什么存储当前步骤的梯度值的存储单元(注意,是存储单元,而不是梯度本身)被清零,这样第三个条件将在下一个步骤被触发。如果你完整地阅读了这篇文章,这是算法的一个技巧。
但这样你需要de/dw(t-1)=0
但这样你需要de/dw(t-1)=0
在这一步,它是de/dw(t),在下一步它将成为de/dw(t-1)
在这一步,它是de/dw(t),在下一步它将成为de/dw(t-1)
谢谢你。你能提示一下JRprop q是针对每个重量的个体还是什么?
我已经被一些人写的deltaW=n*DE/DW其他人deltaW=n*DE/DW其他人等混淆了,......。
谢谢你。你能告诉我JRprop的q是针对每个重量的个体还是什么?
据我所知,Q对所有的人都是一样的。
我已经很困惑了,有的人写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>,这并不重要,你只需了解哪一步做什么,在哪个方向,在哪个时间点。
由于这是一个启发式的方法,准确遵守公式并不重要,重要的是原则。