我曾经编写过一个俄罗斯方块AI,它玩得相当不错。我使用的算法(在这篇论文中描述)是一个两步过程。
第一步,程序员决定跟踪对问题“有趣”的输入。在俄罗斯方块中,我们可能对跟踪一行中有多少个空隙感兴趣,因为最小化空隙可能有助于更容易地放置未来的方块。另一个可能就是平均列高,因为如果你快要输了,冒险可能不是一个好主意。
第二步是确定与每个输入相关的权重。这是我使用遗传算法的部分。任何学习算法都可以,只要权重会根据结果随时间调整。其思想是让计算机决定输入与解决方案的关系。
使用这些输入及其权重,我们可以确定采取任何行动的价值。例如,如果将直线形状一直放在最右边的列中,将消除 4 个不同行的空隙,那么如果其权重很高,则此操作可能会获得非常高的分数。同样,将其平放在顶部实际上可能会导致空隙,因此该操作获得的分数很低。
我一直想知道是否有一种方法可以将学习算法应用于第一步,即我们找到“有趣”的潜在输入。似乎可以编写一种算法,让计算机首先学习哪些输入可能有用,然后应用学习来衡量这些输入。以前有人做过这样的事情吗?它是否已在任何 AI 应用程序中使用?
回答:
在神经网络中,您可以通过找到与您正在训练的分类具有最强相关性(正或负)的那些输入来选择“有趣”的潜在输入。 我认为您可以在其他情况下做类似的事情。