资 源 简 介
一、俄罗斯方块DQN算法实验报告1. 网络结构图1 DQN网络结构2. 超参数 GAMMA = 0.99 # decay rate of past observations 设置增强学习更新公式中的累计折扣因子 OBSERVE = 500. # timesteps to observe before training 设置观察期的迭代次数 EXPLORE = 500. # frames over which to anneal epsilon 设置探索期的观察次数 FINAL_EPSILON = 0.002 # final value of epsilon 设置ε的最终最小值 INITIAL_EPSILON = 10.0 # starting value of epsilon 设置ε的初始值 REPLAY_MEMORY = 5900 # number of previous transitions to remember 设置replay memory的容量 BATCH = 32 # size of mini batch 设置每次网络参数更新世用的样本数目 K = 1 # only select an action every Kth frame, repeat prev for others,设置几帧图像进行一次动作, # K越大让控制台输出的速度变慢,游戏画面速度变快,机器人动作的速度变越迟缓。ACTIONS = 6 # number of valid actions 游戏动作数3.实验结果训练前期的self.score分数很低150左右,EPSILON=1.0,Q_MAX= 2.061341e-02:图2 EPSILON=1.0设置超参数EPSILON=0.05在1000步迭代之后:EPSILON固定在0.04999999999999416 Q_MAX = -1.163765e-01Self.score有明显的提升,但是之后无论训练多久都没有明显提升了。图3 EPSILON=0.05设置超参数EPSILON= 0.002在1001步迭代之后:EPSILON固定在0.000004 Q_MAX = 1.728995e 02Self.score可以轻松达到200以上。图4 EPSILON=0.000004设置超参数EPSILON= 0.000001在1001步迭代之后:EPSILON固定在-0.001998997999987482 Q_MAX = 1.899879e 03Self.score可以轻松达到200以上。图5 EPSILON=-0.002 【核心代码】用DQN来玩俄罗斯方块 tetrix_DQN ├── Wrapped Game Code│ └── tetris_fun.py├── deep_q_network.py├── logs_tetris│ ├── hidden.txt│ └── readout.txt└── saved_networks ├── tetris-dqn-10000.data-00000-of-00001 ├── tetris-dqn-10000.index ├── tetris-dqn-10000.meta └── tetris-dqn-316600003 directories, 8 files