目录
1.术语总结
agent就是会做动作这样一个东西,比如超级玛丽中的Mario就是agent。
agent可以跟环境Environment交互,超级玛丽中的环境就是游戏本身,Agent做出动作action,环境就会更新状态State,并且给出一个奖励reward。
可以认为State就是当前屏幕上显示的画面,游戏玩家会根据这个画面进行操作,如果状态、动作、奖励等变量被观测到,就用小写字母表示,如果没观测到他们就是随机变量,用大写字母表示。
policy函数π和状态转移函数P,观测到状态S。
policy函数会输出每个动作的概率,告诉agent该做什么动作。
状态转移函数P是不知道的,环境通过函数P来随机选择下一个状态。
return回报,就是把未来所有的奖励都加权求和,我们希望return Ut越大越好,Ut是个随机变量,随机性来自于未来所有的状态和动作。
由于Ut的随机性在t时刻我们并不知道Ut是什么,只有当agent玩完游戏Ut才能被观测到,想要在当前就对return有一个预估的话,可以对Ut求期望,把其中的随机性给去掉。
Action value function,动作价值函数,Qπ。
就是对Ut的期望。除了当前状态St和动作at,其余随机变量都被期望给消除了。
Qπ跟状态St动作at,还有policy函数π有关。
如果使用policy函数π,那么Qπ可以告诉我们在状态St的情况下做出动作at是好还是坏。
Optimal action-value function,最优动作价值函数Q*。是对Qπ球最大化,把policy函数π给去掉了,意思就是说无论用什么样的policy函数来控制agent,在状态St做动作at,最多可以获得Q*这么多的期望回报。
State value function,状态价值函数 Vπ,是再求一次期望,把Qπ中的动作a也给去掉了,Vπ可以评价状态S和policyπ的好坏,如果使用policy函数π,那么Vπ可以告诉我们,当前状态St是好是坏,快赢了还是快输了?
2.强化学习的目的
强化学习的目的就是学会怎么样控制agent,让agent基于当前的状态S来做出相应动作a。争取能在未来得到尽量多的奖励。
流程如上图所示,观测到状态St。agent会做出动作at,然后环境会根据St和at来更新状态,给出新的状态St+1以及奖励rt。再开始下一轮agent再做动作,环境在更新状态以及给奖励,这样一直重复到游戏结束。
3.强化学习具体是要学什么?
通常来说是学policy函数π,或者是最优动作价值函数Q*,只要有这两个中的一个,我们就可以自动控制agent自动玩游戏了。
假如知道了policy函数π,就可以把状态S作为输入,算出每一个动作的概率,然后做一个随机抽样得到动作a。
假如知道了函数Q*,就可以用它来评估当前状态下每一个动作的好坏,从而选出Q值最高的动作。
假如当前状态下向上跳的Q值最高,Agent就应该向上跳。