强化学习学习

强化学习是机器学习的一种,涉及智能体与环境的交互,目标是通过探索和开发找到最大化累积奖励的策略。智能体在部分或全观察的状态下执行动作,环境据此反馈奖励,形成动态学习过程。策略决定了动作选择,而值函数则用来评估状态或状态-动作对的长期回报。
摘要由CSDN通过智能技术生成

强化学习一些基本概念

强化学习是除了监督学习和无监督学习的第三种机器学习方法。

  • 监督学习(Supervised Learning): 是从外部监督者提供的带标注训练集中进行学习。(任务驱动)
  • 无监督学习(Unsupervised Learning):是一个典型的寻找未标注数据中隐含结构的过程。(数据驱动)
  • 强化学习(Reinforcement Learning):更偏重于智能体与环境的交互,包括“探索(exploration)”与“开发(exploitation)”之间的折中权衡,智能体必须开发已有的经验来获取收益,同时也要进行试探,使得未来可以获得更好的动作选择空间。 (从错误中学习)

强化学习示意图

强化学习的主要角色是智能体(agent)环境(environment),环境是智能体存在和互动的世界。智能体在每一步的交互中,都会获得对于所处环境状态的观察(有可能只是一部分),然后决定下一步要执行的动作。环境会因为智能体对它的动作而改变,也可能自己改变

实现过程

假设图1.7中环境当前处于时刻t的状态记为s_{t}

智能体在环境中执行某动作a_{t}

这时候该动作a_{t}

改变了环境原来的状态并使得智能体在时刻t+1到达新的状态s_{t+1}

在新的状态使得环境产生了反馈奖励r_{t+1}

给智能体。智能体基于新的状态s_{t+1},和反馈奖励r_{t+1}

执行新的动作a_{t+1}

如此反复迭代地与环境通过反馈信号进行交互。

上述过程的最终目的是让智能体最大化累积奖励(Cumulative Reward),公式为累积奖励G:

G= r_{1}+ r_{2}+ r_{3}+ ......+ r_{n}

在上述过程中,如何根据状态st和奖励rt选择动作的规则称为策略\pi

一些术语

状态和观察

一个 状态 s 是一个关于这个世界状态的完整描述。这个世界除了状态以外没有别的信息。观察 o 是对于一个状态的部分描述,可能会漏掉一些信息。

在深度强化学习中,我们一般用 实数向量、矩阵或者更高阶的张量(tensor) 表示状态和观察。比如说,视觉上的 观察 可以用RGB矩阵的方式表示其像素值;机器人的 状态 可以通过关节角度和速度来表示。

如果智能体观察到环境的全部状态,我们通常说环境是被 全面观察 的。如果智能体只能观察到一部分,我们称之为 部分观察

强化学习有时候用这个符号 s 代表状态 , 有些地方也会写作观察符号o. 尤其是,当智能体在决定采取什么动作的时候,符号上的表示按理动作是基于状态的,但实际上,动作是基于观察的,因为智能体并不能知道状态(只能通过观察了解状态)。 

动作空间

 不同的环境有不同的动作。所有有效动作的集合称之为 动作空间。有些环境,比如说 Atari 游戏和围棋,属于 离散动作空间,这种情况下智能体只能采取有限的动作。其他的一些环境,比如智能体在物理世界中控制机器人,属于 连续动作空间。在连续动作空间中,动作是实数向量。

策略

策略 是智能体用于决定下一步执行什么行动的规则。可以是确定性的,一般表示为: \mu

a_{t}=\mu \left ( s_{t} \right )

也可以是随机的,一般表示为 : \pi

a_{t}\sim \pi \left ( \cdot | s_{t} \right )

因为策略本质上就是智能体的大脑,所以很多时候“策略”和“智能体”这两个名词经常互换,例如我们会说:“策略的目的是最大化奖励”。

