我正在做一个强化学习的人工智能,我得到了奇怪的结果,损失显示如下: Tensorflow损失:https://imgur.com/a/Twacm
当它在训练的时候,在每一场比赛之后,它与一个随机的玩家和一个具有加权矩阵的玩家进行游戏,但它会上下起伏:结果:https://imgur.com/a/iGuu2
基本上,我正在做一个强化学习智能体,学习扮演奥赛罗。使用E-greedy,Experience replay和深度网络使用Keras over Tensorflow。尝试了不同的架构,如sigmoid、relu和上图所示的tanh。它们都有类似的损失,但结果略有不同。在这个例子中,智能体从10万个专业游戏中学习。以下是架构,默认学习率为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个白色正方形。使用负输入是不是很糟糕?
发布于 2017-12-26 21:44:19
这可能是激活函数的问题。尝试使用relu而不是tanh,如果你使用深度Q学习,你可能不需要任何激活函数,也不需要关注重置权重的优化器。
https://stackoverflow.com/questions/47976845
复制相似问题