cs231n笔记11—强化学习

强化学习:我们有一个代理,能够在其环境中采取行动,也可以因为其行动获得奖励,它的目标是学会如何行动以最大限度地获得奖励。
在这里插入图片描述

在强化学习中我们有一个代理和一个环境,环境赋予代理一个状态,反过来代理将采取行动,然后环境反馈一个奖励;不断重复这个过程,直到环境给出一个终端状态结束这个环节。
例如,游戏也是处理强化学习的一大类问题。 Atari游戏,目标是得到最高的分数;状态是游戏状态的原始像素,行动就是游戏的控制,例如左右上下移动,分数是每一次行动增加或减少的分数;目标就是在游戏中最大化得分。

在这里插入图片描述

MDP(Markov Decision Process)

RL的重要基础是MDP了,MDP用数学语言来描述强化学习
#

MDP由一组对象定义,这个对象元组中有S,也就是所有肯能状态的集合,A是所有行动的集合,R是奖励的分布函数。给定一个状态,一组行动,它就是一个从状态行为到奖励的函数映射。P表示下一个状态的转移概率分布,是给定一个状态行为组将采取的行动。γ是折扣因子,它对近期奖励以及远期奖励分配权重。
在这里插入图片描述

马尔科夫决策过程的工作方式:
令我们的初始时间步骤t等于0,然后环境从初始状态分布P(s)中采样,并将一些初始状态设为0,然后从t==0到完成遍历整个循环,代理将选择一个动作at,环境将从这里获得奖励,也就是在给定状态及刚刚采取的行动的条件下所获得的奖励。这也是抽样下一个状态,在时间t+1给定的概率分布,然后代理将收到奖励,然后进入下一个状态。继续整个过程。

Q-learning

基于以上,我们可以定义一个策略π,它是一个从状态到行为的函数,它指定了在每个状态下要采取的行动,这可以是确定的也可以是随机的,现在的目标是找到最佳决策π*,最大限度提高你的配权之后的全部奖励之和
在这里插入图片描述
一个状态s的value是其长期期望Reward的高低
定义V是策略pai状态s长期期望收益,第一个式子
Q是策略pai在状态s下,采取动作a的长期期望收益,第二个式子
在这里插入图片描述
最优Q值函数就是Q*
在这里插入图片描述
Q-learning是RL的很经典的算法,但有个很大的问题在于它是一种表格方法,也就是说它非常的直来之前,就是根据过去出现过的状态,统计和迭代Q值。一方面Q-learning适用的状态和动作空间非常小;另一方面但如果一个状态从未出现过,Q-learning是无法处理的。也就是说Q-learning压根没有预测能力,也就是没有泛化能力。

我们可以使用函数逼近器(例如神经网络)去估计Q的s,a。

深度Q学习 DQN

在这里插入图片描述
我们有函数的参数θ,Q值函数由我们神经网络的这些权重θ决定。
在这里插入图片描述
训练时我们使用之前的损失函数,试图执行Bellman方程,所以在前向传播中我们反复使用损失函数使Q值达到他的目标值;反向传播直接获取这个损失函数的梯度,采取梯度下降。

经验回放(Experience Replay):DeepLearning取得重大进展的监督学习中,样本间都是独立同分布的。而RL中的样本是有关联的,非静态的,训练的结果很容易难以收敛。Experience Replay机制解决这个问题思路其实很简单,构建一个存储把样本都存储下来,通过随机采样去除相关性。

完整代码:
在这里插入图片描述

策略梯度

在这里插入图片描述

在这里插入图片描述
最终变成:
在这里插入图片描述
在这里插入图片描述
我们可以在不知道转移概率的条件下计算这些量吗?
p(τ;θ):我们可以得到p和τ为一个轨迹的概率,这是所有得到的下一个状态的转移概率、给定状态、行为的乘积,以及在策略π下采取行动的概率。把所有这些乘在一起就得到了轨迹的概率。
log(p;θ):对(p;θ)取对数,将累乘化为累加。
(log(p;θ))’ 对参数θ进行求导:式子的第二项才有参数θ,我们可以看到这不依赖转换概率。所以我们不需要转换概率来进行梯度估计。
然后对任意给定的轨迹τ进行采样,可以利用这个梯度估算J(θ)。式子展示的是单轨迹,也可以在多个轨迹上进行采样以得到期望值。

但是它也具有大的方差值,我们可以做什么来减少方差提高估计量

第一个想法是可以通过影响来自该状态的未来奖励来提高行动的概率;第二个想法即使用折扣因子来忽略延迟效应,折扣因子告诉我们有多关心即将获得的奖励而不是比较晚的奖励,现在评价一个行动好不好更多的关注他在即将产生的行动组,并降低晚一点发生的行为的权重。
在这里插入图片描述
第三个想法是使用基线来减少方差。仅使用轨迹的原始值存在问题,例如奖励都是正的,那么只是不断增加所有行为的可能性,而真正重要的是奖励与你期望的相比更好还是更差。为了解决这个问题我们可以引入一个依赖于状态的基线函数,基线函数告诉我们我们的猜测是什么,我们期望从这个状态得到什么,然后用以增加或降低我们的概率的奖励或缩放因子,等于未来奖励的期望减去基线,所以它是我们预期中得到的奖励与真实奖励的相对关系。
在这里插入图片描述
那么如何选择基线呢?
简单的:获取目前为止所获得的奖励的滑动平均值。
下一种:Q函数减去该状态下的价值函数
在这里插入图片描述

Actor-Critic

优势函数:表示给定状态下一个行为有多好。Q(s,a)减去Vs,我们对状态评价的期望值通过这个优势函数得到的。优势函数是我们从这个动作中得到多少优势,动作比预期好多少
在这里插入图片描述
直接用Qπ(s,a)来代替G的期望值,而baseline就可以使用Vπ(s)来代替
在这里插入图片描述

循环聚焦模式

在这里插入图片描述
图片分类,通过图片中一系列微景来实现,集中在图像的局部区域,观察周围来建立信息。
状态:当前看到的微景
动作:下一步看向图片的哪一部分(x,y坐标)
奖励:最后的时间步如果分类正确就是1否则为0

因为得到微景是一个不可导的操作,所以要使用强化学习,学习如何采用这些视觉动作的策略。给定微景状态,RNN对这个状态建模,使用策略参数输出下一个动作。
在这里插入图片描述

输入一张图片,然后观察,观察位置就是框出来的位置,框内此时观察的值全部为0。然后将看到的传给网络。
传入网络后,我们将结合现在的状态,观察的历史,使用一个循环网络,输出我们下一步观察位置的xy坐标。我们的输出实际上是一个行动的高斯分布,输出行动的均值和方差。
根据行动的分布,抽取一个特定的xy坐标采样作为输入,并得到下一个图片中的观察点。利用该输入和之前的隐藏态,循环神经网络得到策略a。然后利用a得到下一个观察位置。
在最后一步,如果是分类问题,会设置softmax层,对每一个类产生一个概率分布,此时推断最大可能是2.

参考:
https://blog.csdn.net/poulang5786/article/details/80900858
https://zhuanlan.zhihu.com/p/25239682

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值