我需要使用强化学习来教授神经网络棋盘游戏的策略。我选择Q-learning作为特定的alghoritm。
我喜欢神经网络具有以下结构:
rows * cols + 1
神经元 - 输入 - 棋盘上连续字段的值(0
表示空,1
或2
表示玩家),动作(自然数) )在该州我的第一个想法是从创建状态,动作和值的地图开始,然后尝试教授神经网络。如果教学过程不成功,我可以增加神经元的数量并重新开始。
然而,I quickly ran into performance problems。首先,我需要从简单的内存中的Python dict
切换到数据库(没有足够的RAM)。现在数据库似乎是一个瓶颈(简单地说,有很多可能的状态,检索动作的值正在花费相当多的时间)。计算需要数周时间。
我想有可能在运行中教授神经网络,而不是中间的地图层。但是我如何在隐藏层上选择正确数量的神经元呢?我怎么能弄清楚我是否失去了永久保存(学习)的数据?