2021 重启强化学习(1)

009.jpeg

如果想观看相关视频可以在西瓜视频(账号zidea)或者哔哩哔哩(账号zidea2015)找到我发布视频解说,注意头像和简书使用头像一致。

Deepmind 自从在围棋战胜了围棋世界冠军之后就开始着手让 AI 来玩更复杂游戏 starcraft。我想大家可能和一样对于 AI 能够玩游戏的项目是如何实现的非常感兴趣。兴趣归兴趣如果要实现一个这样项目还是具有挑战性,不过不管有多难,我们还是从基础做起一步一步。

010.png

概率基础知识

首先在开始之前简单地回归一下可能在本次分享中用到一些概率知识。

随机变量以及分布函数

首先函数自变量可以从实数扩展到例如自变量为两点,输出两点距离。用大写字母表示随机变量,而用小写来表示观测值。事件用于语言来描述样本集合,这些样本具有一定属性才聚集在一起

\begin{aligned} P(X=0) = 0.5\\ P(X=1) = 0.5 \end{aligned}

概率密度函数(PDF)

PDF 是 Probability Density Function 的缩写,表示随机变量某一个确定值出现的可能性,也就是我们熟悉的 PDF。

002.png
003.png

p(x) = \frac{1}{\sqrt{2\pi \sigma^2}}\exp \left(- \frac{(x - \mu)^2}{2 \sigma^2}\right)

期望

对于连续分布的期望
E[f(x)] = \int_x p(x)f(x)dx

对于离散分布的期望
E[f(x)] = \sum_x p(x)f(x)

随机抽样

随机采样就是调查对象总体中每个部分都有同等被抽中的可能,是一种完全依照机会均等的原则进行的抽样调查,被称为是一种等概率

术语

006.png
001.jpg

状态(State)

所谓状态就是观测到游戏画面的每一帧,也就是从环境中可以观察到内容,或者理解环境让我们观察到的东西。

012.png

Action

a \in \{left,right,up,down\}

动作就是智能体(接下来会介绍什么是智能体),根据当前状态给出的反应。随后我们会看到

Agent

智能体,在不同强化学习任务中 Agent 就是动作(Action)的发起者,坦克大战游戏中的 Agent 就是坦克,在无人驾驶中 Agent 就变为 🚗。

Policy

首先 Policy 是一个函数,如果是函数,那么就需要有输入和输出,在 Policy 函数中,输入 State 而输出是 Agent 执行 Action 的概率分布,从而可见即使相同的输入 State , Policy 也可能输出不同的 Action,而不是某一个确定的 Action。

在数学上 Policy 函数表示为 \pi(s,a) \rightarrow [0,1]
\pi(a|s) = P(A=a|S=s)

  • \pi(left|s) = 0.1
  • \pi(right|s) = 0.2
  • \pi(up|s) = 0.6
  • \pi(down|s) = 0.1

从上面公式我们不难发现强化学习主要就是学习这个 Policy 函数,只要有了这个 Policy 函数,输入一个状态后,Policy 就会做一个随机抽样来采取动作,这里做随机抽样是为来避免对手通猜透机器,找到规律,所以 Policy 策略是随机。

reward

R 来表示奖励,就是根据动作和状态给出一个分数,这个分数可以理解为奖励,如何设计奖励这个一点非常重要,设计好的奖励会事倍功半。

  • 击毁敌方坦克会的一定奖励
  • 如果鹰巢被敌方攻破,就会损失很多奖励

状态转移(state transition)

根据当前动作和上一个状态我们会得到新的状态,
p(s^{\prime}|s,a) = \mathbb{P}(S^{\prime}=s^{\prime}|S=s,A=a)

有关状态转移我们隐马尔可夫链分享以图解方式已经说很清楚,那么状态转移是由环境决定的,游戏中的环境就是系统。

016.png

Agent 和 Environment 的交互

接下来我们来看一看 Agent 是如何环境交互的

007.jpg

强化学习的随机性

  • Policy 根据 state 给出了 Action 随机


    017.png
  • Enviroment 根据 Action 和 state 给出下一个状态是随机的
018.png
019.png
  • Policy 根据 s_1 给出 a_1
  • Enviroment 根据 s_1,a_1 给出 s_1r_1
  • Policy 继续根据 s_2 给出 a_2
    迭代重复上面的步骤形成一条路径
    s_1,a_1,r_1,s_2,a_2,r_2,\cdots,s_T,a_T,r_T

