zoukankan      html  css  js  c++  java
  • 强化学习(Reinforcement Learning)

    强化学习(Reinforcement Learning)

    作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/

            通过阅读《神经网络与深度学习》及其他资料,了解强化学习(Reinforcement Learning)的基本知识,并介绍相关强化学习算法。更多强化学习内容,请看:随笔分类 - Reinforcement Learning

    1. 强化学习背景与基本概念

    1.1 强化学习概念图

    三种机器学习方法(监督学习,无监督学习与强化学习)比较:

    1.2 基于学习信号的结构复杂度和时序复杂度对机器学习方法进行归类

    1.3 强化学习常用符号

    1.4 强化学习定义与概念

    1.5 马尔可夫决策过程(Markov Decision Process, MDP)

    1.6 强化学习的目标函数

    1.7 值函数

    1.8 强化学习方法总体概括

    算法小结:

    1. 值函数算法:通过迭代更新值函数来间接得到智能体的策略,当值函数迭代达到最优时,智能体的最优策略通过最优值函数得到。在算法应用的场景上,值函数算法需要对动作进行采样,因此只能处理离散动作的情况。

    2. 策略梯度算法:直接采用函数近似的方法建立策略网络,通过策略网络选取动作得到奖励值,并沿梯度方向对策略网络参数进行优化,得到优化的策略最大化奖励值。在算法应用的场景上,策略梯度算法直接利用策略网络对动作进行搜索,可以被用来处理连续动作的情况。

    3. 演员-评论员算法:将值函数算法和策略梯度算法结合得到的演员-评论员(Actor-Critic, AC)结构也受到了广泛的关注。在AC结构中,演员使用策略梯度法选取动作,通过值函数对演员采取的动作进行评价,并且在训练时,演员和评论员的参数交替更新。

    图源:李茹杨,彭慧民,李仁刚,赵坤.强化学习算法与应用综述.计算机系统应用,2020,29(12):13-25.

    2. 基于值函数的方法

    2.1 值函数估计——优化思路

    2.2 动态规划算法(基于模型的强化学习)

    2.3 蒙特卡罗方法(模型无关的强化学习)

    2.4 时序差分学习方法(蒙特卡罗+动态规划)

    2.4.1 SARSA:一种同策略的时序差分学习算法

    2.4.2 Q学习:一种异策略的时序差分学习算法

        Q学习通常假设智能体贪婪地选择动作,即只选择Q值最大的动作,其他动作的选择概率为0,从而保证了Q学习的收敛性。与Sarsa相比,异策略Q学习需要更短的训练时间,跳出局部最优解的概率更大。然而,如果智能体根据Q值的概率模型而不是贪婪选择对动作进行采样,则采用异策略技术的Q值估计误差将增大。

    2.4.3 深度Q网络(Deep Q-Networks,DQN)

    DQN网络结构:

    DQN(off-policy)算法流程:

    DQN算法改进:

    Dueling DQN 的网络结构

    补充:为什么需要经验回放池(Experience Replay Buffer)?

    1. 重复利用收集到的经验,而不是用一次就丢弃,这样可以用更少的样本数量达到同样的表现。重复利用经验、不重复利用经验的收敛曲线通常如下图所示。图的横轴是样本数量,纵轴是平均回报。

    图来自:王树森, 张志华, 深度强化学习,https://github.com/wangshusen/DRL/blob/master/Notes_CN/DRL.pdf, 2021.

    2. 采用神经网络训练时,一般需要进行基于梯度的优化,并对数据进行分批次训练,设立batch,但采用这种方式的前提是假设样本之间都是独立同分布的(independent and identically distributed,i.i.d.),这样每个batch内的噪声可以互相抵消。但强化学习中的决策过程是一个时间序列,这意味着前后数据之间具有很强的相关性,这样不利于进行梯度优化。设立经验回放池,将贝尔曼公式中需要的数据保存起来,通过随机的(或者基于优先度的)从经验回放池中进行抽样,当回放池中的数据足够多,随机抽样得到的数据就接近独立同分布,因此设立经验回放池可以打破序列之间的相关性,避免模型陷入局部最优。

     图来自:From Policy Gradient to Actor-Critic methods https://rl-vs.github.io/rlvs2021/class-material/pg/6_baseline_AC.pdf

    3. 基于策略函数的学习方法

    3.1 策略梯度(Policy Gradient)

    3.2 REINFORCE算法

    3.3 带基准线的REINFORCE算法(REINFORCE with Baseline)

    补充:策略梯度法改进思路

    信任域类算法请看:信赖域策略优化(Trust Region Policy Optimization, TRPO)近端策略优化算法(Proximal Policy Optimization Algorithms, PPO)重要性采样(Importance Sampling)——TRPO与PPO的补充

    4. 演员-评论员算法(Actor-Critic Algorithm)

    A2C的基本结构:

    A3C(on-policy)异步训练框架图:

    Soft Actor-Critic:

    5. 深度强化学习算法分类与应用

    5.1 算法分类

    5.2 应用与意义

    6. 基于模型的方法与定义奖励函数方法概述

    根据智能体是否通过与环境交互获得的,数据来预定义环境动态模型,将强化学习分为模型化强化学习(基于模型的强化学习)和无模型强化学习(与模型无关的强化学习),上述讨论的均为无模型强化学习。

    无模型的深度强化学习算法需要大量的采样数据进行训练,而这些数据往往很难通过交互得到,因此可以考虑使用已有的现实环境中的数据建立环境模型,然后利用环境模型对智能体进行训练。

    基于模型的强化学习:

    定义奖励函数方法概述:

    7. 参考文献

    [1] 强化学习相关资料(书籍,课程,网址,笔记等) - 凯鲁嘎吉 博客园

    [2] 邱锡鹏,神经网络与深度学习,机械工业出版社,https://nndl.github.io/, 2020.

    [3] 强化学习——值迭代和策略迭代 - 虔诚的树 - 博客园 https://www.cnblogs.com/xxxxxxxxx/p/11536460.html

    [4] 杨思明 , 单征 , 丁煜 , 李刚伟. 深度强化学习研究现状及展望[J]. 计算机工程, 2021, doi: 10.19678/j.issn.1000-3428.0061116.

    [5] 刘朝阳, 穆朝絮, 孙长银. 深度强化学习算法与应用研究现状综述[J]. 智能科学与技术学报, 2020, 2(4): 314-326.

    [6] 秦智慧, 李宁, 刘晓彤, 刘秀磊, 佟强, 刘旭红. 无模型强化学习研究综述[J]. 计算机科学, 2021, 48(3): 180-187.

    作者:凯鲁嘎吉
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文链接,否则保留追究法律责任的权利。
  • 相关阅读:
    Shell-01-脚本开头实现自动添加注释
    Linux中通过SHELL发送邮件
    linux服务器修改密码登录Failed to restart ssh.service: Unit ssh.service not found
    ffmpeg+java实现五秒钟剪辑80个视频
    Vue学习-watch 监听用法
    springboot添加定时任务
    Spring异常:java.lang.NoClassDefFoundError: org/springframework/core/OrderComparator$OrderSourceProvider
    多线程实战-龟兔赛跑
    Git分支管理(二)
    android studio bug : aidl is missing 解决方案
  • 原文地址:https://www.cnblogs.com/kailugaji/p/15354491.html
Copyright © 2011-2022 走看看