强化学习入坑之路01

强化学习入坑之路01

经过了难得的双节的八天假期,我又回来继续爬坑了。八天的假期让自年初开始没回家的我终于可以在尝尝家里的饭菜了,本来处在减肥期的我在家期间也没有特别控制体重,回来还是增加近4斤的重量,不过在寡人的不懈坚持下终于回到了假前的水准,可喜可贺!

好吧,扯远了,请忽略以上信息,下面进入正题。这次入坑的科目是强化学习,是我参加的DataWhale组队学习的第三次,这次的学习是视频加教程的学习形式,下面附上第一节的视频地址:
概括与基础 上
概括与基础 下
第一节的学习内容主要是基本情况介绍和概括,这一节的学习主要是通过视频和教程学习的,下面来进行各部分的介绍

强化学习概念

在这里插入图片描述
强化学习讨论的问题是一个 智能体(agent) 怎么在一个复杂不确定的环境(environment)里面去极大化它能获得的奖励。示意图由两部分组成:agent 和 environment。在强化学习过程中,agent 跟 environment 一直在交互。Agent 在环境里面获取到状态,agent 会利用这个状态输出一个 action,也就是产生下一个动作,动作根据环境不同而不同。动作产生后,这个决策会放到环境之中去,环境会通过这个 agent 采取的决策,输出下一个状态以及当前的这个决策得到的奖励。Agent 的目的就是为了尽可能多地从环境中获取奖励。
在这里插入图片描述

强化学习和我们之前接触的监督学习不一样,其中主要的区别就是强化学习在很多的情况下没有固定的标签,需要通过设定奖励函数的形式来进行下一步的训练。除此之外,强化学习的训练场景还有延迟奖励的特点,比如在一个打篮球的游戏里,每一次运球、传球、过人、投篮之后,都不会马上产生进球的结果,但是相关的过程与最后的结果在时空上都是存在相关关系的,这样如何综合考虑环境因素、当前动作来进行奖励函数的设计就是一个较为复杂的问题。

强化学习和监督学习的区别

1.首先强化学习输入的序列的数据并不是像 supervised learning 里面这些样本都是独立的。

2.此外,learner 并没有被告诉你每一步正确的行为应该是什么。Learner 不得不自己去发现哪些行为可以使得它最后得到这个奖励,只能通过不停地尝试来发现最有利的 action。

3.还有就是 agent 获得自己能力的过程中,其实是通过不断地试错(trial-and-error exploration)。Exploration 和 exploitation 是强化学习里面非常核心的一个问题。Exploration 是说你会去尝试一些新的行为,这些新的行为有可能会使你得到更高的奖励,也有可能使你一无所有。Exploitation 说的是你就是就采取你已知的可以获得最大奖励的行为,你就重复执行这个 action 就可以了,因为你已经知道可以获得一定的奖励。因此,我们需要在 exploration 和 exploitation 之间取得一个权衡,这也是在监督学习里面没有的情况。

4.在强化学习过程中,没有非常强的 supervisor,只有一个奖励信号(reward signal),就是环境会在很久以后告诉你之前你采取的行为到底是不是有效的。Agent 在这个强化学习里面学习的话就非常困难,因为你没有得到即时反馈。当你采取一个行为过后,如果是监督学习,你就立刻可以获得一个指引,就说你现在做出了一个错误的决定,那么正确的决定应该是谁。而在强化学习里面,环境可能会告诉你这个行为是错误的,但是它并没有告诉你正确的行为是什么。而且更困难的是,它可能是在一两分钟过后告诉你错误,它再告诉你之前的行为到底行不行。所以这也是强化学习和监督学习不同的地方。

强化学习相关概念

在这里插入图片描述
对于一个强化学习 agent,它有如下组成成分:

首先 agent 有一个 policy function,agent 会用这个函数来选取下一步的动作。

然后它也可能生成一个价值函数(value function)。我们用价值函数来对当前状态进行估价,它就是说你进入现在这个状态,可以对你后面的收益带来多大的影响。当这个价值函数大的时候,说明你进入这个状态越有利。

另外一个组成成分是模型(model)。模型表示了 agent 对这个环境的状态进行了理解,它决定了这个世界是如何进行的。
下面我们来对这三个部分进行介绍:

policy function

Policy 决定了这个 agent 的行为,它其实是一个函数,把输入的状态变成行为。这里有两种 policy:
stochastic policy(随机性策略):在下面的公式中s代表当前状态,a是为所采取的行为。当你输入一个状态 ss 的时候,输出是一个概率。这个概率就是你所有行为的一个概率,然后你可以进一步对这个概率分布进行采样,得到真实的你采取的行为。在这里插入图片描述
deterministic policy(确定性策略):就是说你这里有可能只是采取它的极大化,采取最有可能的动作。你现在这个概率就是事先决定好的。

Value Function

在这里插入图片描述
价值函数是未来奖励的一个预测,用来评估状态的好坏。
价值函数里面有一个 discount factor,我们希望尽可能在短的时间里面得到尽可能多的奖励。如果我们说十天过后,我给你 100 块钱,跟我现在给你 100 块钱,你肯定更希望我现在就给你 100 块钱,因为你可以把这 100 块钱存在银行里面,你就会有一些利息。所以我们就通过把这个 discount factor 放到价值函数的定义里面,价值函数的定义其实是一个期望。这里有一个期望Eπ,这里有个小角标是 π 函数,这个π 函数就是说在我们已知某一个 policy function 的时候,到底可以得到多少的奖励。

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

Model

在这里插入图片描述
第三个组成部分是模型,模型决定了下一个状态会是什么样的,就是说下一步的状态取决于你当前的状态以及你当前采取的行为。它由两个部分组成,

一个是 probability,它这个转移状态之间是怎么转移的。另外是这个奖励函数,当你在当前状态采取了某一个行为,可以得到多大的奖励。

Agent的分类

在这里插入图片描述

根据强化学习 agent 的不同,我们可以把 agent 进行归类。

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

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

我们可以用马尔可夫决策过程来定义强化学习任务,并表示为四元组 <S,A,P,R><S,A,P,R>,即状态集合、动作集合、状态转移函数和奖励函数。如果这四元组中所有元素均已知,且状态集合和动作集合在有限步数内是有限集,则机器可以对真实环境进行建模,构建一个虚拟世界来模拟真实环境的状态和交互反应。

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

Exploration 和 Exploitation问题

在强化学习里面,ExplorationExploitation 是两个很核心的问题。

Exploration 是说我们怎么去探索这个环境,通过尝试不同的行为来得到一个最佳的策略,得到最大奖励的策略。

Exploitation 是说我们不去尝试新的东西,就采取已知的可以得到很大奖励的行为。

因为在刚开始的时候强化学习 agent 不知道它采取了某个行为会发生什么,所以它只能通过试错去探索。所以 Exploration 就是在试错来理解采取的这个行为到底可不可以得到好的奖励。Exploitation 是说我们直接采取已知的可以得到很好奖励的行为。所以这里就面临一个 trade-off,怎么通过牺牲一些短期的 reward 来获得行为的理解。
在这里插入图片描述

个人感受

这次由于只进行了基本概念的学习,所以总结的东西可能不够深,希望在接下来的学习力能继续深入。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值