我正在进行强化学习的人工智能,并且我得到了奇怪的结果,这样的损失就像这样: 张量流失:https://imgur.com/a/Twacm
虽然在每次比赛结束后进行训练,但是在一个有加权矩阵的玩家之后,它会与一个随机玩家对战,但它会上下移动: 结果:https://imgur.com/a/iGuu2
基本上我正在做一个学习演奏奥赛罗的强化学习代理人。使用E-greedy,使用Keras over Tensorflow体验重播和深度网络。尝试了不同的架构,如sigmoid,relu和上面显示的图像,tanh。所有这些都有类似的损失,但结果有点不同。 在这个例子中,代理人正在学习100k专业游戏。 这是架构,默认学习率为0.005:
model.add(Dense(units=200,activation='tanh',input_shape=(64,)))
model.add(Dense(units=150,activation='tanh'))
model.add(Dense(units=100,activation='tanh'))
model.add(Dense(units=64,activation='tanh'))
optimizer = Adam(lr=lr, beta_1=0.9, beta_2=0.999, epsilon=1e-08, decay=0.0)
model.compile(loss=LOSS,optimizer=optimizer)
原始代码:https://github.com/JordiMD92/thellia/tree/keras
那么,为什么我得到这些结果? 现在我的输入是64个神经元(8 * 8矩阵),0个空方块,1个黑色方块和-1个白色方块。使用负面投入是不是很糟糕?
答案 0 :(得分:1)
这可能是你的激活功能的问题。尝试使用relu而不是tanh,如果你正在使用深度q学习,你可能不需要任何激活函数或关注重置权重的优化器。