回报(Return)

我们来对比奖励来说回报,回报是以当前时刻起向后一系列动作得到状态的奖励的累加,一直将奖励累积加到游戏结束最后一个奖励。

U_t = R_t + R_{t+1} + R_{t+2} + \cdots +

  • 有关 R_tR_{t+1} 之间差异,他们奖励的价值会随着时间而其价值会降低,这个问题我们来举一个例子来简单说明一下,由于未来的奖励没有当下奖励更有价值,所以可以加了一个 discounted 来进行调整,也就是折扣回报这里 \gamma 表示 \gamma \in [0,1]

那么添加了 \gamma 的回报也就是折扣回报,如下

U_t = R_t + \gamma R_{t+1} + \gamma^2 R_{t+2} + \cdots +

还需要说明一下折扣率 \gamma 是一个超参数,需要认为来设置, \gamma 的设置会对强化学习有所影响。当某一个时刻结束了,R_t 也就计算得到小写 r_t 因为 U_t 依赖的奖励是一个随机变量,所以 U_t 也是随机变量。

我们知道 Policy 生成 \pi(a|s) 而环境根据当前状态和动作给出下一个状态 s^{\prime} 也就是 p(s^{\prime}|a,s),那么当前奖励 R_t 是与当前 S_t 和动作 A_t 有关。

那么对于 U_t 就与未来所有时刻 A_t,A_{t+1},A_{t+2},\cdotsS_t,S_{t+1},S_{t+2},\cdots 都有关系了

上面介绍什么是回报,对回报有了一定了解。我们就可以开始介绍什么是价值函数,价值函数是用来衡量某一状态或动作状态的好坏的,即对智能体来说是否值得选择某一状态或在某一状态下执行某一动作。

动作价值函数(Value)

U_t = R_t + \gamma R_{t+1} + \gamma^2 R_{t+2} + \cdots +
U_t 是一个随机变量,依赖未来所有的动作和状态,U_t 在 t 时刻并不知道,

Q_{\pi}(s_t,a_t) = E[U_t|S_t=s_t,A_t=a_t]

可以对U_t 求期望,把里面的随机性都用积分积掉,例如虽然我们不知道下一个时刻会发生什么,例如投掷硬币,我们不知道下一个时刻会是正面还是背面,不过我们知道出现正面或者背面的概率都是 0.5 假设上面朝上我们将随机变量 X 记做 1 反面记做 0 那么期望就是 0.5 \times 1 + 0.5 \times 0 = 0.5,同样的道理对 U_t 随机变量求期望就可以得到一个数,即 Q_{\pi}

除了 S_tA_t 其他随机变量都被积分积掉,求出的 Q_{\pi} 就是动作价值函数,Q_{\pi}(s_t,a_t)

Q^{*} = \max_{\pi} Q_{\pi}(s_t,a_t)

Q^{*}(s_t,a_t)

状态价值函数V_{\pi}

意义为基于 t 时刻的状态 s_t 能获得的未来回报(Return)的期望

V_{\pi} = E_{A}[Q_{\pi}(s_t,A)]

  • 将动作看作随机变量 A 通过积分将其积掉
  • V_{\pi} 只与 s_t\pi 函数有关
  • V_{\pi}可以告诉我们当前的状态好不好
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,117评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,963评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,897评论 0 240
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,805评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,208评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,535评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,797评论 2 311
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,493评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,215评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,477评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,988评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,325评论 2 252
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,971评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,055评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,807评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,544评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,455评论 2 266

推荐阅读更多精彩内容

  • 0. 引言 最近跟着 OpenAI 的 Spinning Up 教学文档 学习了一遍 Deep RL,对这个领域有...
    OurNote阅读 5,657评论 0 8
  • 强化学习 元素:actor(我们可以控制,决策我们的行为),Env,Reward(我们不能控制环境)主要方法:mo...
    fada_away阅读 19,003评论 0 14
  • 环境 Environment,个体 Agent,状态 State,奖励 Reward 在强化学习中最重要的两个概念...
    拓季阅读 2,167评论 0 2
  • Neil Zhu,简书ID Not_GOD,University AI 创始人 & Chief Scientist...
    朱小虎XiaohuZhu阅读 12,857评论 7 66
  • 一、马尔可夫 1.马尔科夫过程 如果一个状态转移是符合马尔科夫的,那就是说下一个状态只与当前状态有关,与当前状态之...
    yf_wang_阅读 247评论 0 2