李弘毅深度强化学习笔记【1 Policy Gradient 】

强化学习得三个主要要素:actor(智能体本身),env(环境),reward function(奖励)

但是环境我们是无法改变得,reward我们也无法改变,唯一可以改变得是智能体得动作

智能体得策略:策略Π就是智能体在环境s得情况下选择行动a的概率

在policy gradient的算法中,我们用神经网络来拟合策略policy。神经网络的参数。

神经网络的输入是机器的观测值(可以用向量表示,也可以用矩阵表示)

神经网络的输出是每个动作对应的概率值

本例来说,输入时游戏中每一帧的动画(智能体的观测值),经过神经网络的计算,输出是游戏中智能体做出动作的概率。

在这个例子中,智能体在环境s1根据策略Π选择一个a1,执行以后环境给出一个r1,如此循环往复

经过数次的交互,最后的动作是at,之后获得最终的汇报rt。之后计算出总共的回报为R。

我们记录?=?1,?1, ?2,?2, ⋯,??,??τ={s_1,a_1, s_2,a_2, ⋯,s_T,a_T }做为一个trajectory,

计算概率的思想就是起始状态是s1的概率p(s1 ),乘以在s1时选择a1的概率pθ (a1 |s1 )之后再乘以在s1,a1之后进入到s2的概率p(s2 |s1,a1 )以此类推,累成得到 ∏_(t=1)^T▒〖p_θ (a_t |s_t )p(s_(t+1) |s_t,a_t ) 〗

下面计算总的收获,就是所有的r相加,但是这R并不是一个标量,而是一个随机的变量,因为r是随机的。为了让这个不是一个随机变量,我们就对其求期望。用这个trajectory的概率乘以这个trajectory的收获,之后加和。

我们强化学习的目的就是要让这个加和的期望最大

我们可以用梯度上升的方法求这个的最大值,我们现在要做的就是求这个梯度。

通过数学方法,我们得到的梯度是??~????????????E_(τ~p_θ (τ) ) [R(τ)∇logp_θ (τ)],但是计算机无法全部计算,只能采样,所以就要计算采样结果的均值,得到1??=1????????????1/N ∑_(n=1)^N▒〖R(τ^n )∇logp_θ (τ^n ) 〗,如果采样十分的多的话,可以做到近似。最后再把每一个trajectory的每一步都逐个计算,得到最终结果。

我们看以看policy gradient的具体过程,就是先有一个策略θ,之后用这个策略来收获很多数据,用得到的数据来计算梯度,之后再用梯度上升来求得新的θ,用更新的θ再来获取数据,之后再更新θ,如此巡回反复。

实验的时候我们可以将其看作是一个分类问题,都是输入数据,之后得到概率,区别就是强化学习的时候加上具体的R,R相当于一个权重。

因为很多时候我们得到的reward往往都是正的,这样的话理想情况,就是reward很大,更新的幅度更大,reward很小,更新的幅度更小。但是因为我们往往都是采样,所以如果有的情况我们碰巧没有采样到,但是并不是因为不好,本来向上的更新就会因为别的都是向上的变成向下的更新,造成了迷惑。所以我们就要加一个基准b使得不是所有的R都是正的而是有正有负数,这样如果更新幅度在b之上,就向上更新,反之向下更新。

这个意思就是(sb,a2)的r和(sa,a1)的r是没有任何关系的,但是假设总是从头开始计算的话,R的结果将总是被(sa,a1)来左右,所以我们就不再从头开始算,而是计算哪个(s,a)对,就从哪里开始计算,这样更加准确

时间的衰减度也是很重要的,所以每每下一步都要乘上这个衰减度

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值