本系列博客对莫烦视频(https://morvanzhou.github.io/)的知识点进行总结。
强化学习基础概念
强化学习的过程中会进行多次迭代,每次迭代都会进行上图的操作。也就是Agent(智能体)根据现在的状态做出一个自认为最好的动作,然后环境根据这个动作给他返回一个奖赏和新的状态。之后不断循环这个过程直到智能体对环境充分熟悉,保证每次都能做出正确的动作,这就是强化学习的基本模型。
Q Learning
Q-Learning是强化学习算法中value_based的算法,该算法中,Q即为Q(s,a),就是在某一时刻的 s 状态下(s∈S),采取动作a (a∈A)动作能够获得收益的期望,环境会根据agent的动作反馈相应的回报reward,所以算法的主要思想就是将State与Action构建成一张Q表来存储Q值,然后根据Q值来选取能够获得最大的收益的动作。Q表中一行代表一个状态(state),一列代表一个动作(action),如下图。
这个表所表示的环境中只有两个状态,就是s1和s2。Agent也只有两个动作,a1和a2。
比如Agent当前状态为s1,他要选择现在最好的动作,就是a2,就这么简单。
所以关键在于如何建立正确的Q表,Q Learming做的就是通过不断的迭代更新优化这个Q表。
下面是Q Learning如何更新Q表的过程。
Q(s,a)是Q表中s状态下动作a的值,公式中的alpha代表的是学习效率,r是奖励,gamma是衰减值,这些都是人为设定的参数。首先整体来看每次更新Q(s,a)都是+=的形式,这也就是强化学习中”强化“的概念,也就是在学习的过程中不抛弃原有学到的东西,而是在此基础上增加。现实减去估计再加上奖励,就是这次学到的东西。
再看细节,代表的是当前做出动作以后,转移到的下一个状态中的最好动作的值,也就是现实值。而Q(s’,a')就是接下来要更新的值,这样子不断的迭代下去,每一层都会加上一个奖励r,也就是说,这条路如果走下去是对的,那么多次迭代的奖励的累计值就会很大,那么Q(s,a)更新后的值就会很大,代表着s状态下,做出a动作就是很靠谱的。而这里有个很重要的参数gamma,是一个0到1的值,它就代表着Agent高瞻远瞩的能力,如下图。
如果gamma等于0,那么Agent只能获得当前的奖励r2,只能看到眼前的利益,这是不聪明的,所以gamma值的设置很重要。
以上是目前我对Q Learning的学习总结。