1

我正在做一个带有强化学习的 AI,我得到了奇怪的结果,损失显示如下:Tensorflow loss: https://imgur.com/a/Twacm

在训练的同时,在每场比赛之后,它都会与一名随机球员比赛,并在一名具有加权矩阵的球员之后进行比赛,但它会上下波动:结果:https ://imgur.com/a/iGuu2

基本上我正在做一个强化学习代理来学习玩奥赛罗。在 Tensorflow 上使用 Keras 使用 E-greedy、体验回放和深度网络。尝试了不同的架构,如 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 个白色方格。使用负输入不好吗?

4

1 回答 1

1

这可能是您的激活功能的问题。尝试使用 relu 而不是 tanh,如果您使用的是深度 q 学习,您可能不需要任何激活函数或关心重置权重的优化器。

于 2017-12-26T13:44:19.280 回答