我最近在学习人工神经网络,它们的实用性引起了我的兴趣。因此,我尝试制作一个能够玩简单游戏(2048,这个游戏已经被做过很多次,所以似乎是一个很好的起点)。然而,在这个过程中我遇到了两个问题。
第一个问题是我编程的方式没有训练数据集。这个问题似乎可以解决,但我还没有找到方法。
第二个问题是神经网络似乎只能最小化误差,而在这个游戏中,你试图最大化得分。在任何给定时间都没有最优设置供神经网络进行检查。
我喜欢能够创建一个AI并让它在没有我直接教导的情况下学习最佳策略,这就是我最初决定尝试这种格式的原因。我的问题是,有没有一种神经网络可以克服这些缺点,或者有没有一种编程方式可以避免这些问题,或者我是否必须切换到不同的算法/程序。如果我必须切换,请推荐我应该切换到什么。
感谢您的任何意见
另外,如果这应该发布在Stack Exchange的其他地方,请告诉我应该发布在哪里
回答:
首先,简要回答您的直接问题。不过,请继续阅读以了解我的建议 🙂
第一个问题是我编程的方式没有训练数据集。这个问题似乎可以解决,但我还没有找到方法。
我认为一开始没有训练数据集并不会妨碍您拥有训练集。我认为您可以使用另一个不包含您的神经网络的程序来生成自己的训练集。然而,这可能不是您想要的解决方案。
第二个问题是神经网络似乎只能最小化误差,而在这个游戏中,你试图最大化得分。在任何给定时间都没有最优设置供神经网络进行检查。
这也不是一个问题,因为您可以定义您的成本函数,让更高的分数具有更小的误差。或许您可以确定理论上的最高分数为“0误差”,而得分为0时误差为100,然后创建一个符合此模型的成本函数。
还有什么别的吗?
在我看来,“强化学习”似乎最适合2048,但像所有AI一样,您只有尝试并有证据支持后才会知道!查看一下,看看是否符合您的需求。下面是链接中的简短引文。
强化学习与标准的监督学习不同,因为从不呈现正确的输入/输出对…