ai junkie 神经网络教程 – 理解困难

我一直在尝试理解http://www.ai-junkie.com/ann/evolved/nnt1.html上的神经网络教程。

我认为我能理解教程的前8页(最后一页),虽然可能不是,因为如果我真的理解了,我应该能理解最后一页,对吗?不幸的是,对我来说,这页解释得不好,因为显然应该“从代码中的注释中轻松理解”。而且,论坛似乎也不工作。

我希望有已经看过或完成过这个教程的人能帮助解释,但如果你没有看过并且想看,那就去吧。基本上,它结合了神经网络和遗传算法来控制小坦克的左右履带,以便它们在清扫地雷时移动。神经网络以最近的地雷位置和坦克的方向(lookat)向量作为输入,输出左右履带的值,用于更新坦克的速度和旋转。在一轮结束时,坦克会被繁殖以产生更好的新一代坦克。

但是…我就是不明白。具体来说,我不明白坦克履带值与坦克拾取地雷的能力之间的确切关系,我也不理解那些不拾取任何地雷的垃圾坦克和那些快速高效清扫地雷的好坦克之间的区别

显然(如果你运行了演示程序),随着模拟时间的延长,坦克确实是在改进的。但是能有人向我解释(希望用托尼·罗宾逊的话说,用《Beano》读者能理解的语言)到底发生了什么吗?

谢谢!


回答:

根据我对你问题的理解,这是我能给出的最佳答案。如果这不是你所问的,请原谅,但你确实要求最基本的解释。

我不明白坦克履带值与坦克拾取地雷的能力之间的确切关系

坦克的工作方式是它有两个履带 – 左和右。每个履带都有速度。如果两个履带都以全速向前移动,坦克将沿直线向前移动。如果左履带向前移动,右履带以相同速度向后移动,坦克将顺时针旋转。所以这基本上是一个复杂的控制机制,旨在使练习比坦克可以接受“向北移动一格”类型指令的练习更有趣。

神经网络的整个目的是接受输入(当前坦克方向和最近地雷的位置)并生成输出,以正确地引导坦克使用其不稳定的左右履带控制向地雷移动。神经网络学会了如果地雷在其右侧,它需要将左侧设置为“向前”,右侧设置为“向后”,直到它指向地雷。然后它需要将左右两侧都设置为“向前”,这样它实际上会向前移动到地雷处。

我不理解那些不拾取任何地雷的垃圾坦克和那些快速高效清扫地雷的好坦克之间的区别。

垃圾坦克没有正确的NN来正确引导坦克。如果它看到右侧有地雷,它可能会向左旋转远离地雷,因为它不知道如何向右转。或者它可能会转离它已经指向的地雷,而不是向它移动。好的坦克“知道”如何向地雷移动,也就是说,当给出最近地雷的输入时,它们的NN会以某种方式加权,使这些NN倾向于向地雷移动而不是远离它。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注