C. 人工智能 — 强化学习 - 概述

概述

  • 思路

    • Agent -> Action -> Environment
    • Environment -> Reward -> Agent
      • 难点

        • 大部分情况下,reward = 0
  • 应用场景
    • Alpha Go:下围棋
    • 聊天机器人
    • 服务器节电:DeepMind、Google
    • 即时战略游戏
      • 难点

        • Reward delay
        • Agent的行为会影响环境
  • 分类
    • On-policy:Agent一边学习,一边跟环境互动

      • Sample出来的data不能复用
    • Off-policy:Agent通过观察别人跟环境互动来学习
      • Sample出来的data可以复用
      • 算法
        • Proximal Policy Optimization(PPO)
        • PPO2 algorithm

Policy-based

  • 概述

    • policy-based是将计算出来的期望reward当作选择action的概率,期望的reward越大,对应的action被选中的概率也就越大,但不一定就会被选中,只是概率。典型代表Policy Gradient。
  • Actor
    • 概述

      • Actor是以s为输入,输出对应的action和其概率。
    • Learning an Actor
      • 早期是一张表格
      • 最新的技术是:NN
    • Action 的Reward,由于游戏具有一定的随机性,因此可以计算他的期望值
      • 需要拿整盘棋结局的Reward,而不是某一个Action的Reward
      • Reward 也可以是一个NN
    • 寻找一个函数:Gradient Ascent
      • 缺点

        • 由于无法sample到如此多的样本,因此Reward具有不稳定性
      • 优化
        • Add a Baseline(Normalization)

          • 解决 Reward都是正的问题或者没有出现的Action概率会不断减少的问题,使得Reward 有正有负
        • Assign Suitable Credit
          • 问题

            • 输掉的游戏,并不是所有的Action都是好的
            • 赢的游戏,也不是所有的Action都是不好的
            • 理论上 Sample 的样本,不可能多到把这些情况都区分出来
          • 思路
            • 每个Action的reward,不再是整场的reward,而是这个Action之后所有的reward的总和
            • 计算当前Action的reward,加入加权值的计算,离Action越远,reward影响程度越小

Value-based

  • 概述

    • value-based是根据计算出来的期望reward,选择最大的期望reward所对应的action。这个Reward 指的是 后续所有的Action的期望的Reward
  • Critic
    • 概述

      • Critic则是以s为输入,输出对应的reward期望值。
      • Critic 也可以是NN
    • Monte-Carlo
      • 步骤

        • 先做大量的观察,计算样本 StateN 对应的 cumulated reward GN,可以通过NN训练处一个模型
        • 在执行的时候,输入StateA,输出值尽可能的靠近GA,输入StateB,输出值尽可能的靠近GB
      • 缺点
        • 使用这种方式的时候方差很大,因为一场完整的游戏过程中有很多的偶然因素影响。即使你使用完全一样的策略,最后得到的Ga也会不一样。
    • Temporal - difference approach
      • Monte-Carlo的方法,比较把游戏进行到结束。而这种方式不需要将游戏玩到结束。
      • 步骤
        • 先做大量的观察,计算样本 StateN 对应的 cumulated reward GN,可以通过NN训练处一个模型
      • 缺点
        • 因为这里训练的是r的值,而r只是单独的一步,所以它的方差会比较小。这里也有一个问题,就是你的V VV值不一定能够估计的准,因此也会造成误差。
  • Another Critic
    • 概述

      • 输入 state,action,输出对应的reward的期望值
  • Q-Learning

Actor + Critic

  • 算法

    • Actor + Critic

      • 原理

        • 用Q-learning当中的V(即时值)和Q(均值/期望值)来替换policy gradient公式里面的累积reward和baseline
      • 缺点
        • 在这个时候我们需要估计两个network,Q和V,这会导致整个模型的结果更加不稳定,因此引入advantage actor-critic
    • Advantage Actor-Critic
      • 原理

        • 先用一个actor π\piπ 与环境做互动,利用TD或MC的方法学习V值
        • 根据学到的V值对actor进行更新π→π′\pi \rightarrow \pi'π→π′,替换原来的π\piπ 之后继续与环境互动
        • 重复上述步骤
      • 注意
        • actor π(s)\pi(s)π(s)'s 和 critic Vπ(s)V^\pi(s)Vπ(s) 网络的前几层的参数是可以共享的,因为他们具有相同的输入s,在对s的处理上可以共享该部分参数。
        • 使用output entropy 作为 π(s)\pi(s)π(s) 的正则项的时候,最好用较大的entropy
    • A3C(Asynchronous Advantage Actor-Critic)
      • 效率来源: multi-workers
      • 原理
        • 每个worker都会copy全局参数
        • 每个worker都与环境进行互动,并得到sample data
        • 计算梯度
        • 更新全局参数(直接更新,不管之前的全局参数是否被更新)
    • Pathwise Derivative Policy Gradient
      • 特点

        • 对于最原始的actor-critic,critic只会告诉actor,某个行动是好的还是坏的。
        • 而这里引入的Pathwise Derivative Policy Gradient不仅仅会告诉actor某一个action的好坏,还会告诉actor应该采取哪一个action(使用以下训练出来的actor告知)
      • 原理(类似 GAN)
        • Actor:生成Action
        • Q-Learning:生成 Qvalue

