RL蘑菇书

概述

强化学习(reinforcement learning,RL)的目的是让智能体环境中获取足够多的奖励。智能体根据在环境中的状态做出动作(决策),由此动作获得与之对应的奖励以及下一个状态。

强化学习与监督学习的对比

监督学习过程中有两个假设:

  • 输入:带标签的数据为独立同分布
  • 监督:每个数据对应一个正确的标签

强化学习中两个假设无法被满足:

  • 在打砖块游戏中,智能体(玩家操控的底部小木板)得到的**观测(observation)**不是独立同分布的,上一帧与下一帧有非常强的连续性,我们得到的数据是相关的时间序列数据,不满足独立同分布。比如如果此时模板在屏幕的边缘,则向相反一侧移动的概率要大于向边缘方向移动的概率。
  • 另外,我 们并没有立刻获得反馈,游戏没有告诉我们哪个动作是正确动作。比如现在把木板往右移,这只会使得球往上或者往左一点儿,我们并不会得到即时的反馈。

思考1
此处的观测是指输入的移动指令 (动作) 还是指环境中小球与木板的位置 (状态)
A1: 状态是对世界的完整描述,不会隐藏世界的信息。观测 是对状态的部分描述,可能会遗漏一些信息。一般用实值的向量、矩阵或者更高阶的张量来表示状态和观测。

强化学习的训练数据就是一个玩游戏的过程。
step1:木板往右移(动作),接到球(状态)
step2:木板往左移(动作),接到球(状态)
输入:step1,step2。 输出:step3的动作。

思考2:输入为一个连续序列,动作作为输入好理解,状态是否需要作为输入的一部分?

这里有个问题,我们没有标签来说明现在这个动作是正确还是错误的,必须等到游戏结束才可能知道,这个游戏可能 10s 后才结束。现在这个动作到底对最后游戏是否能赢有无帮助,我们其实是不清楚的。这里我们就面临延迟奖励(delayed reward)的问题,延迟奖励使得训练网络非常困难。

思考3:训练过程是否为,随机输入序列,得到失败的结果后,反向更新每一个动作。如保持前n-1个动作不变,更新第n个动作重新得到结果。

通过与监督学习的比较,我们可以总结出强化学习的一些特征。

(1)强化学习会试错探索,它通过探索环境来获取对环境的理解。

(2)强化学习智能体会从环境里面获得延迟的奖励。

(3)在强化学习的训练过程中,时间非常重要。因为我们得到的是有时间关联的数据(sequential data), 而不是独立同分布的数据。在机器学习中,如果观测数据有非常强的关联,会使得训练非常不稳定。这也是为什么在监督学习中,我们希望数据尽量满足独立同分布,这样就可以消除数据之间的相关性。

(4)智能体的动作会影响它随后得到的数据,这一点是非常重要的。在训练智能体的过程中,很多时 候我们也是通过正在学习的智能体与环境交互来得到数据的。所以如果在训练过程中,智能体不能保持稳定,就会使我们采集到的数据非常糟糕。我们通过数据来训练智能体,如果数据有问题,整个训练过程就会失败。所以在强化学习里面一个非常重要的问题就是,怎么让智能体的动作一直稳定地提升。

乱想记录1:虽然输入的序列不为i.i.d,但每个动作单独拿出来应该是i.i.d吧?类似单词中每一个字母的分布情况。那么既然输入是时间强相关序列,是否可以与transformer结合使用。

标准强化学习和深度强化学习

类比于传统的计算机视觉和深度计算机视觉

传统的计算机视觉的两个过程:

  • 提取特征
  • 训练一个分类器(SVM)

深度计算机视觉将两步合为一步,通过卷积神经网络和下游任务模型结合,输入图片,输出结果(分类、识别等)。卷积提取特征,根据任务要求再做下游模型微调。

标准强化学习:比如 TD-Gammon 玩 Backgammon 游戏的过程,其实就是设计特征,然后训练价值函数的过程

  • 标准强化学习先设计很多特征,这些特征可以描述现在整个状态。
  • 得到这些特征后,我们就可以通过训练一个分类网络或者分别训练一个价值估计函数来采取动作
    输入为设计的滕征
  • 问题:手工设计的特征具体指什么,什么样的特征能描述整个状态呢?

深度强化学习:自从我们有了深度学习,有了神经网络,就可以把智能体玩游戏的过程改进成一个 端到端训练(end-to-end training)的过程,如图 1.10b 所示。我们不需要设计特征,直接输入状 态就可以输出动作。我们可以用一个神经网络来拟合价值函数或策略网络,省去特征工程(feature engineering)的过程。(万物可炼丹是吧!)

序列决策

agent 一直在跟环境进行交互。这个 agent 把它输出的动作给环境,环境取得这个动作过后,会进行到下一步,然后会把下一步的观测跟它上一步是否得到奖励返还给 agent。通过这样的交互过程会产生很多观测,agent 的目的是从这些观测之中学到能极大化奖励的策略。

奖励

奖励标量
智能体在环境里面存在的目 的就是最大化它的期望的累积奖励。不同环境奖励不同。因为过程中的动作并不会直接产生奖励(此处奖励指宏观),强化学习里面一个重要的课题就是近期奖励和远期奖励的权衡 ,研究怎么让智能体取得更多的远期奖励。例如在打砖块游戏中,某一时间步的动作向左或向右都不会导致游戏结束,但在整局游戏中,假设向左比向右对赢得游戏帮助更大,那么此时给向左动作的奖励就要高于向右。

序列决策

针对每一个观测,智能体会采取一个动作,也会得到一个奖励。所以历史是观测、动作、奖励的序列:Ht = O1,R1,A1,…At-1,Ot,Rt
Agent 在采取当前动作的时候会依赖于它之前得到的这个历史,所以你可以把整个游戏的状态看成关于这个历史的函数St = f(Ht)
S: 状态, H:历史, O:观测, R:奖励, A:动作
环境与智能体分别有一个函数更新自己的状态。当两个函数值相等时,我们称智能体能观测到环境所有状态(环境完全可观测)。此时强化学习被建模为马尔可夫决策过程(MDP)的问题。在此过程中,观测等价于智能体状态等价于环境状态。

动作空间

动作空间分为连续与离散,区别为动作数量的有限性。

问题

我理解的基于策略与基于价值,一种为动态规划,一种为贪心算法?
没太理解有模型与免模型结构的应用场景
两者的区别主要在于是否需要对于真实的环境进行建模, model-free不需要对于环境进行建模,直接与真实环境进行交互即可,所以其通常需要较大的数据或者采样工作来优化策略,这也帮助model-free对于真实环境具有更好的泛化性能; 而model-based 需要对于环境进行建模,同时再真实环境与虚拟环境中进行学习,如果建模的环境与真实环境的差异较大,那么会限制其泛化性能。现在通常使用model-free进行模型的构建工作。(抄在这里,慢慢理解…)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值