0

我喜与神经网络,现在玩。我做了那种本教程的重新实现的: http://www.ai-junkie.com/ann/evolved/nnt5.html,但随着鱼类和食品也有不同的编程语言。但重点是一样的。
的BP神经网络

我有一堆鱼(20)和一堆foos(40)。每条鱼都有大脑(神经网络(我将从现在开始使用ANN))。目前,神经网络不使用backprop,并通过遗传alghoritm进行训练。它工作正常。我想通过使用反向传播来实现学习,而不是比较这两种方法。问题只是反向传播alghoritm。我读了一些关于它的文章,但是我没有明白它如何在这个例子中被使用。我可能只是不理解它而已。
我会解释这个问题:
现在我有4个输入的神经网络。注视矢量的lookAt(X,Y),向量最接近食品closestFood(X,Y)=>这个向量的值被输入到神经网络。 nn的输出是鱼的右鳍的速度=> ANN具有2个输出leftFliperSpeed,rightFlipperSpeed。
所以总结起来。我有安这样的:
输入:4(lookAt.X,lookAt.Y,closestFood.X,closestFood.Y)
层:3(输入,输出,和一个隐藏的6个神经元)
输出:2 (leftFlipperSpeed,rightFlipperSpeed)


我用这样的:
1.遗传alghoritm我得到鱼的第一群(读我将获得的权重为ANN的输入)。
2.运行一些迭代次数的模拟,让鱼吃掉鱼类找到和吃的食物。我发现鱼类食物,她的健身功能增加,食物在其他地方重新定位。我一直都有不断的鱼类和食物。
3.在例如2000次迭代后,我再次运行遗传alghoritm并从实际人群中获得新的人群 - 具有较高适应度的鱼有更高的生存机会或成为新鱼的父亲或妈妈。我为神经蝾螈获得新的重量。并从第2点开始继续。

这里的学习过程很简单明了。而且它没有上司的学习。

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

回答

1

反向传播只是一种计算梯度的方法,没有其他的。它不是真正的监督学习技术,它只是关于能够有效地计算一些优先损失函数的梯度(这通常在线例子中将是监督损失)。

对于所描述的问题,最合理的技术实际上是强化学习。在那里,你将能够通过你的网络反向传播,并且以良好结构化的方式学习喂养政策(与遗传算法相反,这将会带来更复杂的问题)。你可能想看看像深度学习这样的对象(它有效地只是一个简单的RL技术,你的策略是由神经网络控制的,这正是你想要达到的 - 你有一个基于神经网络的策略,它选择动作;虽然在你的情况下它是一个连续的输出空间,因此你可能需要为这个特定的用例离散化)。