2011-08-27 60 views
2

其实这些都是3个问题:我应该使用哪种优化算法来优化多层感知器的权重?

我应该使用

哪些优化算法来优化多层感知器的权重,如果我知道...

1)仅误差函数的值? (黑匣子)

2)渐变? (一阶导数)

3)梯度和hessian? (二阶导数)

我听说CMA-ES应该对1)和BFGS的2)工作得很好,但是我想知道是否有其他选择,并且我不知道至少需要3)。

+0

你有没有想要解决的特定问题?我承认我想不出任何只使用错误函数的场景,因为大多数人工神经网络都使用易于计算衍生物的函数。什么阻止你使用反向传播? – zergylord

+0

我有两个不同类型的问题需要解决: 1)一个监督学习任务(脑计算机接口数据) 2)一些强化学习任务...... a)contrinouos状态和离散的行动空间。这里我有一个错误功能,可以应用反向传播。 b)继续状态和动作空间。我认为在这种情况下我不会有直接的错误,因为人工神经网络的输入是状态,输出是动作,我不知道哪个动作是最优的。但我有一个像健身功能(返回)。 – alfa

回答

0

我终于解决了这个问题:有在强化学习优化神经网络的一些有效的算法(固定拓扑结构),E。 G。 CMA-ES(CMA-NeuroES)或CoSyNE

的监督学习最好的优化算法似乎是文伯格 - 马夸特(LMA)。这是专门为最小二乘问题设计的算法。当有很多连接和重量时,由于所需的空间很大,LMA不能很好地工作。在这种情况下,我使用共轭梯度(CG)。

海森矩阵不会加速优化。近似二阶导数的算法更快更高效(BFGS,CG,LMA)。

编辑:对于大规模的学习问题往往随机梯度下降(SGD)优于所有其他的算法。

2

好了,所以这并没有真正回答您最初提出的问题,但它确实提供了一个解决方案,你在评论中提到的问题。像处理一个连续动作空间

问题通常不通过改变所述误差测量,而是通过改变整体网络的体系结构处理。这可以让您继续使用相同的高度信息错误信息,同时仍然解决您想要解决的问题。

,可以做到这一点的一些可能的架构改变,在解决这一question讨论。在我看来,我建议使用修改后的Q学习技术,其中状态和动作空间都用自组织映射表示,这在上面链接中提到的一篇论文中讨论过。

我希望这会有所帮助。

+0

感谢您的回答,但我不想更改拓扑。实际上,我对ANN进行了一些小修改,我想用RL问题来测试它。如果你有一个连续的状态空间和一个离散的动作空间,你可以创建一个具有输入(s,a)和输出Q(s,a)的ANN,这样你就可以生成一个策略(选择最大化Q (s,a))通过计算所有a的Q(s,a)。对于连续的,这不起作用,因为你必须检查无限次数的动作。所以我会直接将pi(s,a)与一集的回归作为适应值进行近似。 – alfa

+1

剩余的字符太少...... :)我认为这个链接很棒:http://homepages.cwi.nl/~hasselt/papers/RL_in_Continuous_Spaces/Policy_Approximation.html。特别是关于“进化策略搜索策略”的部分。 – alfa