在深度强化学习中,我们处理的是参数化的策略,这些策略的输出,依赖于一系列计算函数,而这些函数又依赖于参数(例如神经网络的权重和误差),所以我们可以通过一些优化算法改变智能体的的行为。

我们经常把这些策略的参数写作 \theta 或者  \phi,然后把它写在策略的下标上来强调两者的联系。

a_{t}=\mu _{\theta }\left ( s_{t} \right )

a_{t}\sim \pi _{\theta } \left ( \cdot | s_{t} \right )

运动轨迹

运动轨迹\tau指的是状态和运动的序列。

\tau =\left ( s_{0},a_{0},s_{1},a_{1},... \right ).

第一个状态s_{0},是从开始状态分布中随机采样的,有时候表示为\rho _{0} :

s_{0}\sim \rho _{0}\left ( \cdot \right ).

状态转换(从某一状态时间ts_{t} 到另一状态时间t+1, s_{t+1} 会发生什么),是由环境的自然法则确定的,并且只依赖于最近的行动a_{t} .它们可以是确定性的:

s_{t+1}=f\left ( s_{t},a_{t} \right )

可以是随机的:

s_{t+1}\sim P\left ( \cdot |s_{t},a_{t} \right ).

智能体的行为由策略确定。

奖励和回报

强化学习中,奖励函数R非常重要。它由当前状态、已经执行的行动和下一步的状态共同决定。

r_{t} =R\left ( s_{t}, a_{t}, s_{t+1} \right ) 

有时候这个公式会被改成只依赖于当前的状态r_{t}= R(s_{t}), 或者状态行动对r_{t}= R(s_{t},a_{t}).

智能体的目标是最大化行动轨迹的累计奖励,这意味着很多事情。我们会把所有的情况表示为R\left ( \tau \right ),至于具体表示什么,要么可以很清楚的从上下文看出来,要么并不重要。

T步累计奖励,指的是在一个固定窗口步数T内获得的累计奖励:

R\left ( \tau \right )= \sum_{t= 0}^{T} r_{t}

另一种叫做γ折扣奖励,指的是智能体获得的全部奖励之和,但是奖励会因为获得的时间不同而衰减,\gamma \in \left ( 0,1 \right )

R\left ( \tau \right )= \sum_{t= 0}^{\infty } \gamma ^{t} r_{t}

为什么要加上一个衰减率呢?可以从两个角度来解释: 直观上讲,现在的奖励比外来的奖励要好,所以未来的奖励会衰减;数学角度上,无限多个奖励的和很可能 不收敛 ,有了衰减率和适当的约束条件,数值才会收敛。

衰减未来奖励:因为环境的随机性,我们不能确定下次用同样的行动是否能拿到相同的奖励。越遥远的未来,不确定性越大。因此,常用衰减未来奖励来代替确定的未来奖励。

R_{t}=r_{t}+\gamma r_{t+1}+\gamma^{2}r_{t+2}+\gamma^{3}r_{t+3}+...+\gamma^{n-t}r_{n}=r_{t}+\gamma\left ( r_{t+1}+\gamma^{}r_{t+2}+...+\gamma^{n-t-1}r_{n}\right )=r_{t}+\gamma R_{t+1}

强化学习问题

无论选择哪种方式衡量收益(T 步累计奖赏或者  \gamma 折扣奖励),无论选择哪种策略,强化学习的目标都是选择一种策略从而最大化 预期收益

讨论预期收益之前,我们先讨论下行动轨迹的可能性分布。

我们假设环境转换和策略都是随机的。这种情况下,  T步行动轨迹是:P\left ( \tau |\pi \right )=\rho _{0}\left ( s_{0} \right )\prod_{t=0}^{T-1}P\left ( s_{t+1}|s_{t},a_{t}\right )\pi \left ( a_{t}|s_{t} \right ).

预期收益是J\left ( \pi \right ) :

J\left ( \pi \right )=\int_{T}^{}P\left ( \tau |\pi \right )R\left ( \tau \right )=E_{\tau \sim \pi }\left [ R\left ( \tau \right ) \right ]

