强化学习 --- 概述

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值