深度强化学习-笔记(一)

本文介绍了强化学习的概念,强调其与监督学习的区别,如序列数据的非独立同分布性质和试错学习。探讨了强化学习中的探索与利用策略,并解释了延迟奖励问题。同时,文章阐述了深度强化学习如何结合神经网络简化特征工程,以及在序列决策过程中的挑战。此外,还讨论了部分可观测环境、动作空间的类型以及RL Agent的构成,包括Policy、Value Function和Model。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

深度强化学习概述

什么是强化学习?

强化学习讨论的问题是一个 智能体(agent) 怎么在一个复杂不确定的环境(environment)里面去极大化它能获得的奖励。
在这里插入图片描述
Agent 在环境里面获取到状态state,也是对整个environment的observation,agent 会利用这个状态输出一个 action,一个决策。然后这个决策会放到环境之中去,环境会通过这个 agent 采取的决策,输出下一个状态以及当前的这个决策得到的奖励。Agent 的目的就是为了尽可能多地从环境中获取奖励。

强化学习与监督学习

  1. 强化学习输入的序列数据并不是独立同分布的,而监督学习输入的序列数据服从独立同分布(i.i.d.)
  2. 强化学习的过程中,并不知道每一步正确的行为应该是什么,learner需要自己去发现哪些行为可以使得它最后得到这个奖励,并且只能通过不断的尝试来发现最有利的action
  3. Agent通关不断试错(trial and error exploration)。Exploration & Exploitation (探索和利用)是强化学习中一个核心的问题。Exploration 是指agent会去尝试一些新的行为,这些新的行为有可能会使你得到更高的奖励,也有可能使你一无所有。Exploitation 说的是你就是就采取你已知的可以获得最大奖励的行为,你就重复执行这个 action 就可以了,因为你已经知道可以获得一定的奖励。因此,我们需要在 exploration 和 exploitation 之间取得一个权衡(trade-off),这也是在监督学习里面没有的情况。
  4. 在强化学习过程中,没有非常强的 supervisor,只有一个 奖励信(reward signal) ,就是环境会在很久以后告诉你之前你采取的行为到底是不是有效的。这里就会涉及到一个延迟奖励(delay reward)的问题。

强化学习与深度强化学习

强化学习结合深度学习,有了神经网络,那么大家也把整个过程改进成一个 end-to-end training 的过程。你直接输入这个状态,我们不需要去手工地设计这个特征,就可以让它直接输出 action。那么就可以用一个神经网络来拟合我们这里的 value function 或 policy network,省去 了 feature engineering 的过程。

序列决策过程

在这里插入图片描述
在一个强化学习环境里面,agent 的目的就是为了选取一系列的动作来极大化它的奖励,所以这些采取的措施必须有长期的影响。但在这个过程里面,它的奖励其实是被延迟了,就是说你现在采取的某一步决策可能要等到时间很久过后才知道这一步到底产生了什么样的影响。这里一个示意图就是我们玩这个 Atari 的 Pong 这个游戏,你可能只有到最后游戏结束过后,才知道这个球到底有没有击打过去。中间你采取的 up 或 down 行为,并不会直接产生奖励。强化学习里面一个重要的课题就是近期奖励和远期奖励的一个 trade-off。怎么让 agent 取得更多的长期奖励是强化学习的问题。
在这里插入图片描述
注意:
状态state和观测observation有什么关系?
状态是对世界的完整描述,不会隐藏世界的信息;
观测是对状态的部分描述,可能会遗漏一些信息。

在跟环境的交互过程中,agent 会获得很多观测。在每一个观测会采取一个动作,它也会得到一个奖励。所以历史是观测、行为、奖励的序列:
在这里插入图片描述
Agent 在采取当前动作的时候会依赖于它之前得到的这个历史,所以你可以把整个游戏的状态看成关于这个历史的函数:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在 agent 的内部也有一个函数来更新这个状态。当 agent 的状态跟环境的状态等价的时候,我们就说这个环境是 full observability ,就是全部可以观测。换句话说,当 agent 能够观察到环境的所有状态时,我们称这个环境是 完全可观测的(fully observed) 。

但是有一种情况是 agent 得到的观测并不能包含所有环境运作的状态,因为在这个强化学习的设定里面,环境的状态才是真正的所有状态。比如 agent 在玩这个 black jack 这个游戏,它能看到的其实是牌面上的牌。或者在玩雅达利游戏的时候,观测到的只是当前电视上面这一帧的信息,你并没有得到游戏内部里面所有的运作状态。也就是说当 agent 只能看到部分的观测,我们就称这个环境是部分可观测的(partially observed) 。在这种情况下面,强化学习通常被建模成一个 POMDP 的问题。

