本文整理于datawhalechina.github.io的强化学习教程以及莫烦python强化学习教程

这篇写短点吧,要是再写长的话动辄几个小时,真的顶不住了

0x01 简介

在这里插入图片描述
在强化学习中,Qπ(s,a)Q^\pi(s, a)Qπ(s,a),简记为Q(s,a)Q(s, a)Q(s,a),是指在状态sss下,当前步采取策略aaa,接下来所有的步骤都依据给定的策略π\piπ来决策直到回合结束所获得的回报的期望值。

为了使得reward最大,这里agent的策略π\piπ可以认为是在当前的状态sss下,无脑选择使得Qπ(s,a)Q^\pi(s, a)Qπ(s,a)最大的aaa

上图是Q-learning的算法流程图。给定agent的策略π\piπ,我们要通过这么一个算法更新Qπ(s,a)Q^\pi(s, a)Qπ(s,a),简记为Q(s,a)Q(s, a)Q(s,a)。为了使收益最大,agent在每一个状态sss将无脑选择Qπ(s,a)Q^\pi(s, a)Qπ(s,a)值最大的动作aaa

假设环境状态为sss,Q-learning的做法是:

首先,根据当前的sss选择一个动作aaa,这个动作aaa的选择策略是ϵ−greedy\epsilon-greedyϵgreedy,即大概率选择使得Q(s,a)Q(s, a)Q(s,a)的值(这时Q(s,a)Q(s, a)Q(s,a)还没有被训练好)达到最大的a∗a^*a,但是会有ϵ\epsilonϵ的概率来随机选择一个动作aaa

接着,我们选取了动作aaa之后,就可以采取aaa,然后获得奖励rrr,并且到达下一个状态s′s's

下面,更新Q(s,a)Q(s,a)Q(s,a)

Q(s,a)=(1−α)Q(s,a)+α(r+γmax⁡a′Q(s′,a′))Q(s,a) =(1 - \alpha) Q(s,a) + \alpha (r + \gamma \max_{a'} Q(s', a') )Q(s,a)=(1α)Q(s,a)+α(r+γamaxQ(s,a))

其中α\alphaα是学习率,γ\gammaγ是折扣因子。假设我们完全随机地初始了Q(s,a)Q(s, a)Q(s,a)值,但是我们在后来的更新中,逐渐引入了每一步的收益rrr。并且,因为学习率α\alphaα的存在,之前的初始项会被慢慢稀释掉,由rrr组成的Q(s,a)Q(s, a)Q(s,a)值留存的越来越多。

最后,重复上面的动作,Q(s,a)Q(s, a)Q(s,a)值逐渐收敛。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