强化学习中的核心优化问题可表示为:

\pi ^{*}=arg max_{\pi }J(\pi )

\pi ^{*}是最优策略。

值函数

知道一个状态的  或者状态行动对(state-action pair)很有用。这里的值指的是,如果你从某一个状态或者状态行动对开始,一直按照某个策略运行下去最终获得的期望回报。几乎是所有的强化学习方法,都在用不同的形式使用着值函数。

这里介绍四种主要函数:

同策略值函数:V^{\pi }\left ( s \right ),从某一状态 s 开始,之后的每一步行动都按照策略 \pi 执行

V^{\pi }\left ( s \right )=E_{\tau \sim \pi }\left [ R\left ( \tau \right )|s_{0}=s \right ]

同策略行动-值函数:Q^{\pi }\left ( s,a \right ),从某一个状态 s 开始,先随便执行一个动作 a (有可能不是按照策略走的),之后每一步都按照固定策略执行 \pi

Q^{\pi}(s,a)=E_{\tau\sim\pi}\left [ R(\tau)|s_{0}=s,a_{0}=a \right ]

最优值函数:V^{*}(s),从某一状态 s 开始,之后每一步都按照最优策略\pi 执行

V^{* }\left ( s \right )=max_{\pi}E_{\tau \sim \pi }\left [ R\left ( \tau \right )|s_{0}=s \right ]

最优行动-值函数:Q^{* }\left ( s,a \right ),从某一状态 s 开始,先随便执行一个动作 a (有可能不是按照策略走的),之后每一步都按照最优策略执行 \pi

 Q^{*}(s,a)=max_{\pi}E_{\tau\sim\pi}\left [ R(\tau)|s_{0}=s,a_{0}=a \right ]

动作价值函数和状态值函数相似,只是状态价值函数没有强调动作

状态价值函数和动作价值函数之间的关系

关系1

V^{\pi}\left ( s \right )=\sum_{a\in A}^{}\pi\left ( a|s \right )Q^{\pi}(s,a)

关系1的推导基础:①状态价值函数的定义;②动作价值函数的定义。推导过程:

                                          V^{\pi }\left ( s \right )=E_{\tau \sim \pi }\left [ R\left ( \tau \right )|s_{0}=s \right ]

                                                       =\sum_{a\in A}^{} \pi (a|s)E_{\tau\sim\pi}\left [ R(\tau)|s_{0}=s,a_{0}=a \right ]

                                                       =\sum_{a\in A} \pi(a|s)^{}Q^{\pi}(s,a)

关系2

Q^{\pi}(s,a)=r(s,a)+\gamma\sum_{s^{'}\in S}^{}P(s^{'}|s,a)V^{\pi}(s^{'})

关系2的推导基础:①动作价值函数的定义;②回报的定义;③奖励函数的定义;④状态价值函数的定义。推导过程如下:

                             Q^{\pi}(s,a)=E_{\tau\sim\pi}\left [ R(\tau)|s_{0}=s,a_{0}=a \right ]

                                              =E_{\tau\sim\pi}\left [ \sum_{t= 0}^{\infty } \gamma ^{t} r_{t}|s_{0}=s,a_{0}=a \right ]

                                              =E_{\tau\sim \pi}[r_{t}+\gamma\sum_{t=0}^{\infty}\gamma^{t} r_{t+1}|s_{0}=s,a_{0}=a]

                                              =E_{\tau\sim \pi}[r_{t}|s_{0}=s,a_{0}=a]+\gamma E_{\tau\sim \pi} [R_{t+1}|s_{0}=s,a_{0}=a]

                                              =r(s,a)+\gamma\sum_{s^{'}\in S}^{}P(s^{'}|s,a)E_{\tau \in \pi}[R_{t+1}|s_{1}=s^{'}]

                                              =r(s,a)+\gamma\sum_{s^{'}\in S}^{}P(s^{'}|s,a)V^{\pi}(s^{'})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值