动作空间

离散动作空间:动作数量有限。比如,走迷宫机器人如果只有东南西北这 4 种移动方式,则其为离散动作空间。
连续动作空间:在连续空间中,动作是实值的向量。比如,机器人向360度中的任意角度都可以移动,则为连续动作空间。

RL Agent的主要组成本部分

  • Policy

  • Value Function

  • Model
    在这里插入图片描述
    Policy决定了这个agent的行为,它其实是一个函数,输入是状态,输出是行为。
    policy有两种:

  • 随机性策略(stochastic policy)

  • 确定性策略(deterministic policy)
    在这里插入图片描述
    在这里插入图片描述
    价值函数是一个折扣的未来奖励的加和,就是你通过进行某一种行为,然后你未来得到多大的奖励。
    在这里插入图片描述

对于这个奖励函数,我们另外还有一个 Q 函数。Q 函数里面包含两个变量:状态和动作。**所以你未来可以获得多少的奖励,它的这个期望取决于你当前的状态和当前的行为。**这个 Q 函数是强化学习算法在学习的一个函数。因为当我们得到这个 Q 函数的过后,进入某一种状态,它最优的行为其实就可以通过这个 Q 函数来得到。

在这里插入图片描述
它由两个部分组成,一个是probability,它这个转移状态之间是怎么转移的。另外是这个奖励函数,当你在当前状态采取了某一个行为,可以得到多大的奖励。

快速搞懂Policy-based和Value-based

在这里插入图片描述
我们采取的是 Policy-based RL ,当我们学习好了这个环境过后,在每一个状态,我们就会得到一个最佳的行为。比如说现在在第一格开始的时候,我们知道它最佳行为是往右走,然后第二格的时候,得到的最佳策略是往走,第三格是往右走。通过这个最佳的策略,我们就可以最快地到达终点。

在这里插入图片描述
如果换成 value-based RL 这个算法,利用价值函数来作为导向,我们就会得到另外一种表征。这里就表征了你每一个状态会返回一个价值,比如说你在 start 位置的时候,价值是 -16,因为你最快可以 16 步到达终点。因为每走一步会减一,所以你这里的价值是 -16。当我们快接近最后终点的时候,这个数字变得越来越大。在拐角的时候,比如要现在在第二格 -15。然后 agent 会看上下,它看到上面值变大了,变成 -14 了,它下面是 -16,那么这个 agent 肯定就会采取一个往上走的策略。所以通过这个学习的值的不同,我们可以抽取出现在最佳的策略。

RL Agent的类型

在这里插入图片描述
根据强化学习 agent 的不同,我们可以把 agent 进行归类。

  1. 基于价值函数的 agent。这一类 agent 显式地学习的是价值函数,隐式地学习了它的策略。因为这个策略是从我们学到的价值函数里面推算出来的。
  2. 基于策略的 agent,它直接去学习 policy,就是说你直接给它一个 state,它就会输出这个动作的概率。在这个 policy-based agent 里面并没有去学习它的价值函数。
  3. 另外还有一种 agent 是把这两者结合,把 value-based 和 policy-based 结合起来就有了 Actor-Critic agent 。这一类 agent 就把它的策略函数和价值函数都学习了,然后通过两者的交互得到一个最佳的行为。

Model-based和Model-free的区别

在这里插入图片描述
我们是可以通过 agent 到底有没有学习这个环境模型来分类。

  1. 第一种是 model-based(有模型) RL agent,它通过学习这个状态的转移来采取措施。
  2. 另外一种是 model-free(免模型) RL agent,它没有去直接估计这个状态的转移,也没有得到环境的具体转移变量。它通过学习 value function 和 policy function进行决策。这种 model-free 的模型里面没有一个环境转移的一个模型。

有模型学习:
在这里插入图片描述
免模型学习:
然而在实际应用中,智能体并不是那么容易就能知晓 MDP 中的所有元素的。通常情况下,状态转移函数和奖励函数很难估计,甚至连环境中的状态都可能是未知的,这时就需要采用免模型学习。免模型学习没有对真实环境进行建模,智能体只能在真实环境中通过一定的策略来执行动作,等待奖励和状态迁移,然后根据这些反馈信息来更新行为策略,这样反复迭代直到学习到最优策略。

