什么是强化学习?

基础数学知识

随机变量、概率密度函数、期望、随机抽样

专业术语

state s:状态、Action a:动作

什么是强化学习?_第1张图片

Agent :智能体

在应用里面动作是谁做出来的谁就是agent

policy π:策略π

根据观测到的状态做出决策来控制agent运动

在数学上policy函数π是这样定义的,这个policy函数π是个概率密度函数:

这个公式的意思就是给定状态s做出动作a的概率密度。

举例:

什么是强化学习?_第2张图片
什么是强化学习?_第3张图片

根据上图超级玛丽的画面,其可以向上、左、右运动。向左的的概率是0.2,向右的概率是0.1.向上的概率是0.7。三种动作都有可能发生,只不过向上的概率大。

强化学习就是学这个policy函数。只要有了这个policy函数,就可以让它自动操作马里奥打游戏了。上面举的例子π是概率密度函数,根据输出的概率随机的选择动作。但是也有确定的策略,给定一个状态,动作是确定的。

reward R:奖励R

Agent做出一个动作,游戏就会给一个奖励。这个奖励通常需要我们来定义,奖励定义的好坏非常容易影响强化学习的结果。强化学习的目标就是使获得的奖励总和尽量要高。

State transition:状态转移

根据当前状态agent做出一个动作,状态发生改变,这个过程叫做状态转移。状态转移可以是固定的也可以是随机的,通常我们认为状态转移是随机的。例如在游戏中马里奥假如往上跳,对面的敌人可能往左往右移动,但是我不确定它往左或者往右的概率有多大,这个概率转移函数只有环境自己知道,我们玩家是不知道的。所以就造成了下一个状态的随机性。可以将状态转移用p函数来表示:

这是一个条件概率密度函数,意思是如果观测到当前的状态s以及动作a,p函数输出s’的概率。

agent与环境交互

什么是强化学习?_第4张图片
什么是强化学习?_第5张图片

这里的环境是程序,agent是马里奥,状态St是环境告诉我们的。在该游戏中,可以把当前屏幕上显示的图片看做状态St,agent根据当前状态做出一个动作at,agent做出动作at之后环境会更新状态St+1,同时环境还会给agent一个奖励rt。

强化学习的随机性

动作随机

动作是根据策略policy函数随机抽样得到的。我们用policy函数来控制agent,给定当前状态s, agent的动作A是按照policy函数输出的概率来随机抽样,比如当前观测到的状态s,policy函数会告诉我们每个动作的概率有多大,agent有可能做其中任何一种动作(向左,右,上)但这些动作的概率不尽相同。

什么是强化学习?_第6张图片

状态转移的随机性

Agent根据当前状态做出一个动作,环境改变当前状态S为下一个状态S’,这个S’具有随机性。环境用状态转移函数p算出概率,然后用随机抽样得到下一个状态S’。

什么是强化学习?_第7张图片

基础概念

Retrun:回报

Retrun又称为未来的累计奖励。

什么是强化学习?_第8张图片

由于未来的奖励不如现在的奖励值钱,所以强化学习中常使用Discounted return(折扣回报),把折扣率记作ᵯe,其值要介于0和1之间。如果未来和现在的权重一样那么γ=1,要是未来的奖励不重要γ就比较小,这就是折扣回报的定义:当前的奖励Rt没有折扣,下一时刻Rt+1的折扣率是ᵯe,依次类推,折扣率是一个超参数需要我们自己来调,折扣率的设置对强化学习有一定的影响。

什么是强化学习?_第9张图片

注:假如游戏已经结束,所有得奖励可以观测到,那么奖励的数值用小写字母表示。如果没有结束,这些奖励还是随机变量没有被观测到,用大写字母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π求最大化,将动作价值函数中π去掉,在众多策略当中选出最好的一种函数,得到最优动作价值函数。

什么是强化学习?_第10张图片

Q*的意义:它可以对动作a做评价,如果当前的状态是st,这个Q* 函数就会告诉我们这个动作at好不好。agent就能根据Q* 对动作的评价来做决策了,观测到一个状态,如果Q* 认为往右走这个动作的分数最高,agent就应该往右走,总之Q* 认为哪个动作的分数最高,agent就怎么动。

状态价值函数

Vπ是动作价值函数Qπ的期望,可以把这里的动作A作为随机变量,然后关于A求期望把A消掉,求期望得到的Vπ只和π和s有关。

什么是强化学习?_第11张图片

Vπ的意义:它能告诉我们当前的局势好不好,是快赢了还是快输了。

如果π是固定的,状态s越好Vπ的数值就越大。Vπ还能评价policy函数π的好坏,如果π越好,那么Vπ的平均值就越大。

总结

强化学习的目的就是怎么控制agent,让agent基于当前状态做出相应的动作a,争取能在未来得到更多的奖励。

流程如下:

什么是强化学习?_第12张图片

强化学习具体学什么?

通常来说学习policy函数π(a|s)或者最优动作价值函数Q*(s,a),只要有其中一个既可控制agent玩游戏。

假如知道policy函数π(a|s)就可以将状态s作为输入,算出每一个动作概率,然后做一个随机抽样得到动作a。

假如知道了函数Q*(s,a),就可以让它评估当前状态下每一个动作的好坏,从而选出Q值最高的动作。

你可能感兴趣的:(强化学习,人工智能)