稀疏Reward(Sparse Reward)

  • 难点

    • 当reward的分布非常分散时,对于机器而言学习如何行动会十分困难。
    • 比如说要让一个机器人倒水进水杯里,如果不对机器人做任何指导,可能它做很多次尝试,reward都一直是零。(不知道杯子在哪,不知道拿着手上的水壶干嘛,不知道水壶靠近杯子之后应该怎么做)因此,在训练或指导一个actor去做你想要它做的事情时,需要进行reward shaping
  • 思路
    • Reward Shaping(Curiosity)

      • 原理

        • 在原来的模型当中,actor与环境做互动,根据环境给的state,采取一定的action,并得到reward。而新的模型引入了一个新的函数,ICM(自定义的Reward,而不是环境给的Reward)
      • 网络结构
        • 将提取的ata_tat​ 和sts_tst​ 的特征作为输入,输出 st+1s_{t+1}st+1​ 的提取特征的估计。然后真实的 st+1s_{t+1}st+1​ 的提取特征用来与估计值比较,得到两者之间的差别。两者差别越大则reward rir^iri 越大,也就是说,模型鼓励actor去冒险。
        • 用来提取与action相关的游泳的特征,输入 sts_tst​ 和st+1s_{t+1}st+1​ 的 ϕ\phiϕ 值,输出估计的action atˆ\hat{a_t}at​^​,如果估计的action和真实的action ata_tat​ 接近,则 ϕ\phiϕ 可以用来提取有用的特征。
        • 当没有network 2的时候,由network 1给出来的较大的reward意味着 st+1s_{t+1}st+1​ 很难预测,模型会鼓励actor去冒这个险,但有的时候很难预测的这个state可能是一点都不重要的,因此需要引入network 2来进行重要性计算。比如说,在一个游戏中,对于游戏背景并不会进行太多的state的规定,如果有的时候机器学习到站在一棵树下会导致state难以预测,那么就可能会一直站在树下,但是这一行为对于游戏而言完全没有意义,因此不予考虑。
    • Curriculum Learning(课程式学习)
      • 原理

        • 意味着学习的任务从简单到困难(为机器设计一套课程计划)
        • 比如前文提到的机器人倒水的例子,最开始可以人引导机器人手臂到杯子的附近,教它做倒水的动作,之后再慢慢改变水杯,水壶等变量,让机器从简单学到复杂。
      • Reverse Curriculum Generation
        • Given a goal state Sg
        • Sample some state S1 “close” to Sg
        • Start from state S1, each trajectory has reward R(S1)
        • Delete S1 whose reward is too large(alreay learned)or too small(too difficult at this moment)
        • Sample S2 from S1, start from S2
    • 级联强化学习(Hierarchical Reinforcement Learning)
      • 原理

        • 如果低一层的agent没法达到目标,那么高一层的agent会受到惩罚(高层agent将自己的愿景传达给底层agent)
        • 如果一个agent到了一个错误的目标,那就假设最初的目标本来就是一个错误的目标(保证已经实现的成果不被浪费)

模仿学习(Imitation Learning)

  • 问题

    • 机器也可以和环境进行互动,但是不能明显的得到reward
    • 在某些任务中很难定义reward
    • 人为涉及的奖励可能会得到不受控制的行为
  • 思路
    • Behavior Clone

      • Dataset Aggregation:

        • 通过行为克隆得到一个 actor π1​
        • 使用 π1和环境进行互动
        • 让专家对观察对象作标签 π1
        • 使用新的数据来训练 π2
      • 缺点
        • agent可能会复制专家所有的动作,包括一些无关的动作。如果机器只有有限的学习能力,可能会导致它复制到错误的行为。有些行为必须被复制,但有些可以被忽略,但监督学习对所有的误差都平等处理。
        • 在监督学习中,我们希望训练数据和测试数据有相同的分布,但是在行为克隆中,训练数据来自于专家的分布,而测试数据来自于actor,因为专家的 π 和actor的是不一样的,生成的state也是不一样的,分布可能会不相同,因此引入 IRL
    • Inverse Reinforcement Learning(Learning by demonstration)
      • 特点

        • 没有Reward
        • 这里的模型和GAN十分相似,actor就是generator,reward function就是discriminator。
      • 适用场景
        • 很多时候,很难定义Reward
      • 原理(类似GAN) — 确保 专家总是正确的/最厉害的
        • 根据 专家经验 + Environment + Inverse Reinforcement Learning,推导出Reward Function
        • 生成的reward function需要满足专家的累积reward总是比actor的大
        • 使用reward function来训练一个新的actor替换原来旧的actor
        • 重复上述步骤.
      • 使用场景
        • Parking Lot Navigation
        • Robot
    • Third Person Imitation Learning

