强化学习学习笔记:Q-learning无模型算法

强化学习按理解环境的程度可以划分为无模型和有模型,Q-Learning算法是典型的无模型强化学习算法,与有模型的强化学习算法的区别是它的后继状态\(\[S'\]\)未知,只能通过与环境交互以试验和采样的方法得到一个后继状态\(\[S'\]\)。所以Q-Learning算法仅由元组\(\[\left( {S,A,R,\gamma } \right)\]\)来描述。
强化学习是智能体从状态到动作的映射,通常使用Q表来表示状态-动作值函数,智能体通过不断与环境进行交互,以此来更新Q表,并通过Q表来进行目标和行为决策。Q-Learning算法的目标函数是最大化Q值函数,智能 体每次与环境交互,都会根据当前的状态选择动作,即在状态\(\[{S_t}\]\)做出动作a,并抵达状态\(\[{S_{t + 1}}\]\),将动作a,获得的奖励R与折扣后续最大奖励\(\[{R_t} + \gamma \max Q\left( {{s_{t + 1}},a} \right)\]\)的和称为:

\(\[{Q_{real}} = {R_t} + \gamma \max Q\left( {{s_{t + 1}},a} \right)\]\)

而之前学习的得到的\(\[Q\left( {{s_t},{a_t}} \right)\]\)称为Q的估计值。

Q-Learning算法是时序差分的强化学习方法,其中有一个很重要的概念就是TD error,表示的是在该时刻估计的误差。Q-Learning算法通过Q现实与Q估计之间的时序差分误差(temporal difference error, TD error)来更新Q表,以此来逼近目标函数。该算法的目标策略为贪婪策略即,
\(\[Q\left( {{s_t},{a_t}} \right) = Q\left( {{s_t},{a_t}} \right) + \alpha \left[ {{R_t} + \gamma \max Q\left( {{s_{t + 1}},a} \right) - Q\left( {{s_t},{a_t}} \right)} \right]\]\)

行为策略为\(\[\varepsilon - greedy\]\),即
\( \[{a_t} = \left\{ {\begin{array}{*{20}{c}} {random,\begin{array}{*{20}{c}} {} & {P\left( \varepsilon \right)} \\ \end{array}} \\ {\arg \max Q\left( {{s_t},{a_t}} \right),\begin{array}{*{20}{c}} {} & {P\left( {1 - \varepsilon } \right)} \\ \end{array}} \\ \end{array}} \right.\] \)
式中,e为策略参数,智能体以e的概率在动作空间中随机选择行为,以1-e的概率在动作空间中选择会得到最大Q值的贪婪动作。

由此可以看出看出目标策略与行为策略不同,因此Q-Learning算法算法的策略为异策略'其优势在于寻求最优的同时保证充分的探索性。
Q-Learning算法相关参数选取原则如下:
S:选取的状态空间一定要包含智能体学习过程中的所有状态;
A:动作空间的选择一定要考虑智能体所有可能做出的所有动作;
R:奖励函数的设计一定要与所要优化的目标相关;
\(\[\alpha \]\):学习率是R表更新的速率'一般取值为0.01左右;
\(\[\gamma \]\)折扣率是未来经验对当前状态执行动作的重要程度,一般取值;
e:表示动作选择的随机性'在学习初期设置为1,保证探索性,在学习过程中不断衰减,最终衰减到0。

posted @ 2020-08-26 20:58  feifanren  阅读(1354)  评论(0编辑  收藏  举报