欢迎光临散文网 会员登陆 & 注册

【强化学习】一小时完全入门

2023-06-03 00:09 作者:catsbelly  | 我要投稿

1-1

价值:将来能够获得所有奖励之和的期望值

1-2

强化学习的某一个核心问题:

exploration 探索是否有其他更好的行动创造更大价值

exploitation 利用,利用已有价值函数

二者需要平衡

1-3 多臂老虎机

强化学习的算法-具体的学习过程

Value:action value在此,一个行动具有的价值就是对应即时奖励的期望值(因为没有将来的奖励)

价值函数:

策略函数:

Qt(a)初始值不能设为0,因为一旦这样,由于贪婪策略,一开始选了一个,尝到了甜头,(而另一个没尝所以没有甜头),以后就一直会选择那一个已经尝试过的。

为解决此问题,我们可以把初始值设大,鼓励更多探索

(也就是让预期变的很甜,而实际上两个选择都不会这么甜,让预期的甜头变成苦头,这样他遭受毒打之后自然会选择不那么苦的另一个)

但是左右老虎机策略如果改变,此方法依然失效

因此可以用e-greedy,让他有一定概率去探索另一个。

1-5 误差

Qn:对于第n次R的估计值

Rn:第n次的奖励

Rn-Qn:奖励预测误差

由于Qn存在误差,说明预测不准确,因此要将其迭代修正为Qn+1,1/n就是步长或者学习率

这就是误差学习法,也就是基于误差进行学习

但是这样还存在一个问题:学习率1/n会随着步数增加会越来越小。

当环境奖励策略不变时,问题不大。但如果奖励分布随着步数增长而变化,由于我们的学习率就会越来越小,我们的预测误差就会越来越大,预测结果就会走偏。

为了避免走偏,我们将学习率1/n变为常数α,得到以下公式:

Qn不再是Ri的平均值,而变成了Ri的加权平均,而且i越大,权重越大,这样就更加适用于奖励分布可能会改变的情况。

最后对比一下改进前后的预测价值修正方法

1-6 OOXX

这是一个行动价值的价值公式,也是一个基于误差的学习方法

它适用于没有延迟奖励,只有一个状态的情况

其格式可以总结为:

新的估计=旧的估计+学习率*误差

现在,为了解决延迟奖励与多状态的情况

我们要将其推广为状态价值公式

状态价值公式的学习方法是啥格式呢?

跟上面的行动价值的学习方法一样

新的估计=旧的估计-学习率*误差

->

新的状态行动价值=旧的状态行动价值-学习率*误差

我们依然先会为状态行动价值设置一个初始值,再做实验,然后得到某一次实验中真实的状态行动价值,最后用它减去学习率*误差,接着再做实验……

上图中,Q(St,At)代表在St状态下,采取At行动后,产生的价值Rt的估计,那么旧估计的误差自然就是旧估计Q(St,At)-t时刻后所有奖励Rt。

代入我们之前设想的格式,就很容易得到下面的第一个公式

但是这个式子在使用时,需要使用所有Rt的和而这个Rt的和必须等到游戏运行到最终时,才会出现,所以迭代的比较慢。

为了让t时刻运行之后就能迭代,我们想了个骚操作——用估计值来代替真实值。

t时刻后,所有奖励的值≈t时刻所获得的奖励+此后奖励的估计值(而不是真实值)

那么我们的状态行动价值学习方法就变成了上面第二个式子。

这样的话,就不需要等到游戏结束再更新Q(St,At)了,速度应该提升了很多。

第一个式子,是蒙特卡罗法的雏形

第二个式子,是时序差分学习法的雏形

【强化学习】一小时完全入门的评论 (共 条)

分享到微博请遵守国家法律