强化学习入门

本文深入探讨了强化学习的基本概念,包括代理、动作、环境、状态、奖励、策略、价值函数和Q值等。强化学习是通过与环境的交互来学习最佳策略,以最大化长期奖励。它与监督学习和无监督学习的主要区别在于时间序列和目标导向。神经网络在深度强化学习中用于学习状态-动作对与奖励之间的映射。强化学习通过迭代和不断试错来学习,其关系到时间的处理方式使其成为快速学习经验教训的有效方法。
摘要由CSDN通过智能技术生成

https://skymind.ai/wiki/deep-reinforcement-learning

Reinforcement Learning Definitions

Agent
一个可以做动作的代理。例如一个运输的无人机,或者超级马里奥游戏里的马里奥。在生活中,代理就是你。

Action(A)
A是代理可能做的所有动作的集合。一个动作是一目了然的,但是需要注意的是,代理必须从这个集合里选择动作。在视频游戏里,这个list可能包括,左右移动,跳高跳低,蹲下或者静止不动。在股票市场,这个list可能是买,卖或持有。

Discount factor
衰减因子通过乘在未来的回报上来对代理所做的动作所产生的回报效果进行抑制。为什么这么做呢?这是为了让未来的回报的权重相比于立马的回报要低。这就强制代理具有一定的短期享乐主义。通常我们使用 γ \gamma γ来表示。如果 γ = 1 \gamma=1 γ=1,就表示未来的回报和立即的回报一样重要。

Environment
代理活动的世界。我们将代理的当前的状态和动作输入到环境中,环境会返回代理的回报以及代理下一个状态作为输出。如果你是代理,那么环境就可以是物理法则和社会法则,通过你的动作,决定结果。

State(S)
状态是代理本身所处的具体的当下的情况,例如一个具体的位置和时刻,一个即时配置(代理与其他明显事物的关系,比如工具,阻碍,敌人,价格等)。

Reward ( R)
回报是我们通过评估一个代理动作的成功与失败的反馈。例如,在视频游戏里,当马里奥吃到金币,他得到点数。从任何一个给定的状态,一个代理输出一个动作到环境中,然后环境返回代理的新状态和回报。回报可以是立刻的也可以是延迟的。它们有效的评估代理的动作。

Policy( π \pi π)
是一种策略,是基于当前的状态,代理应用该策略来决定下一个动作。它是从状态映射到具有最高回报的动作。

Value(V)
带有衰减因子的一个期望的长期的回执,与短期的回报R对比。 V π ( s ) V_{\pi}(s) Vπ(s)的定义是,在policy π \pi π下,当前state的期望的长期的回执。我们对reward进行折扣,或者越往将来走,就越降低它们的评估value。

Q-value or action-value(Q)
Q-value和value类似,只是它会有一个额外的参数,当前的动作a。 Q π ( s , a ) Q_{\pi}(s,a) Qπ(s,a)表示在policy π \pi π下采取动作a,当前state s的长期回执。Q将state-action对映射到rewards上。需要注意Q和policy的区别。

Trajectory
影响states的一系列的states和actions。

所以env是一个函数,将当前state下采取的action转换为下一个state和reward;agents是一个函数,将新的state和reward转换为下一个action。我们已知agents的函数,但是我们不知道env的函数。env是一个黑盒子,我们只能看到它的输入和输出。就像很多人与技术的关系:我们知道它怎么使用,但是我们不知道它是怎么运作的。RL就是使用agents去尝试逼近env函数,使得我们对黑盒子env输入actions能够得到最大的reward。
在这里插入图片描述
不同于其他形式的机器学习——比如监督学习和无监督学习,RL是建立在一个接着一个发生的state-action对上的,有一个顺序和序列的概念在。
RL是通过产生的结果来评估动作的。它是目标导向的,它的目标是学习一系列动作来使得agent可以完成它的目标或者最大化它的目标函数。举例:

  • 在视频游戏中,目标就是以更多的分来完成游戏,游戏中每次额外获得的分数都会影响到agent的后续行为,如agent可能会学会射击战列舰,接触金币或者躲避伤害来最大化分数。
  • 在真实世界,目标可以是让一个机器人从点A移动到点B,机器人每当离B更近就可以视作是得分。

这里举例一个RL的目标函数
∑ t = 0 t = ∞ γ t r ( x ( t ) , a ( t ) ) \sum^{t=\infty}_{t=0}\gamma^tr(x(t),a(t)) t=0t=γtr(x(t),a(t))
我们对跨越t的reward函数进行求和。所以目标函数就是计算我们在整个过程中(比如游戏)所获得的所有reward。这里x代表state,a代表action,r是reward。
RL与监督和无监督学习不同在于解释输入的方式。我们可以通过描述它们分别是如何学习“thing”的展示这三种方式的不同。

  • 无监督:这个东西像那个东西。(算法在不知道事物名字的情况下学习事物的相似性)
  • 有监督:那个东西是“双层培根起司汉堡”(标签)。这些算法就在于学习数据实例与它们标签的互相性,这就需要一个标注过的数据集。这些标签就被用来去“监督”和纠正算法。
  • 强化学习:吃那个东西,因为它好吃而且可以让你活得更久。(动作是基于长短期的rewards的,比如你吸收卡路里的量,你存活的时间。)强化学习可以被看做是在一个稀疏反馈的环境中进行监督学习。

