问题:获得正确的体系结构和超参数以获得适用于简单网格游戏的适当神经网络的正确方法是什么?而如何将它扩展到使用更大网格的游戏版本?用于q学习的神经网络体系结构
语境:写过关于Q学习神经网络的大多数教程和文章使用卷积神经网络能够从不同的游戏手柄屏幕输入。但我正在试验一个更简单的游戏与原始数据:
Simple Matrix Game 其中代理的可能动作是:上,下,右,左。
与完整代码的笔记本可以在这里找到:http://151.80.61.13/ql.html
所有测试的神经网络没有达到比做随机移动更好。在约1000集之后,奖励达到平均8.5分(满分30分),然后开始下降。大多数情况下,最终只是为每一个动作发送同样的动作。
我知道,对于一个小型游戏来说,Q表会更好,但这是为了学习实现深度Q学习,并且在一个小例子中工作之后,我想将它缩放到更大的网格。
当前神经网络(Keras)和解决方案我曾尝试:
model = Sequential()
model.add(Dense(grid_size**2,input_shape=(grid_size, grid_size)))
model.add(Activation('relu'))
model.add(Dense(48))
model.add(Flatten())
model.add(Activation('linear'))
model.add(Dense(4))
adam = Adam(lr=0.1)
model.compile(optimizer=adam, loss='mse')
return model
- 不同隐藏层尺寸:[512,256,100,48,32,24]
- 变数目的隐藏层:[1,2,3]
- 不同学习率:[3,1,0.8,0。 5,0.3%,0.1%,0.01]
- 测试各种激活函数:线性,乙状结肠,SOFTMAX,RELU]
- 的发作和小量衰减
- 的程度数有和没有试图目标网络
- 尝试了不同的网络,这些网络来自写在OpenAI体育馆CartPole,FrozenLake和Flappy Bird中的教程。
这个问题并不清楚。你需要关于如何实施网格搜索过程的建议,或者你想知道如何构建你的网站以获得更好的结果? – paolof89
神经网络必须学习如何获取3x3网格中的大部分点。 Q学习实施似乎工作正常。所以,我所要求的是如何构造NN(为此我尝试了大量不同的结构),使其成为Q算法的函数逼近器。 – DonUber