Markov Decision processes

马尔可夫决策过程,里面有几个术语state,episode,history,value,gain。在后续的学习中,也会有这些术语。

Markov Decision processes 广泛应用于计算机科学和其他工程领域。所以很好的理解它。我们可以分解如下:

  • Markov Process(MP).(别名:Markov chain)
  • Markov reward Processes.这里扩展了一个Reward值。
  • Mark Decision Processes(MDPs).

Markov Process

这个过程,你只能观察他们的状态。这些状态它们本身有自己的动态变化规则。不为你的意志为转移,我们就只能观察他们。

这些状态的集合,有个名字叫做state space。然后我们随着时间的推移可以获得一个状态链子。(这就是为什么它的别名叫做Markov chain)。举例:中国的南昌市,有晴天和雨天。那么,5天的工作日可能就是[晴天,雨天,雨天,晴天,晴天]。我们观察到就是这个状态链子,我们也称它们为history

马可夫性质(英语:Markov property),当一个随机过程在给定现在状态及所有过去状态情况下,其未来状态的条件概率分布仅依赖于当前状态。啥意思呢?就是今天是晴天,那么明天是晴天还是雨天?依赖于【今天晴天】转为为【明天晴天】和【明天雨天】的概率是多少?

这里我们就可以用一个transition matrix【转移矩阵】来代表上述状态的转移概率。如下表:

晴天 雨天
晴天 0.8 0.2
雨天 0.1 0.9

这是一个方形矩阵,有i行和j列。那么它的数值表示是state i转移到state j的概率。

什么意思呢?就是如上表,第一行的【晴天】,转移成【明天晴天】的概率是80%,转移成【明天雨天】的概率是20%。第二行的【雨天】,转移成【明天晴天】的概率是10%,转移成【明天雨天】的概率是90%。

所以Markov Process的定义:

  • 有一个状态的集合,states(S)
  • 有一个转移矩阵,transition matrix(T),代表是转移的概率。

MP的可视化表示:

可以看出,我们只能观察上述的变化。没有办法影响他们。【一切都是根据概率随机的变化】

我们给出一个更复杂的例子,来观察他们的状态变化。我们的state space如下:

  • :家里休息
  • 科学研究:去实验室做科学研究
  • 喝咖啡:在实验室喝一杯咖啡
  • 聊天:和同事针对某个问题讨论,当然,也可能聊闲天。

如下图:

我们假定一些规则。例如:你可能从家里去实验室做科研研究,或者去实验室先去喝一杯咖啡再工作。例如,工作遇到问题会去找同事交流沟通等等。那么这些状态变化的概率【概率也是我们自己人为设定的】,我们做一个矩阵。

喝咖啡 聊天 科学研究
60% 40% 0% 0%
喝咖啡 0% 10% 70% 20%
聊天 0% 20% 50% 30%
科学研究 20% 20% 10% 50%

加上状态变化的概率图,如下:

这个如果想象成一个真实的时间,每天都会发生不同的经历片段(episodes):

  • 家->喝咖啡->聊天->科学研究->家
  • 家->喝咖啡->聊天->聊天->科学研究->聊天—>喝咖啡->科学研究->家
  • 家->喝咖啡->科学研究->家

我们会发现,每天可能呈现的片段都是不一样的。但是如果你采样的数据足够多,它们的概率分布会是相同的。例如:硬币丢正反。可能10盘里面,70%是正面,30%是反面。但是如果丢10万盘,那么他们的正反面就会无限接近50%的概率。这种概率统计它的魅力也就在于此。

对于RL来说,这种不加手段的自我变化。对于我们来说,是没有很大意义的。为了让他们的变化,接近我们的目标。我们就必须加入reward。来强化它们的行为。那么它就叫做Markov reward process

Markov reward process

可以看到上述图中状态的变化是根据我们设定的概率进行变化的。我们现在给它加个scalar number

例如:从【家】到【喝咖啡】这个状态变化概率相当于从state i到state j这个状态。我们给与奖励值可以正面的,也可以是负面的。是一个数值。这样就会让他们变化效果更符合我们预期。

除了reward还有一个参数,discount facter γ(gamma)。

上面讨论过,通过观察,我们会获得一个状态链子如:【家->喝咖啡->聊天->科学研究->家】,由于我们给了一个额外的奖励值。所以,对于每一个的episode。我们都可以算出一个这个时间t我们获取的奖励值数量。公式如下:

我们把上述的公式,在多扩展几项如下:

可以看到,离我们距离越远的时间,我们的γ相乘数越高。例如:0.9的50次方。就是0.005.这个公式,也是为了表现agent的前瞻性。同时,γ的取值在0~1.

这里,由于每一个状态链子都可能不一样,那么获得奖励值数量也会不同。然而,我们可以用数学期望。通过计算一个状态链子的平均值。这个叫做:value of state公式如下:

由于理论是空洞难懂的。我们继续举上面那个例子。我们对每一个状态变化设一个奖励值:

  • 家->家:得 1 分
  • 家->喝咖啡 : 得1分
  • 科学研究 ->科学研究 : 得 5 分
  • 科学研究 ->聊天: 得 -3 分
  • 聊天 -> 科学研究: 得 2 分
  • 科学研究 ->喝咖啡 : 得 1 分
  • 喝咖啡 ->科学研究 : 得 3 分
  • 喝咖啡 ->喝咖啡 : 得 1 分
  • 喝咖啡 ->聊天 : 得 2 分
  • 聊天 ->喝咖啡 : 得 1 分
  • 聊天 ->聊天 : 得 -1 分

未完待续

