强化学习基础篇(三)动态规划之基础介绍

强化学习基础篇(三)动态规划之基础介绍

强化学习从动物学习行为中的试错方式和优化控制理论两个领域独立发展,最终经贝尔曼方程抽象为马尔可夫决策过程,从而奠定了强化学习的数学理论基础。在贝尔曼之后,经过了众多科学家的深入研究和补充,形成了相对完备的强化学习体系。
正由于涉及的数学理论众多、公式繁杂,强化学习常常被看作机器学习领域中较为深奥的范式之一。可一且对强化学习有了较为全面而深入的认识,其事实上所涵盖的元素就清晰了:基于马尔可夫决策过程的4个重要元素(状态s、动作a、奖励和状态动作转换概率P),以及策略\pi、状态值函数v(s)和动作状态值函数q(s,a)
而强化学习任务的求解实际上就是寻找最优策略\pi^*,基于贝尔曼方程可以有3种求解方法:动态规划法(Dynamic Programming)、蒙特卡洛法(Monte Carlo Method)和时间差分法(Temporal Difference)。本问将会着重介绍如何利用动态规划法来完成强化学习中基于模型的任务,并通过价值函数或者策略函数获得最优策略。

1、什么是动态规划

动态规划法(Dynamic Programming)将原间题分解为子问题,并通过对子问题的求解而解决较难的原味。这与基于马尔可夫决策过程的强化学习任务具有天然的关联性。

基本定义:

动态规划(英语:Dynamic programming,简称DP)是一种在数学、管理科学、计算机科学、经济学和生物信息学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。

动态规划常常适用于有重叠子问题和最优子结构性质的问题,动态规划方法所耗时间往往远少于朴素解法。

动态规划背后的基本思想非常简单。大致上,若要解一个给定问题,我们需要解其不同部分(即子问题),再根据子问题的解以得出原问题的解。

通常许多子问题非常相似,为此动态规划法试图仅仅解决每个子问题一次,从而减少计算量:一旦某个给定子问题的解已经算出,则将其记忆化存储,以便下次需要同一个子问题解之时直接查表。这种做法在重复子问题的数目关于输入的规模呈指数增长时特别有用。

换言之,动态规划通过把复杂问题划分为子问题,并逐个求解子问题,最后把子问题的解进行结合,进而解决较难的原问题。其中,“动态”指问题由一系列的状态组成,而且能随时间变化而逐步发生改变;“规划”(Programming)即优化每一个子问题。

2、动态规划与贝尔曼方程

根据前面的定义可知,动态规划是一个非常通用的方法。当问题具有下列特性时,通常可以考虑使用动态规划来求解:

  • 第一个特性是一个复杂问题的最优解由数个小问题的最优解构成,可以通过寻找子问题的最优解来得到复杂问题的最优解;
  • 子问题在复杂问题内重复出现,使得子问题的解可以被存储起来重复利用。

马尔科夫决定过程(MDP)具有上述两个属性:贝尔曼方程(Bellman equation)把问题递归为求解子问题,价值函数就相当于存储了一些子问题的解,可以复用。因此可以使用动态规划来求解MDP。

在求解贝尔曼方程中,首先使用的就是动态规划法,主要原因在于:

  • 贝尔曼等人在研究多阶段决策过程优化问题时,提出了使用动态规划来求解多阶段决策过程;

  • 由马尔可夫决策过程的马尔可夫特性(即某一时刻的子问题仅取决于上一时刻子问题的状态和动作)所决定的。贝尔曼方程可以递归地切分子问题,因此非常适合采用动态规划法来求解贝尔曼方程。

强化学习的核心思想是使用值函数v(s)或者动作值函数q(s,a),找到更优的策略给智能体进行决策使用。由上一篇文章的内容可知,当找到最优的状态值函数v(s)或者最优的动作值函数q(s,a),就可以找到最优策略\pi,公式如下:
\begin{aligned} v^*(s)& =\max_{a \in A} \mathbb [R_{t+1}+\gamma v_{\pi}(S_{t+1}) | S_t=s,A_t=a] \\ &=\max_{a \in A} \sum _{a \in A}p(s',r| s,a)[r+\gamma v^*(s')] \end{aligned}

\begin{aligned} q^*(S,A)& =\mathbb E(R_{t+1}+\gamma \max_{a'} q^*(S_{t+1},a') | S_t=s,A_t=a) \\ &=\sum _{s',a}p(s',r|s,a)[r+\gamma \max_{a'}q^*(s',a')] \end{aligned}

其中状态s \in S、动作a \in A、新的状态s' \in S^+。上面两式中,最优价值为环境中的每一个状态s和动作a对应的动作转换概率p(s',r|s,a)乘以未来折扣奖励中最大的价值[r+\gamma \max_{a'}value^*(s',a')]。其中value^*(s',a')为价值函数,可以为v^*(s')或者为q^*(s',a')

动态规划法主要是将上式中的贝尔曼方程转换为赋值操作,通过更新价值来模拟价值更新函数。

需要注意的是,使用动态规划法求解强化学习时,由于涉及对强化学习中的策略进行评估与改进,于是引入了评估策略\pi优劣程度的策略评估方法,并通过策略改进和策略迭代算法,寻找最优v^*。除此之外,还可以通过值迭代算法代替策略迭代来求解最优。

3、动态规划解决规划(Planning)问题

我们用动态规划算法来求解一类称为“规划”的问题。“规划”指的是在了解整个MDP的基础上求解最优策略,也就是清楚模型结构的基础上:包括状态行为空间、转换矩阵、奖励等。这类问题不是典型的强化学习问题,我们可以用规划来进行预测和控制。
对于预测问题,具体的数学描述是这样:

预测(prediction):

输入: MDP <S,A,P,R,\gamma>以及策略\pi。或者MRP <S,P^{\pi},R^{\pi},\gamma>

输出:值函数v_{\pi}

对于控制问题,具体的数学描述是这样:

控制(Control):

输入: MDP <S,A,P,R,\gamma>

输出:最优值函数v_{*}以及最优策略\pi_{*}

4、动态规划的其他应用

动态规划在很多领域都有着广泛的应用,比如:

  • 用于比较两个文件的Unix diff。
  • 隐马尔可夫模型的维特比算法(Viterbi algorithm)。
  • 评价样条曲线的德布尔算法(De Boor's algorithm)。
  • 用于基因序列比对的史密斯-沃特曼算法 (Smith–Waterman algorithm)。
  • 网络中求最短路径路由的Bellman-Ford算法。
  • 用于解析 context-free 语法的Cocke-Kasami。

历史文章链接:

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