强化学习笔记:Q-learning
本文整理于datawhalechina.github.io的强化学习教程以及莫烦python强化学习教程这篇写短点吧,要是在写长的话动辄几个小时,顶不住啊QAQ0x01 简介
本文整理于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+γmaxa′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+γa′maxQ(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)值逐渐收敛。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)