Domain Selection for RL

我们可以将自动强化学习代理想象成一个盲人试图通过耳朵和一根拐杖来应付和对应这个世界。Agents有一个很小的窗口来理解周围环境,并且这些窗口对于他们来说可能不是最合适的了解周围环境的方法。
事实上,决定代理需要注意的输入和反馈的类型是一个很难的问题。这就是所谓的domain selection。学习如果玩视频游戏的算法常常会忽略这个问题,因为环境是人为制定的,而且是严格限制的。因此,视频游戏提供了无菌的实验环境,在这里强化学习的想法可以被测试。域选择需要人类的决策,通常是基于所需要解决问题的先验知识和理论的,比如选择自动驾驶算法的输入的域就包括雷达传感器,相机以及GPS数据。

State-Action Pairs & Complex Probability Distributions of Reward

强化学习的目标是在给定的状态下选择一个最优的已知动作,这就意味着动作需要被排序,每个动作需要被相对赋值。因为这些动作是与state关联的,所以我们真正关注的是state-action对的值。这里有一些例子来阐释action的值和意义是依附于state的。

  • 如果action是结婚的话,那么在你18岁的时候跟一个35岁的人结婚和在你90岁的时候和一个35岁的人结婚意义是不同的,这两个动作拥有不同的激励会导致不同的结果。
  • 如果动作是大叫“Fire!”,那么在拥挤的剧院和在一个手持枪支的人面前做这个动作意义也是不同的。我们无法在未知环境中去预测一个动作的输出。

我们通过Q函数来将state-action对映射到我们希望它们生成的值上。Q函数将agent的state和action作为输入,然后映射到它们可能的rewards上。
RL是一个过程,在这个过程中我们驱动agent去执行state-action对,观察得到的rewards,然后让Q函数的预测去适配rewards,直到它能够准确的预测出agent需要行走的路径。这个预测被叫做policy。
RL是尝试用一个庞大的state-action对去对reward的复杂概率分布进行建模。这也是强化学习与马尔科夫决策过程(通过从复杂分布中采样来探究其性质的方法)相匹配的一个原因。这与启发Stan Ulam发明蒙特卡罗方法的问题很相似,也就是在给定手牌的情况下推断出最后获胜的概率。
任何统计方法其本质都是对无知的自白。许多现象(生物的,政治的,社会的,与棋类游戏相关的)的巨大的复杂性使得我们无法从第一原理来找到原因。唯一办法就是通过统计,观察表面的事件和试图建立它们之间的联系来学习它们,即使我们并不知道它们相互联系的机制。RL,就像深度神经网络一样,也是一种类似的策略,依靠采样来从数据中提取信息。
在花费一些时间去执行马尔科夫决策过程来逼近state-action对得到的reward的概率分布后,一个RL算法能够重复可以得到reward的actions,然后停止去尝试其他动作。这里就存在这一个博弈,关于已知reward的利用和对于可以导向胜利的新动作的继续探索。就像石油公司有一个对于已知油田采原油和同时探索新油田的双效函数,RL也可以在变化比重的情况下同时进行利用和探索,这就保证了不会在已知获胜方式的开销的情况下错过有回报的动作。
RL是一个迭代的过程。在很多有趣的应用中,我们事先是不知道state-action对会产生的reward的。它通过在各种states之间反复穿梭来学习到这个关系,就像运动员和音乐家在不断尝试去提高自己的情况下去迭代。

The Relationship Between Machine Learning with Time

你可以认为RL就是一种更快的总结经验教训的方法。RL与时间的关系与人类相比是不同的。算法可以在同一个state下反复尝试,来试验不同的actions,直到得到states下最优actions。所以RL能够学得更多,更好。

Neural Networks and Deep Reinforcement Learning

