🗒️AI导论作业-强化学习实验
00 分钟
2023-5-16
2023-5-23
type
status
date
slug
summary
tags
category
icon
password

DQN在2048游戏中的应用

使用深度强化学习解决复杂决策问题
训练后
训练后
HW-DQN-2048
tjuDavidWangUpdated Nov 3, 2023

DQN算法的基本结构

notion image
Deep Q-learning(DQN)是Q-learing和神经网络的结合,利用经验回放来进行强化学习的训练,结构如下:

初始化神经网络

根据输入的特征类型,选择适当的神经网络结构。
输入:一个(4,4,1)的矩阵表示图像上每个格子中的数字(2/4/8/16…) 对于图像输入,采用卷积层,提取图像的局部特征; 对于特征输入,采用全连接层。神经网络用来逼近值函数,它的输出表示动作的Q值。 输出:(4,1,1)的矩阵,表示往各个方向运动的权重
整个过程:(4,4,1)→(128,3,3)→(64,2,2)→(16,1,1)
神经网络用来逼近值函数,它的输出表示动作的Q值。
notion image
值函数(Value Function)用于衡量在特定状态下采取不同动作的价值。 对于Q-learning算法,我们使用一个Q函数(Q-function)来估计值函数, 即估计每个状态-动作对的价值。
资料
神经网络用来逼近值函数,一般采用全连接层表达特征输入,采用卷积层表达图像输入。其损失函数表达为
notion image
notion image
notion image
γ经验折扣率,γ取0,表示只考虑当下,γ取1,表示只考虑未来。

计算损失函数

DQN算法的损失函数由两部分组成。
首先,根据Q-learning的更新公式,计算目标Q值,即, 其中γ为经验折扣率,表示对未来奖励的重要性。
然后,通过神经网络计算当前状态下的预测Q值eval_q = Q(s, a)。 损失函数为均方误差(MSE)损失,即
通过最小化损失函数,DQN算法的目标是逐渐使行为网络的预测Q值接近目标Q值,从而提高智能体的性能。

经验回放

模型与环境交互得到的(s,a,r,s')会存入一个ReplayBuffer,当ReplayBuffer中存储的样本数量超过了批量大小(batch_size)时,就可以从ReplayBuffer中随机采样一批样本用于训练。 采用该策略的优点如下:①减少样本之间的相关性,以近似符合独立同分布的假设,通过存储过去的经验样本并随机采样,可以打破时间上的相关性,降低样本之间的相关性。这有助于使训练样本更加独立,避免过多依赖于连续的样本序列。②增大样本的利用率:通过重复使用过去的经验样本,可以增大样本的利用率。由于每次训练都是从Replay Buffer中随机采样,可以多次使用相同的样本进行训练,提高样本的效用。

探索策略

采用贪婪探索策略,agent以ε的概率进行随机探索,以探索环境中的不同动作,其他时间则采取模型计算得到的动作。
ε-decay是一种强化学习策略,用于控制智能体的探索和利用之间的平衡。在策略的开始,智能体以较高的概率(由较高的ε值决定)进行随机动作选择,即更多地进行环境探索。然后,随着时间的推移,ε值会逐渐衰减,降低随机探索的频率,使得智能体更倾向于利用已学到的知识选择最优动作。通过ε-decay策略,智能体能在学习初期广泛地探索环境,然后逐渐转向基于学到的经验进行更有效的决策。
notion image

算法的整体流程

  1. 初始化深度 Q 网络(behaviour_model)和目标网络(target_model)。如果指定了预训练模型,则加载预训练模型参数。
  1. 创建优化器(例如Adam)和损失函数(均方误差)。
  1. 在每个时间步: a. 根据当前状态使用贪婪探索策略选择一个动作(使用get_action方法)。 b. 执行选择的动作,观察下一个状态、奖励和游戏是否结束的信息。 c. 将经验存储到经验回放缓冲区中(使用add_transition方法)。 d. 如果经验回放缓冲区中的样本数量大于等于指定的批大小(batch_size): i. 从经验回放缓冲区中随机采样一批经验(使用get_sample方法)。 ii. 使用这批经验计算损失函数,并通过反向传播算法更新行为网络的参数。 iii. 每隔一定步数(target_update_freq),将行为网络的参数复制给目标网络。
  1. 重复步骤3直到达到训练的终止条件(例如达到最大训练步数)。
 
 

实验结果分析

log list
notion image
 
notion image
 
notion image
 
使用Dueling DQN以及epsilon-decay
使用Dueling DQN以及epsilon-decay
notion image
根据 current_max_reward 的变化,可以观察到agent在训练过程中游戏奖励的进展。如果 current_max_reward 不断更新并增加,表示代理的性能逐渐提升。然而,如果 current_max_reward 的值保持不变或出现震荡,可能表示agent在某个奖励水平上达到了瓶颈,无法进一步提高。
notion image

总结与未来展望

  1. To the best of our knowledge, this is the first successful application of Deep Q-Learning to 2048: 这句话表示,据作者所知,这是首次成功将深度Q学习(一种强化学习算法)应用于2048游戏。
  1. My Deep Learning Model can play better than I can on average: 这表示作者训练的深度学习模型在平均水平上玩2048游戏的表现优于作者本人。
  1. The model is not yet at superhuman performance: 这表示虽然模型的表现已经很好,但还没有达到超越人类的水平。
  1. Agent Knows Best is beneficial: 这可能表示"Agent Knows Best"(智能体最知道)策略在这个项目中是有益的。具体的策略可能需要结合项目的上下文来理解。
  1. We hypothesize that performance can be increased by: 这句话是对未来工作的展望。作者认为通过以下几种方法可能可以提高模型的性能:
      • Longer training times: 延长训练时间
      • Longer annealing times: 延长退火时间(可能是指学习率退火策略中的退火期)
      • Larger models: 使用更大的模型(可能是指更深或更宽的网络结构)
      • Prioritized Experience Replay: 采用优先级经验回放(一种改进的经验回放策略,优先学习那些预计会带来更大改进的经验)
      • Epsilon Explorer: 使用Epsilon探索策略(一种平衡探索和利用的策略,以一定概率随机选择动作,以促进探索)

Reference


评论
Loading...