【发布时间】: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