【问题标题】:Backpropagation neuron networks反向传播神经元网络
【发布时间】:2016-11-30 05:01:48
【问题描述】:

您好,我现在正在玩神经网络。我重新实现了本教程: http://www.ai-junkie.com/ann/evolved/nnt5.html,但有鱼和食物,还有不同的编程语言。但重点是一样的。

我有一堆鱼 (20) 和一堆 foos (40)。 每条鱼都有大脑(神经网络(从现在开始我将使用 ANN))。目前神经网络不使用反向传播,而是通过遗传算法进行训练。它工作正常。我想通过使用反向传播来实现学习,而不是比较这两种方法。问题仅在于反向传播算法。我读了一些关于它的文章,但我有点不明白如何在这个例子中实际使用它。我可能只是不明白。
我会解释问题:
现在我有 4 个输入的神经网络。 LookAt vector lookAt(x,y), vector to most recent food nearestFood(x,y) => 这个向量的值是 ANN 的输入。 nn 的输出是鱼的左右鳍状肢的速度 => ANN 有 2 个输出 leftFliperSpeed,rightFlipperSpeed。
所以总结一下。我有这样的安:
输入:4(lookAt.X、lookAt.Y、closestFood.X、closestFood.Y)
层:3(输入、输出和一个隐藏的 6 个神经元)
输出:2(leftFlipperSpeed,rightFlipperSpeed)


我是这样使用的:
1. 通过遗传算法,我得到了第一批鱼类(阅读我将得到 ANN 输入的权重)。
2.运行一些迭代次数的模拟,让鱼吃鱼找到并吃掉食物。我鱼找到了食物,她的健身功能增加了,食物被重新定位到其他地方。我一直有恒定数量的鱼和食物。
3. 例如,经过 2000 次迭代后,我再次运行遗传算法并从实际种群中获得新种群 - 适应度更高的鱼有更高的生存机会或成为新鱼的爸爸或妈妈。我得到了神经 newtork 的新权重。并从第 2 点继续。

学习过程在这里简单明了。它的学习没有监督。

现在是反向传播。从我读到的文章中,反向传播是监督学习。问题在于训练集。有了遗传学,我在这里不需要它,是的。
我能做些什么来实现反向传播。
任何提示我如何从中获得新的权重以及如何更换主管?我认为没有主管就无法进行反向传播。它可以以某种方式使用我从遗传算法学习中获得的数据,但它取决于输入的数量、有鱼的食物池的大小等。

【问题讨论】:

    标签: neural-network genetic-algorithm backpropagation supervised-learning unsupervised-learning


    【解决方案1】:

    反向传播只是一种计算梯度的方法,仅此而已。它并不是真正的监督学习技术,它只是能够有效地计算一些预先定义的损失函数的梯度(在网上的例子中通常是监督损失)。

    对于所描述的问题,最合理的技术实际上是强化学习。在那里,您将能够通过您的网络进行反向传播,并以结构良好的方式学习喂养策略(与遗传算法相反,遗传算法会因任何更复杂的问题而失败)。你可能想看看像 Deep Q-learning 这样的对象(它实际上只是一种简单的强化学习技术,你的策略由神经网络控制,这正是你想要实现的——你有一个基于神经网络的策略,它选择动作;尽管在您的情况下它是一个连续的输出空间,因此您可能需要针对此特定用例对其进行离散化)。

    【讨论】:

      猜你喜欢
      • 2015-03-03
      • 2012-02-21
      • 2011-01-05
      • 1970-01-01
      • 1970-01-01
      • 2013-04-26
      • 2016-09-19
      • 2014-03-15
      相关资源
      最近更新 更多