实际上这是3个问题:
我应该使用哪种优化算法来优化多层感知器的权重,如果我知道...
1)只有错误函数的值?(黑盒)
2)梯度?(一阶导数)
3)梯度和麻布?(二阶导数)
我听说CMA-ES对于1)和BFGS对于2)应该工作得很好,但我想知道是否有任何替代方案,我不知道3)采用哪种算法。
发布于 2012-02-13 18:31:08
我最终解决了这个问题:在强化学习(固定拓扑)中,有一些有效的算法来优化神经网络,例如CMA-ES (CMA-NeuroES)或CoSyNE。
监督学习的最佳优化算法似乎是Levenberg-Marquardt (LMA)。这是一个专门为最小二乘问题设计的算法。当有许多连接和权重时,LMA不能很好地工作,因为所需的空间很大。在这种情况下,我使用共轭梯度(CG)。
hessian矩阵不会加速优化。近似二阶导数的算法速度更快,效率更高(BFGS,CG,LMA)。
编辑:对于大规模学习问题,随机梯度下降(SGD)通常优于所有其他算法。
发布于 2011-08-30 06:46:59
好吧,这并没有真正回答你最初提出的问题,但它确实为你在评论中提到的问题提供了解决方案。
像处理连续动作空间这样的问题通常不是通过改变误差度量来处理的,而是通过改变整个网络的架构来处理的。这使您可以继续使用相同的信息丰富的错误信息,同时仍然可以解决您想要解决的问题。
此question的解决方案中讨论了一些可能的架构更改,以实现这一点。在我看来,我建议使用一种改进的Q学习技术,其中状态和动作空间都由自组织映射表示,这在上面的链接中提到的一篇论文中讨论过。
我希望这能帮到你。
https://stackoverflow.com/questions/7216506
复制相似问题