Keywords

在这里插入图片描述

Questions

  1. 强化学习的基本结构是什么?
    本质上是Agent和Environment之间的交互。
    Agent在Environment中获得当前时刻的State,Agent基于此会输处出一个Action,这个Action执行之后会导致Environment发生改变,因此Environment会输出新的Reward和State。
    在这里插入图片描述

  2. 强化学习相对于监督学习为什么训练会更加困难?(强化学习的特征)
    (1)强化学习处理的多是序列数据,很难像监督学习那样满足独立同分布。
    (2)强化学习有奖励延迟
    (3)强化学习是一个试错的过程,完全根据Environment的反馈来调整学习的方向,更新对自己有利的action。而监督学习有正确的label,可以通过label修正学习的方向。

  3. 强化学习的基本特征有哪些?
    (1)有trial-and-error exploration的过程,即需要通过探索环境来获取对环境的理解。
    (2)Agent会从环境中获得延迟的奖励。
    (3)强化学习训练过程中的时间非常重要,因为数据都是时序的,前后有关联,而不是独立同分布的。
    (4)Agent的Action会影响其随后的Reward。

  4. 近几年强化学习迅速发展的原因?
    (1)算力(GPU、TPU)的提升,我们可以更快地做更多的 trial-and-error 的尝试来使得 Agent 在Environment里面获得很多信息,取得很大Reward。
    (2)我们有了深度强化学习这样一个端到端的训练方法,可以把特征提取和价值估计或者决策一起优化,这样就可以得到一个更强的决策网络。

  5. 状态和观测有什么关系?
    状态是对环境的完整描述,而观测是对状态的部分描述,可能会遗漏一些信息。在深度强化学习中,通常使用实值向量、矩阵或张量来表示。

  6. 对于一个强化学习 Agent,它由什么组成?
    policy function、value function、model

  7. 根据强化学习 Agent 的不同,我们可以将其分为哪几类?
    policy-based、value-based、actor-critic

  8. 基于策略迭代和基于价值迭代的强化学习方法有什么区别?
    基于策略迭代的强化学习方法,智能体会制定一套动作策略(确定在给定状态下需要采取何种动作),并根据这个策略进行操作。强化学习算法直接对策略进行优化,使制定的策略能够获得最大的奖励;基于价值迭代的强化学习方法,智能体不需要制定显式的策略,它维护一个价值表格或价值函数,并通过这个价值表格或价值函数来选取价值最大的动作。基于价值迭代的方法只能应用在不连续的、离散的环境下(如围棋或某些游戏领域),对于行为集合规模庞大、动作连续的场景(如机器人控制领域),其很难学习到较好的结果(此时基于策略迭代的方法能够根据设定的策略来选择连续的动作);基于价值迭代的强化学习算法有 Q-learning、 Sarsa 等,而基于策略迭代的强化学习算法有策略梯度算法等。此外, Actor-Critic 算法同时使用策略和价值评估来做出决策,其中,智能体会根据策略做出动作,而价值函数会对做出的动作给出价值,这样可以在原有的策略梯度算法的基础上加速学习过程,取得更好的效果。

  9. 有模型(model-based)学习和免模型(model-free)学习有什么区别?
    针对是否需要对真实环境建模,强化学习可以分为有模型学习和免模型学习。有模型学习是指根据环境中的经验,构建一个虚拟世界,同时在真实环境和虚拟世界中学习;免模型学习是指不对环境进行建模,直接与真实环境进行交互来学习到最优策略。总的来说,有模型学习相比于免模型学习仅仅多出一个步骤,即对真实环境进行建模。免模型学习通常属于数据驱动型方法,需要大量的采样来估计状态、动作及奖励函数,从而优化动作策略。免模型学习的泛化性要优于有模型学习,原因是有模型学习算需要对真实环境进行建模,并且虚拟世界与真实环境之间可能还有差异,这限制了有模型学习算法的泛化性。

  10. 强化学习的通俗理解
    environment 跟 reward function 不是我们可以控制的,environment 跟 reward function 是在开始学习之前,就已经事先给定的。我们唯一能做的事情是调整 actor里面的 policy,使得 actor 可以得到最大的 reward。Actor 里面会有一个 policy, 这个policy 决定了actor 的行为。Policy 就是给一个外界的输入,然后它会输出 actor现在应该要执行的行为。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值