强化学习 --- 概述相关推荐

  1. 增强学习or强化学习概述

    增强学习or强化学习概述 强化学习是一个非常与众不同的"巨兽".它的学习系统(在强化学习语境中,一般称作智能体)能够观察环境,做出选择,执行操作,并获得回报(reward),或者以 ...

  2. 强化学习笔记1:强化学习概述

    七个字概括强化学习适用的问题:多序列决策问题 1 agent和environment         强化学习讨论的问题是一个智能体(agent) 怎么在一个复杂不确定的环境(environment) ...

  3. 强化学习笔记-强化学习概述

    强化学习笔记-强化学习概述 机器学习分类 强化学习与监督学习的异同点 强化学习基本原理 强化学习解决的是什么样的问题 强化学习分类 请分别解释随机性策略和确定性策略 回报.值函数.行为值函数三个指标的 ...

  4. 【学习笔记】强化学习1——强化学习概述

    强化学习概述 机器学习主要分为监督学习.非监督学习.强化学习.强化学习的训练样本没有标记,根据训练样本学习迭代获得最优策略,强化学习需要与环境不断地交互学习. 强化学习的基本原理是智能体从环境中接收一 ...

  5. 机器学习——强化学习概述

    1 .前言 深度增强学习Deep Reinforcement Learning是将深度学习与增强学习结合起来从而实现从Perception感知到Action动作的端对端学习End-to-End Lea ...

  6. 深度强化学习系列(1): 深度强化学习概述

    机器学习是人工智能的一个分支,在近30多年已发展为一门多领域交叉学科,涉及概率论.统计学.逼近论.凸分析.计算复杂性理论等的学科.强化学习(RL)作为机器学习的一个子领域,其灵感来源于心理学中的行为主 ...

  7. 强化学习——强化学习概述

    文章目录 1. 强化学习 2. 序列决策(Sequential decision making) 3. 动作空间 4. 智能体的组成和类型 4.1 策略 问题:比较随机性策略和确定性策略的优缺点 4. ...

  8. 【强化学习】强化学习概述

    文章目录 1 强化学习 1.1 强化学习定义 1.2 马尔可夫决策过程 1.3 强化学习的目标函数 1.3.1 总回报 1.3.1 目标函数 1.4 值函数 1.4.1 状态值函数 1.4.2 状态- ...

  9. 【强化学习系列】超详细整理实用资料——1 强化学习概述(包含马尔科夫、贝尔曼方程、蒙特卡洛、时间差分法)

    文章目录 前言 强化学习通用工作方式(敲重点!!) 几个重要概念 工作流程 模型通用设计要点(每个模型都需要注重的点) 强化学习适用场景 马尔科夫 马尔可夫链 马尔可夫随机过程 马尔可夫决策过程(敲重 ...

最新文章

  1. [BZOJ1572][Usaco2009 Open]工作安排Job
  2. 【Perl】二维数组
  3. 微软网站开始出现大量的关于Office 2007的相关下载
  4. 设置sqlplus环境变量
  5. 输入一个数寻找丑数C语言,数据结构与算法试题80道.doc
  6. JDK和JRE它们之间的关系及区别
  7. Halcon PDF文档(hdevelop_users_guide)学习总结之五——关于图形窗口
  8. CCF NOI1024 因子个数
  9. 蚂蚁课堂:lombok
  10. java 生成 顺序 uuid_Java 生成有序 UUID
  11. 关于vs应用程序无法正确启动问题
  12. 勿让“天地图”成绿坝第二
  13. 大数据基础和硬件介绍
  14. [OOAD]面向对象分析与设计之人机交互界面设计学习总结
  15. Mac多Python版本共存,多个独立Python开发环境切换。
  16. 什么是web services?它有什么作用,以及它如何实现?
  17. zwm 2022 纪中集训游记
  18. 一年内经验前端面试题记录
  19. 产品干货 | 没有产品功能,谈不上用户体验
  20. “软件狂”:梁肇新的成长之路(转载)

热门文章

  1. 多线程之 ForkJoinool线程池(二十四)
  2. 【ZYNQ】黑金教程_OV5640加LCD显示实验的Bug分享
  3. 【手机LR预设】黑金风格RICH移动Lightroom预设
  4. 2022年版中国人工智能芯片行业专项调研及投资前景方向预测报告
  5. QGroundControl 4.0 地面站使用
  6. 【已解决】谷歌浏览器使用上传插件Uploadify的上传按钮不显示
  7. 微信android字体颜色,企业微信使用markdown发送消息,手机端看不到font标签设置的字体颜色...
  8. SpringBoot微信公众号服务器配置案例
  9. vue 地图可视化 (2)
  10. LTE语音终极解决方案——VoLTE