zoukankan      html  css  js  c++  java
  • 强化学习学习笔记:Q-learning无模型算法

    强化学习按理解环境的程度可以划分为无模型和有模型,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。

  • 相关阅读:
    Android游戏开发研究与主角在地图滚动
    程序猿学一点金融知识,但是,如果没有提示代码
    Java8的日期和时间的库20经常使用的演示样本
    通用Key-Value存储系统的存储管理策略解析
    车库门开启器
    timesten备份和恢复
    HTML DOCTYPE 重要性
    嵌Ruby 2 《捆绑》
    Jexus web server V5.6.1正式公布
    卓尼斯ZT-180评測
  • 原文地址:https://www.cnblogs.com/feifanrensheng/p/13567770.html
Copyright © 2011-2022 走看看