artificial-intelligence - 确定在进化算法中要加权的输入

标签 artificial-intelligence evolutionary-algorithm tetris

我曾经写过一个俄罗斯方块 AI,它玩得非常好。我使用的算法( described in this paper )是一个两步过程。

在第一步中,程序员决定跟踪对问题“有趣”的输入。在俄罗斯方块中,我们可能对跟踪一行中有多少个间隙感兴趣,因为最小化间隙可以帮助更轻松地放置 future 的碎片。另一个可能是平均柱高,因为如果您即将失败,冒险可能是个坏主意。

第二步是确定与每个输入相关的权重。这是我使用遗传算法的部分。任何学习算法都可以在这里完成,只要根据结果随时间调整权重即可。这个想法是让计算机决定输入与解决方案的关系。

使用这些输入及其权重,我们可以确定采取任何行动的值(value)。例如,如果将直线形状一直放在右列中将消除 4 个不同行的间隙,那么如果它的权重高,这个 Action 可能会得到非常高的分数。同样,将它平放在上面实际上可能会导致间隙,因此该 Action 会得到低分。

我一直想知道是否有一种方法可以将学习算法应用于第一步,在那里我们找到“有趣”的潜在输入。似乎可以编写一个算法,让计算机首先了解哪些输入可能有用,然后应用学习来衡量这些输入。以前有没有做过这样的事情?它是否已经用于任何 AI 应用程序?

最佳答案

在神经网络中,您可以通过查找与您正在训练的分类具有最强相关性(正或负)的输入来选择“有趣”的潜在输入。我想你可以在其他情况下做类似的事情。

关于artificial-intelligence - 确定在进化算法中要加权的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1638981/

相关文章:

artificial-intelligence - 什么是差分进化,它与遗传算法相比如何?

artificial-intelligence - 如何在对话流中的后续意图中调用父意图的参数

javascript - 未捕获的类型错误 : Cannot read property 'length' of undefined [JavaScript]

python - 俄罗斯方 block 计时问题

artificial-intelligence - 使用遗传算法学习人工神经网络的目的是什么

c++ - OpenCv ANN 训练相同的数据不同的输出

algorithm - 决策变量的数量与目标空间维度的关系?

python - 多处理 |捕获一个退出的口译员

genetic-algorithm - 二进制比赛选择

java - 用俄罗斯方 block 填充整个 2D 阵列(俄罗斯方 block 板),没有剩余空间(Java)