强化学习笔记3:RL agent的主要组成部分

本文介绍了强化学习中的关键概念:策略函数、价值函数和模型。策略函数决定agent的行为,随机性策略有助于环境探索;价值函数评估状态的好坏,通过折扣因子考虑未来奖励;模型预测环境变化。Q函数结合状态和动作评估奖励预期。通过学习这些函数,agent能在走迷宫等任务中找到最优路径。强化学习分为基于策略和基于价值的方法,前者直接学习最佳行为,后者通过价值函数指导决策。
摘要由CSDN通过智能技术生成

对于一个强化学习 agent,它可能有一个或多个如下的组成成分: 

  • 策略函数(policy function)agent 会用这个函数来选取下一步的动作

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

  • 模型(model),模型表示了 agent 对这个环境的状态进行了理解,它决定了这个世界是如何进行的。

1 policy

Policy 是 agent 的行为模型,它决定了这个 agent 的行为,它其实是一个函数,把输入的状态变成行为。这里有两种 policy:

 

 从 Atari 游戏来看的话,策略函数的输入就是游戏的一帧,它的输出决定你是往左走或者是往右走。

如果是随机性策略的话,那么通过模型,得到的就是向左/向右的概率

如果是确定性策略的话,那么通过模型,得到的就是,通过向左向右的概率,最大的那个决策

1.1 随机性策略的优点 

通常情况下,强化学习一般使用随机性策。随机性策略有很多优点:

  • 在学习时可以通过引入一定随机性来更好地探索环境;

  • 随机性策略的动作具有多样性,这一点在多个智能体博弈时也非常重要。采用确定性策略的智能体总是对同样的环境做出相同的动作,会导致它的策略很容易被对手预测。

2 价值函数

价值函数是未来奖励的一个预测,用来评估状态的好坏。

价值函数里面有一个 discount factor(折扣因子),我们希望尽可能在短的时间里面得到尽可能多的奖励。

如果我们说十天过后,我给你 100 块钱,跟我现在给你 100 块钱,你肯定更希望我现在就给你 100 块钱,因为你可以把这 100 块钱存在银行里面,你就会有一些利息。

所以我们就通过把这个折扣因子放到价值函数的定义里面,价值函数的定义其实是一个期望,如下式所示:

s表示状态

\pi表示一个策略函数

V_{\pi}(s)表示状态是s的时候,使用策略\pi的价值函数 

S_t=s 表示t时刻的状态是s

G_t表示t时刻的收益

E_{\pi}[G_t|S_t=s]指t时刻状态是s的时候,使用 策略\pi的期望收益

其中G_t=\sum_{k=0}^{\infty}r^kR_{t+k+1}也就是说,是t之后时刻的reward经过折扣之后的总和

这里的γ表示折现因子,t+1时刻的1等于t时刻的γ

所以这里的期望相当于,t+1时刻的收益折算到t时刻的收益(乘以一阶折现因子γ);加上t+2时刻的收益折算到t时刻的收益(乘以二阶折现因子\gamma^2);一直加到∞时刻的收益折算到t时刻的收益

注:这里的期望,是action的期望。每个状态选取的action都不是确定的,相反,各个action都是以一定的概率选取的。(同时每一步进入的state,在很多情况中,也是不确定的,这两个因素是Gt的不确定性因素)

 

 

 2.1 Q函数

我们还有一种价值函数:Q 函数。Q 函数里面包含两个变量:状态和动作,其定义如下式所示:

 大体上的参数和前面的V类似,唯一的区别是,V只考虑了状态s这一个因素;Q考虑了当前状态s和当前的行为a两个因素。

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

2.1.1 V函数与Q函数的关系

 

3 model

第三个组成部分是模型,模型决定了下一个状态会是什么样的(以及如果你选择了这个状态的话,你会得到多大的奖励),就是说下一步的状态取决于你当前的状态以及你当前采取的行为它由两个部分组成,

 

当我们有了这三个组成部分过后,就形成了一个 马尔可夫决策过程(Markov Decision Process)

4 以走迷宫为例

 

我们来看一个走迷宫的例子。

  • 要求 agent 从 start 开始,然后到达 goal 的位置。
  • 每走一步,你就会得到 -1 的奖励。
  • 可以采取的动作是往上下左右走。
  • 当前状态用现在 agent 所在的位置来描述。

  • 如果采取的是 基于策略的(policy-based)RL,当学习好了这个环境过后,在每一个状态,我们就会得到一个最佳的行为。

  • 比如说现在在第一格开始的时候,我们知道它最佳行为是往右走,然后第二格的时候,得到的最佳策略是往上走,第三格是往右走。通过这个最佳的策略,我们就可以最快地到达终点。

 

  • 如果换成 基于价值的(value-based)RL 这个算法,利用价值函数来作为导向,我们就会得到另外一种表征,这里就表征了你每一个状态会返回一个价值。

  • 比如说你在 start 位置的时候,价值是 -16,因为你最快可以 16 步到达终点。因为每走一步会减一,所以你这里的价值是 -16。

  • 当我们快接近最后终点的时候,这个数字变得越来越大。在拐角的时候,比如要现在在第二格 -15。然后 agent 会看上下,它看到上面值变大了,变成 -14 了,它下面是 -16,那么 agent 肯定就会采取一个往上走的策略。所以通过这个学习的值的不同,我们可以抽取出现在最佳的策略。

 参考资料:第一章 强化学习概述 (datawhalechina.github.io)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UQI-LIUWJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值