zoukankan      html  css  js  c++  java
  • 强化学习--QLearning

    1.概述:

    QLearning基于值函数的方法,不同与policy gradient的方法,Qlearning是预测值函数,通过值函数来选择

    值函数最大的action,而policy gradient直接预测出action。

    Q-learning 是一种基于值函数估计的强化学习方法,Policy Gradient是一种策略搜索强化学习方法。
    两者是求解强化学习问题的不同方法,如果熟悉监督学习,
    前者可类比Naive Bayes——通过估计后验概率来得到预测,
    后者可类比SVM——不估计后验概率而直接优化学习目标。
    目标就是选择出最佳action。


    2一些定义

    2.1值函数

    Given an actor π, it evaluates how good the actor is 

    有2种值函数,V(S) 、Q(s,a).

    2.1.1 V(S)

    有2种衡量的方法:

    MC方法只能等玩完一个episode才能进行统计评价,效率比较低。

    TD方法可以每玩一步就更新一次。

     mc与td对比,mc需要估计的是一个episode的值函数,方差比较大,而td是与时间相关的,只有r是需要估计的,方差比较小。

    下面看一下例子:

    V(Sb)=6/8=1

    MC:  V(Sa)=0/2=0

    TD: V(Sa)=V(Sb)+0=3/4

     2.1.2 Q(s,a)

    我们可以评估,在当前状态s,采取行动a,在接下来的游戏中获得得奖励累计和的期望为Q(s,a)。但在接下来的游戏中,

    不一定采取行动a,而是采取Q值最大的行动。

    下图中1,无论采取那个行动都无所谓,因为离球还很远,而图2离球比较近了,我们需要向上接到球,接下来游戏才能获得奖励。

     3 怎么用

    我们利用PI去与环境互动,得到一些互动数据,通过TDorMC的方法去更新Q(s,a)的参数,

    根据更新后的Q,我们选择一个更好的pi_new,然后把pi更新为pi_new,再去与环境互动。

    tips:pi_new 是完全取决于Q,没有新参数。

    3.1 target network

    3.2 Epsilon Greedy 

    如果我们只选择Q值最大的action,如果碰巧其他的action没有被采样到,这样其他的action将更不会被选择,

    并不是他们不好,所以需要打破这种循环,我们以一定的几率选择Q最大的,还有几率选择其他的action。

     3.3 Replay Buffer

    我们将历史数据存到Buffer里,然后训练的时候随机选一批,还要定期更新Buffer

     3.4 完整算法

     4 QLeaning 进阶

    参考:

    链接:https://www.zhihu.com/question/49787932/answer/124727629

    https://www.youtube.com/watch?v=2-zGCx4iv_k&list=PLJV_el3uVTsODxQFgzMzPLa16h6B8kWM_&index=4

  • 相关阅读:
    Windows下搭建HTK
    使用VS2012遇到的问题
    Chapter 3:Speech Production and Perception
    Chapter2:Discrete-Time Signal Processing and Short-Time Fourier Analysis
    Chapter 1:Introduction
    将SVM用于多类分类
    Kernel ridge regression(KRR)
    Sklearn学习笔记
    LDA与QDA
    〖Linux〗使用ssh登录远程主机,并在本地打开远程图形界面
  • 原文地址:https://www.cnblogs.com/zle1992/p/10238930.html
Copyright © 2011-2022 走看看