神经网络要应用到哪里呢?神经网络就是学习将state-action对映射到rewards的agent。就像所有的神经网络一样,它们使用系数来逼近关联输入和输出的函数,然后迭代地来沿着减小loss的梯度方向来调整权重去寻找合适的参数。
对于RL来说,卷积网络可以用来识别agent的state,比如马里奥所在的屏幕,或者无人机拍摄的地形图。也就是CNN所做的工作是其擅长的图像识别任务。
但是在RL中CNN从图像中得到了相比于监督学习不同的解读。在监督学习中,网络会给一张图赋予一个标签,也就是将像素和名字匹配。
在这里插入图片描述
实际上,它根据概率来对最符合图像的标签进行排序。给一张驴的照片,通过网络发现该图有80%的概率为驴,50%是马,30%是狗。
在强化学习中,给定一张代表state的图像,一个卷积网络可以对在该state下可能采取的动作进行排序。比如预测除向右跑会反馈5分,跳会反馈7分,向左跑什么都没有。
在这里插入图片描述
上图就阐释了agent所使用的policy,将一个state映射到一个最优动作。
a = π ( s ) a=\pi(s) a=π(s)
policy映射state到action。
我们回想一下,这与Q是不同的,Q是将state-action对映射到rewards上。
更具体一点就是,这个reward是由两部分reward组成的最高的总和,第一部分是立马的reward,第二部分是在trajectory上通过后续actions可能得到的所有未来rewards。下面就是Q的表达式,来自wiki
Q ( s t , a t ) ← ( 1 − α ) ⋅ Q ( s t , a t ) ⎵ old value + α ⎵ learning rate ⋅ ( r t ⎵ reward + γ ⎵ discount factor ⋅ max ⁡ a Q ( s t + 1 , a ) ⎵ estimate of optimal future value ) ⏞ learned value Q(s_t,a_t)\leftarrow(1-\alpha)\cdot \underbrace{Q(s_t,a_t)}_{\text{old value}}+\underbrace{\alpha}_{\text{learning rate}}\cdot \overbrace{(\underbrace{r_t}_{\text{reward}}+\underbrace{\gamma}_{\text{discount factor}} \cdot \underbrace{\max_aQ(s_{t+1},a)}_{\text{estimate of optimal future value}} )}^{\text{learned value}} Q(st,at)(1α)old value Q(st,at)+learning rate α(reward rt+discount factor γestimate of optimal future value amaxQ(st+1,a)) learned value
在我们给期望的reward赋值了以后,Q函数只需要简单的选择Q-value最高的state-action对就行了。
在RL的最初,神经网络的系数是随机赋值的。使用来自env的反馈,神经网络能够使用期望reward和gt reward来调整网络的权重进而提高网络对state-action对的解读。
这个反馈循环和监督学习中error的反向传播是类似的。但是,监督学习是起始于gt 标签知识的。它的目标是建立一个将不同图像映射到对应名字的模型。
RL依赖于对env反馈出的对于每个action所得到的标量数字。env反馈的reward是可以变化的,滞后的或者被未知参数所影响的,在反馈循环中引入噪声。
现在我们对于Q函数有了更具体的感觉了,它不仅仅是考虑action带来的立马reward,还要考虑动作序列中后面steps返回的滞后reward。

脚注

  1. 在运动中来想象强化学习会有助于理解。现在我们考虑来学习玩超级马里奥。算法会尝试让马里奥通关游戏并且获得尽可能多的点数。为了完成这个任务,我们同时并行的让多个不同的马里奥在所有可能的游戏states里穿梭。现在我们考虑有1000个马里奥都在通过挖隧道通过一座山,在他们挖的时候(他们反复决定哪个动作会对环境产生影响),它们的挖隧道经验分支就像是一颗错综复杂的,不规则的树。马里奥的关于挖隧道的经验会是成功在山里挖出一条通道。那我们纵观整个马里奥的一生,每个成功的动作都会增大使该动作在更大的决策流里的可能性。你可以想象,每个马里奥是一个agent,在他面前是一个热力图,在该图上记录了state-action对所得到的rewards。(想象一下每个state-action拥有一个自己的屏幕上面是黄到红的热力图。这些屏幕会形成一个网格,就像华尔街交易员面前的那么多显示器一样。一个action screen可能是“在这个state使劲跳”,另一个action screen是“在这个state加速跑”等等)因为有些state-action对会比其他的对获得更多的reward,而且有许多不同的actions可以选择,比如跳,蹲和跑,那么这个关于action的reward的概率分布就不是一个钟形曲线而是一个相对复杂的曲线,这就是为什么使用马尔科夫和蒙特卡洛来进行探索,就像Stan Ulam探索如何取得纸牌游戏的胜利。也就是,当我们无法用公式来描述reward的分布的时候,我们就可以采用采样的方式。因为算法一开始是什么都不知道的,并且游戏state空间中的很多路径都是没有被探索的,热力图就会反映出经验的缺失,比如它们想象的rewards的热力图的有些地方就是空白的,或者对reward做一些默认的设想,然后根据后续的经验调整。马里奥被这个热力图驱动的,跑的次数越多,未来reward的热力图就会越准确。这个热力图就是马里奥在当前state的对于可能的state-action对的reward的概率分布。
  2. 一个比较准确的对强化学习的类比就是强化学习算法就像是一个物种。每个算法的仿真都可以被考虑为一个物种的独立个体。算法模型在通过尝试在环境中得到的知识,就像独立个体通过外界得到信息,然后变得更聪明。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值