强化学习
这一章会讲DQN算法,并且用TD算法来训练DQN。Value-Based Reinforcement Learning-DQN
前言
说明一下:这是我的一个学习笔记,课程链接如下:最易懂的强化学习课程
公众号:AI那些事

一、Action-Value Functions
我们回顾一下Action-Value Functions:

这些R都是环境给的Reward奖励,每当agent做出一个动作,环境就会更新一个状态,并且给一个奖励R,每一个奖励R都依赖前一个状态和动作,所以Return依赖t时刻开始所有的动作和所有的状态,未来的状态A和S都是随机变量,动作A的随机性来自policy函数π,动作是agent根据函数π随机抽样得到的,状态S的随机性来自于状态转移函数p,新的状态是根据函数p随机抽样得到的,未来所有的动作和状态都是随机的,Ut依赖于这些动作和状态,因此Ut也是随机的,Ut的值可以反映出来未来奖励的总和,所以我们想了解Ut的大小,由于Ut是一个随机变量,在t时刻我们并不知道Ut的值,我们可以对Ut求期望,这样就可以排除掉Ut中的随机性,这个期望是关于未来所有的动作A和状态S求的,期望消除了S和A的随机变量,只留下了At和St两个变量,通过求期望我们得到了Qπ函数,它被称为Action-Value function 动作价值函数,Qπ和策略函数π有关,和St和At也有关,未来的随机性都被期望所消除了,Qπ只依赖当前的动作At和状态St,Qπ可以反映出当前状态St下做动作At的好坏程度,我们想要进行一般消除策略函数π,我们可以根据Qπ对π求最大化得到最优动作价值函数Q*(最优动作价值函数)
Q* 告诉我们不管用什么样的策略π要使agent在当前状态st下做动作at,那么回报Ut的期望顶多就是Q*(st,at),不会更好,Q* 函数与policy函数π无关,只要agent做的动作a那么Q*(st,at)就是最好的结果了,哪怕之后你把策略函数π改进的更好,你获得的回报也不会比Q*(st,at)更好。
说的更简单一点Q* 函数告诉我们,基于当前状态st做出动作at的好坏程度,所以Q* 函数可以指导agent做决策,agent观测到当前的状态st,Q* 函数可以给当前状态进行打分,比如向上跳是3000分,向左是2000分,向右是1000分,agent可以根据分数来做决策,既然向上跳的分数最高是3000分agent就应该向上跳,这样期望回报才会最大化。
二、DQN

2.1 游戏中agent的目标是什么?
主要目标是打赢游戏,既然目标定下来了,那么agent就要努力的实现目标,假设Q* 函数是知道的,那么agent该怎么做决策呢?
2.2 agent如何做决策?
决策就是选出最优动作,那什么才是最优动作呢,我们刚才说Q* 函数可以给所有的动作打分,每个动作a都有一个分数,最好的动作a就是分数最高的那个动作,我做一个更加通俗的解释:Q* 函数就像一个先知一样,它能预

本文详细介绍了强化学习中的DQN算法,讲解了Action-Value函数、DQN的工作原理及目标。DQN通过神经网络近似Q*函数,以指导智能体进行决策。TD算法在不完成整个序列的情况下也能更新模型参数,使得DQN能逐步优化其策略。文章以纽约到亚特兰大的驾车时间为喻,深入浅出地阐述了TD算法的更新过程,并展示了如何利用TD算法训练DQN。

6353

被折叠的 条评论
为什么被折叠?