【强化学习】Markov Decision processes【二】的更多相关文章

  1. Ⅱ Finite Markov Decision Processes

    Dictum:  Is the true wisdom fortitude ambition. -- Napoleon 马尔可夫决策过程(Markov Decision Processes, MDPs ...

  2. 强化学习调参技巧二:DDPG、TD3、SAC算法为例:

    1.训练环境如何正确编写 强化学习里的 env.reset() env.step() 就是训练环境.其编写流程如下: 1.1 初始阶段: 先写一个简化版的训练环境.把任务难度降到最低,确保一定能正常训 ...

  3. Markov Decision Processes

    为了实现某篇论文中的算法,得先学习下马尔可夫决策过程~ 1. https://leonardoaraujosantos.gitbooks.io/artificial-inteligence/conte ...

  4. 强化学习二:Markov Processes

    一.前言 在第一章强化学习简介中,我们提到强化学习过程可以看做一系列的state.reward.action的组合.本章我们将要介绍马尔科夫决策过程(Markov Decision Processes ...

  5. David Silver强化学习Lecture2:马尔可夫决策过程

    课件:Lecture 2: Markov Decision Processes 视频:David Silver深度强化学习第2课 - 简介 (中文字幕) 马尔可夫过程 马尔可夫决策过程简介 马尔可夫决 ...

  6. 深度强化学习资料(视频+PPT+PDF下载)

    https://blog.csdn.net/Mbx8X9u/article/details/80780459 课程主页:http://rll.berkeley.edu/deeprlcourse/ 所有 ...

  7. 深度学习-强化学习(RL)概述笔记

    强化学习(Reinforcement Learning)简介 强化学习是机器学习中的一个领域,强调如何基于环境而行动,以取得最大化的预期利益.其灵感来源于心理学中的行为主义理论,即有机体如何在环境给予 ...

  8. 强化学习之四:基于策略的Agents (Policy-based Agents)

    本文是对Arthur Juliani在Medium平台发布的强化学习系列教程的个人中文翻译,该翻译是基于个人分享知识的目的进行的,欢迎交流!(This article is my personal t ...

  9. 机器学习之强化学习概览(Machine Learning for Humans: Reinforcement Learning)

    声明:本文翻译自Vishal Maini在Medium平台上发布的<Machine Learning for Humans>的教程的<Part 5: Reinforcement Le ...

  10. 深度强化学习(DRL)专栏(一)

    目录: 1. 引言 专栏知识结构 从AlphaGo看深度强化学习 2. 强化学习基础知识 强化学习问题 马尔科夫决策过程 最优价值函数和贝尔曼方程 3. 有模型的强化学习方法 价值迭代 策略迭代 4. ...

随机推荐

  1. Spring框架之IoC( Inversion of Control )基础知识入门

    1.IoC创建对象的方式 使用无参构造创建对象 假如要使用有参构造创建: 下标赋值constructor-arg <!--有参--> <bean id="User" ...

  2. SQL Server表分区-水平分区3

    目录 一.常用分区步骤 1.创建文件组 2.创建数据文件到文件组里面 3.使用图形界面向导创建分区表(不推荐) 3.使用T-SQL构建分区函数与分区方案(推荐) [3.1]建表时构造 [3.2]已有表 ...

  3. MySQL数据库维护和改善性能

    备份数据   由于MySQL数据库是基于磁盘的文件,普通的备份系统和例程就能备份MySQL的数据.但是,由于这些文件总是处于打开和使用状态,普通的文件副本备份不一定总是有效.下面列出这个问题的可能解决 ...

  4. vue阻止冒泡事件 阻止点击事件的执行 结合div和组件阻止点击事件

    vue阻止冒泡事件 阻止点击事件的执行 <div @click="alerA1()" > <div @click.stop="alerA2()>& ...

  5. 搭载KaihongOS的工业平板、机器人、无人机等产品通过3.2版本兼容性测评,持续繁荣OpenHarmony生态

    近日,搭载深圳开鸿数字产业发展有限公司(简称"深开鸿")KaihongOS 软件发行版的工业平板.机器人.无人机等商用产品均通过 OpenAtom OpenHarmony(以下简称 ...

  6. 今晚战码先锋润和赛道第2期直播丨如何参与OpenHarmony代码贡献

    「OpenHarmony 开源贡献者计划 2022」战"码"先锋 PR 征集,"润和赛道"已于6月15日正式开启.套件在手.先机在握,更有润和软件的超多赋能和专 ...

  7. 三七互娱《斗罗大陆:魂师对决》上线,Network Kit助力玩家即刻畅玩

    三七游戏旗下的年度旗舰大作<斗罗大陆:魂师对决>现已开启全平台公测.8月1日,三七互娱技术副总监出席了HMS Core.Sparkle游戏应用创新沙龙,展示了在HMS Core Netwo ...

  8. Python调用动态库,获取BSTR字符串

    今天客户在用Python调用我们的动态库的时候,遇到一个问题,调用动态库中的函数,函数返回的是BSTR字符串,但是客户接收到的是一个8位长度的数字. 动态库函数原型:EXTERN_C BSTR ELO ...

  9. windows server 出现.net 3.5安装不上去

    前言 有人说为什么到了现在还有人用.net 3.5呢?其实我也不用,主要是mmsql安装的时候要用到. 正文 一般我们不同电脑在程序和功能中添加,如果添加不上会弹出一个自动获取的一个过程,这时我们点击 ...

  10. RestfulApi 学习笔记——父子资源(四)

    前言 该系列前文提及到,要体现出资源的一个结构,那么如何体现出结构呢?比如说获取emproyee,应该写/api/companies/1/emproyees,这样可以体现其结构性. 那么这样改如何设置 ...