【发布时间】:2011-01-28 14:55:24
【问题描述】:
正如我在之前的问题中提到的,我正在编写一个解决迷宫的应用程序来帮助我了解更多的理论 CS 科目,经过一些麻烦之后,我得到了一个可以进化一组规则的遗传算法(由布尔值处理) 以便通过迷宫找到一个好的解决方案。
话虽如此,单独的 GA 还可以,但我想用神经网络来加强它,即使我对神经网络没有真正的工作知识(没有正式的理论 CS 教育)。在对该主题进行了一些阅读后,我发现可以使用神经网络来训练基因组以改善结果。假设我有一个基因组(基因组),例如
1 0 0 1 0 1 0 1 0 1 1 1 0 0...
我如何使用神经网络(我假设是 MLP?)来训练和改进我的基因组?
除此之外,由于我对神经网络一无所知,因此我一直在研究使用我的迷宫矩阵(二维数组)来实现某种形式的强化学习,尽管我对以下算法的要求有些困惑来自我:
(来自http://people.revoledu.com/kardi/tutorial/ReinforcementLearning/Q-Learning-Algorithm.htm)
1. Set parameter , and environment reward matrix R
2. Initialize matrix Q as zero matrix
3. For each episode:
* Select random initial state
* Do while not reach goal state
o Select one among all possible actions for the current state
o Using this possible action, consider to go to the next state
o Get maximum Q value of this next state based on all possible actions
o Compute
o Set the next state as the current state
End Do
End For
对我来说最大的问题是实现奖励矩阵 R 和 Q 矩阵到底是什么,并获得 Q 值。我为我的迷宫和每一步的枚举状态使用多维数组。这将如何用于 Q-Learning 算法?
如果有人可以通过解释我需要做些什么来实现以下内容来提供帮助,最好是在 Java 中,尽管 C# 也很好,可能还有一些源代码示例,将不胜感激。
【问题讨论】:
-
这是一个非常复杂的主题。你所谈论的事情通常是在人工智能大学课程的一个完整学期中解决的。我不确定它们是否可以在 Stackoverflow 问题和答案中得到正确解决,但我肯定有兴趣看到人们尝试。我从来没有完全理解其中一些算法。
-
附带说明,如果您愿意花一些钱购买一本非常好的关于该主题的教科书,那么我建议:amazon.com/Artificial-Intelligence-Modern-Approach-3rd/dp/…
-
我已经看过那本书几次,虽然它提供了一个不错的主题理论背景,但理解它如何实现却让我很生气。如果有人可以根据我提供的信息写出一个可行的基本解决方案,即使它是伪代码,我也会很乐意尝试实现它并给出一个可接受的答案。
-
您是在尝试解决特定的迷宫,还是一般的迷宫?一个简单的强化学习算法将能够解决特定的迷宫,但解决迷宫通常需要更复杂的算法,特别是可能更复杂的状态空间和可能的动作空间。
-
我错过了什么吗? Djikstra 的算法可以用来解迷宫...
标签: java computer-science artificial-intelligence theory neural-network