zoukankan      html  css  js  c++  java
  • 【cs229-Lecture16】马尔可夫决策过程

    之前讲了监督学习和无监督学习,今天主要讲“强化学习”。

    • 马尔科夫决策过程;Markov Decision Process(MDP)
    • 价值函数;value function
    • 值迭代;value iteration(算法,解决MDP)
    • 政策迭代;policy iteration(算法,解决MDP)

    什么是强化学习?

    强化学习(reinforcement learning,又称再励学习,评价学习)是一种重要的机器学习方法,在智能控制机器人及分析预测等领域有许多应用。但在传统的机器学习分类中没有提到过强化学习,而在连接主义学习中,把学习算法分为三种类型,即非监督学习(unsupervised learning)、监督学习(supervised leaning)和强化学习。

    3bf33a87e950352a842e0d055343fbf2b2118b6b

    • 根据Agent当前状态,选择了动作a,这时与环境发生了交互,Agent观测到下一个状态,并收到了一定的奖赏r(有好有坏)。

    • 如此反复的与环境进行交互,在一定条件下,Agent会学习到一个最优/次优的策略。


    马尔科夫决策过程

    马尔可夫决策过程是基于马尔可夫过程理论的随机动态系统的最优决策过程。马尔可夫决策过程是序贯决策的主要研究领域。它是马尔可夫过程与确定性的动态规划相结合的产物,故又称马尔可夫型随机动态规划,属于运筹学中数学规划的一个分支。

    (以下转自:http://blog.csdn.net/dark_scope/article/details/8252969

    马尔科夫决策是一个五元组,,用一个机器人走地图的例子来说明它们各自的作用

    S:状态集:就是所有可能出现的状态,在机器人走地图的例子中就是所有机器人可能出现的位置

    A:action,也就是所有可能的行动。机器人走地图的例子假设机器人只能朝四个方向走,那么A就是{N,S,E,W}表示四个方向

    P:就是机器人在S状态时采取a行动的概率

    γ:叫做discount factor,是一个0到1之间的数,这个数决定了动作先后对于结果的影响度,在棋盘上的例子来说就是影响了这一步

    棋对于最结果的影响有多大可能说起来比较模糊,通过后面的说明可能会讲得比较清楚。

    R:是一个reward function,也就是可能是一个,也可能是,对应来说就是地图上的权值

    有了这样一个决策过程,那么机器人在地图上活动的过程也可以表现为如下的形式:

    也就是从初始位置开始,选择一个action到达另一个状态,直到到达终状态,因此我们这样来定义这个过程的价值:

    可以看出越早的决定对价值影响越大,其后则依次因为γ而衰减

    其实可以看出,给出一个MDP之后,因为各个元都是定值,所以存在一个最优的策略(ploicy),策略即是对于每个状态给出一个action,最优

    策略就是在这样的策略下从任意一个初始状态能够以最大的价值到达终状态。策略用π表示。用

    表示在策略π下以s为初始状态所能取得的价值,而通过Bellman equation,上式又等于:

    注意这是一个递归的过程,在知道s的价值函数之前必去知道所有的s'的价值函数。(价值函数指的是Vπ())

    而我们定义最优的策略为π*,最优的价值函数为V*,可以发现这两个东西互为因果,都能互相转化。


    价值迭代(Value iteration )

       这个过程其实比较简单,因为我们知道R的值,所以通过不断更新V,最后V就是converge到V*,再通过V*就可以得到最优策略π*,通

       过V*就可以得到最优策略π*其实就是看所有action中哪个action最后的value值最大即可,此处是通过bellman equation,可以通过解bellman equation得到

       所有的V的值,这里有一个动归的方法,注意马尔科夫决策过程中的P其实是指客观存在的概率,比如机器人转弯可能没法精确到一个方向,而不是指在s状态

       机器人选择a操作   的概率,刚才没说清楚

       在此说明,也就是说:

       是一个客观的统计量。

    image


    策略迭代(policy iteration)

    策略迭代法(policy iteration method),动态规划中求最优策略的基本方法之一。它借助于动态规划基本方程,交替使用“求值计算”和“策略改进”两个步骤,求出逐次改进的、最终达到或收敛于最优策略的策略序列。

       这次就是通过每次最优化π来使π converge到π*,V到V*。但因为每次都要计算π的value值,所以这种算法并不常用

    image

  • 相关阅读:
    2020 年最棒的 9 个 Java 框架,哪个最香?
    CTO:不要在 Java 代码中写 set/get 方法了,逮一次罚款
    面试常考:Java中synchronized和volatile有什么区别?
    树莓派3B装ubuntu server后开启wifi
    转:程序内存空间(代码段、数据段、堆栈段)
    环境变量IFS
    python之格式化字符串速记整理
    logging模块简单用法
    理解正则表达式的匹配关系
    cut和tr命令的联合使用
  • 原文地址:https://www.cnblogs.com/XBWer/p/4423300.html
Copyright © 2011-2022 走看看