强化学习按理解环境的程度可以划分为无模型和有模型,Q-Learning算法是典型的无模型强化学习算法,与有模型的强化学习算法的区别是它的后继状态([S'])未知,只能通过与环境交互以试验和采样的方法得到一个后继状态([S'])。所以Q-Learning算法仅由元组([left( {S,A,R,gamma }
ight)])来描述。
强化学习是智能体从状态到动作的映射,通常使用Q表来表示状态-动作值函数,智能体通过不断与环境进行交互,以此来更新Q表,并通过Q表来进行目标和行为决策。Q-Learning算法的目标函数是最大化Q值函数,智能 体每次与环境交互,都会根据当前的状态选择动作,即在状态([{S_t}])做出动作a,并抵达状态([{S_{t + 1}}]),将动作a,获得的奖励R与折扣后续最大奖励([{R_t} + gamma max Qleft( {{s_{t + 1}},a}
ight)])的和称为:
([{Q_{real}} = {R_t} + gamma max Qleft( {{s_{t + 1}},a} ight)])
而之前学习的得到的([Qleft( {{s_t},{a_t}} ight)])称为Q的估计值。
Q-Learning算法是时序差分的强化学习方法,其中有一个很重要的概念就是TD error,表示的是在该时刻估计的误差。Q-Learning算法通过Q现实与Q估计之间的时序差分误差(temporal difference error, TD error)来更新Q表,以此来逼近目标函数。该算法的目标策略为贪婪策略即,
([Qleft( {{s_t},{a_t}}
ight) = Qleft( {{s_t},{a_t}}
ight) + alpha left[ {{R_t} + gamma max Qleft( {{s_{t + 1}},a}
ight) - Qleft( {{s_t},{a_t}}
ight)}
ight]])
行为策略为([varepsilon - greedy]),即
(
[{a_t} = left{ {egin{array}{*{20}{c}}
{random,egin{array}{*{20}{c}}
{} & {Pleft( varepsilon
ight)} \
end{array}} \
{arg max Qleft( {{s_t},{a_t}}
ight),egin{array}{*{20}{c}}
{} & {Pleft( {1 - varepsilon }
ight)} \
end{array}} \
end{array}}
ight.]
)
式中,e为策略参数,智能体以e的概率在动作空间中随机选择行为,以1-e的概率在动作空间中选择会得到最大Q值的贪婪动作。
由此可以看出看出目标策略与行为策略不同,因此Q-Learning算法算法的策略为异策略'其优势在于寻求最优的同时保证充分的探索性。
Q-Learning算法相关参数选取原则如下:
S:选取的状态空间一定要包含智能体学习过程中的所有状态;
A:动作空间的选择一定要考虑智能体所有可能做出的所有动作;
R:奖励函数的设计一定要与所要优化的目标相关;
([alpha ]):学习率是R表更新的速率'一般取值为0.01左右;
([gamma ])折扣率是未来经验对当前状态执行动作的重要程度,一般取值;
e:表示动作选择的随机性'在学习初期设置为1,保证探索性,在学习过程中不断衰减,最终衰减到0。