我在 2023 年的最后几天开始了一个个人项目,只是为了好玩 - 我用 Python 重新创建了经典的“贪吃蛇游戏”(来自旧的诺基亚手机),我想将其与一些机器学习方法集成,以便 ML 算法能够学习如何玩并擅长它。
我的期望是像遗传算法+神经网络这样的东西,我“并行”实例化许多游戏,让它们玩直到所有游戏结束,最后选择最好的并尝试进化它们(应用一些随机突变)并最终交叉)。
在实施方面,这是一个简单的交易,但在性能方面,一旦我将 Keras 集成到项目中,它就开始变得非常慢 - 但这可能是我的错,也许还有其他最佳方法来做到这一点。
基本上,我做了以下事情:
事实是,尽管模型的拓扑非常简单,但使用所有这些“N”个 Keras 实例在性能方面似乎是一个糟糕的选择。
我正在考虑手动实现一个 ANN 模型,完成所有矩阵乘法,这样它会变得更轻,但在这样做之前我想问这里 - 是否有任何其他可用的 Python 资源可以满足我的需要?
虽然很有趣,但将遗传算法与神经网络结合起来非常慢。当群体中的个体可以在一毫秒内得到测试/验证时,遗传算法就能很好地工作。每当涉及训练网络时,事情就会变得慢得多。
在步骤中的哪个位置将损失反向传播到神经网络?如果每一步都完成,那么每 x 步执行一次就会加快速度。
我不确定是否有适合这些情况的资源。保持模型简单,在 GPU 上运行它们并在每 x 步传播损失会改善情况,但我并不期待奇迹。