基础数学知识
随机变量、概率密度函数、期望、随机抽样
专业术语
state s:状态、Action a:动作
Agent :智能体
在应用里面动作是谁做出来的谁就是agent
policy π:策略π
根据观测到的状态做出决策来控制agent运动
在数学上policy函数π是这样定义的,这个policy函数π是个概率密度函数:
这个公式的意思就是给定状态s做出动作a的概率密度。
举例:
根据上图超级玛丽的画面,其可以向上、左、右运动。向左的的概率是0.2,向右的概率是0.1.向上的概率是0.7。三种动作都有可能发生,只不过向上的概率大。
强化学习就是学这个policy函数。只要有了这个policy函数,就可以让它自动操作马里奥打游戏了。上面举的例子π是概率密度函数,根据输出的概率随机的选择动作。但是也有确定的策略,给定一个状态,动作是确定的。
reward R:奖励R
Agent做出一个动作,游戏就会给一个奖励。这个奖励通常需要我们来定义,奖励定义的好坏非常容易影响强化学习的结果。强化学习的目标就是使获得的奖励总和尽量要高。
State transition:状态转移
根据当前状态agent做出一个动作,状态发生改变,这个过程叫做状态转移。状态转移可以是固定的也可以是随机的,通常我们认为状态转移是随机的。例如在游戏中马里奥假如往上跳,对面的敌人可能往左往右移动,但是我不确定它往左或者往右的概率有多大,这个概率转移函数只有环境自己知道,我们玩家是不知道的。所以就造成了下一个状态的随机性。可以将状态转移用p函数来表示:
这是一个条件概率密度函数,意思是如果观测到当前的状态s以及动作a,p函数输出s’的概率。
agent与环境交互
这里的环境是程序,agent是马里奥,状态St是环境告诉我们的。在该游戏中,可以把当前屏幕上显示的图片看做状态St,agent根据当前状态做出一个动作at,agent做出动作at之后环境会更新状态St+1,同时环境还会给agent一个奖励rt。
强化学习的随机性
动作随机
policy函数会告诉我们每个动作的概率有多大,agent有可能做其中任何一种动作(向左,右,上)但这些动作的概率不尽相同。
状态转移的随机性
Agent根据当前状态做出一个动作,环境改变当前状态S为下一个状态S’,这个S’具有随机性。环境用状态转移函数p算出概率,然后用随机抽样得到下一个状态S’。
基础概念
Retrun:回报
Retrun又称为未来的累计奖励。
由于未来的奖励不如现在的奖励值钱,所以强化学习中常使用Discounted return(折扣回报),把折扣率记作ᵯe,其值要介于0和1之间。如果未来和现在的权重一样那么γ=1,要是未来的奖励不重要γ就比较小,这就是折扣回报的定义:当前的奖励Rt没有折扣,下一时刻Rt+1的折扣率是ᵯe,依次类推,折扣率是一个超参数需要我们自己来调,折扣率的设置对强化学习有一定的影响。
注:假如游戏已经结束,所有得奖励可以观测到,那么奖励的数值用小写字母表示。如果没有结束,这些奖励还是随机变量没有被观测到,用大写字母R来表示奖励,回报和奖励有关系,所以回报return也是一个随机变量,也用大写字母U来表示。
Retrun的随机性:
有两个来源:动作的随机性、状态转移的随机性
因为每一个奖励Ri,都和状态Si和动作Ai有关,那么Ut就跟t时刻开始未来所有的状态和动作都有关,return Ut的随机性就是和未来所有的状态(St,St+1…)和动作(At,At+1…)有关。
价值函数
动作价值函数
对Ut求期望使用积分将未来的随机变量积掉,即动作At+1等和状态St+1等,St和At没有被积掉,St和At被作为观测到的数值来对待,而不是作为随机变量。Qπ的值依赖于St和At,函数Qπ还和policy函数π有关。因为积分的时候会用到policy函数,如果policy函数不一样,积分得到的函数Qπ就不一样。
动作价值函数Qπ的直观意义:函数Qπ告诉我们如果用policy函数π,那么在t时刻这个状态St下做at这个动作是好还是坏。已知policy函数π,Qπ就会给当前状态下所有的动作进行打分,然后我们就知道哪个动作好,哪个动作不好。
最优动作价值函数
对π关于Qπ求最大化,将动作价值函数中π去掉,在众多策略当中选出最好的一种函数,得到最优动作价值函数。
Q*的意义:它可以对动作a做评价,如果当前的状态是st,这个Q* 函数就会告诉我们这个动作at好不好。agent就能根据Q* 对动作的评价来做决策了,观测到一个状态,如果Q* 认为往右走这个动作的分数最高,agent就应该往右走,总之Q* 认为哪个动作的分数最高,agent就怎么动。
状态价值函数
Vπ是动作价值函数Qπ的期望,可以把这里的动作A作为随机变量,然后关于A求期望把A消掉,求期望得到的Vπ只和π和s有关。
Vπ的意义:它能告诉我们当前的局势好不好,是快赢了还是快输了。
如果π是固定的,状态s越好Vπ的数值就越大。Vπ还能评价policy函数π的好坏,如果π越好,那么Vπ的平均值就越大。
总结
强化学习的目的就是怎么控制agent,让agent基于当前状态做出相应的动作a,争取能在未来得到更多的奖励。
流程如下:
强化学习具体学什么?
通常来说学习policy函数π(a|s)或者最优动作价值函数Q*(s,a),只要有其中一个既可控制agent玩游戏。
假如知道policy函数π(a|s)就可以将状态s作为输入,算出每一个动作概率,然后做一个随机抽样得到动作a。
假如知道了函数Q*(s,a),就可以让它评估当前状态下每一个动作的好坏,从而选出Q值最高的动作。