目录

0. 强化学习wiki

1. 介绍

2. Exploration vs Exploitation 探索与开发

3. 各类最优化方法

3.1 Brute force猛兽蛮力法(暴力搜索)

3.2 Value function estimation(价值函数估计)

3.2.1 Monte Carlo methods 蒙特卡洛方法

3.2.2 Temporal difference methods 时差法

3.2.3 Function approximation methods 函数近似法

3.3 Direct policy search(直接策略搜索)

3.4 Model-based algoritms

4 不同RL算法对比

0. 原视频地址

1. Policy Gradient

2. Proximal Policy Optimization(PPO)

2.1 Off-Policy

2.2 Importance Sampling

2.3 具体的Policy生成方法

Q-learning


0. 强化学习wiki

大致了解当前强化学习技能树发展情况

Reinforcement learning - Wikipedia

1. 介绍

强化学习(英语:Reinforcement learning,简称RL)是机器学习中的一个领域,强调如何基于环境而行动,以取得最大化的预期利益。强化学习是除了监督学习和非监督学习之外的第三种基本的机器学习方法。与监督学习不同的是,强化学习不需要带标签的输入输出对,同时也无需对非最优解的精确地纠正。其关注点在于寻找探索(对未知领域的)和利用(对已有知识的)的平衡,强化学习中的“探索-利用”的交换,在多臂老虎机问题和有限MDP中研究得最多。在机器学习问题中,环境通常被抽象为马尔可夫决策过程(Markov decision processes,MDP)。

2. Exploration vs Exploitation 探索与开发

随机探索与选择算法认为最优项之间的平衡。

强化学习需要比较聪明的探索机制,直接随机的对动作进行采样的方法性能比较差。虽然小规模的马氏过程已经被认识的比较清楚,这些性质很难在状态空间规模比较大的时候适用,这个时候相对简单的探索机制是更加现实的。

其中的一种方法是贪婪算法,这种方法会以比较大的概率去选择现在最好的动作。如果没有选择最优动作,就在剩下的动作中随机选择一个。epsilion在这里是一个可调节的参数,更小的epsilion意味着算法会更加贪心。

3. 各类最优化方法

3.1 Brute force猛兽蛮力法(暴力搜索)

1. 对于每个可能的政策,在遵循该政策时对收益进行抽样调查

2. 选择具有最大预期收益的政策

缺陷:policies空间过大甚至无穷、返回值的方差过大需要较多采样。

可以通过价值函数估计、直接策略搜索来代替暴力搜索。

3.2 Value function estimation(价值函数估计)

价值函数方法尝试去找到一个策略,该策略能最大化奖励值,奖励值通过对一些策略的观测期望值进行估计来得到,这些被观测的策略是当前current策略(on-policy)或是最佳optimal策略(Off-Policy)。最佳策略在任意初始化的状态中总能返回最好的结果。

核心思想是从找最大状态期望V变成找最大动作期望Q。

两种base方法价值迭代value iteration和策略迭代policy iteration。这两类都是计算一系列Qk(k=0,1,2,...)来汇聚Q*,以及通过近似策略来在大的动作空间中得到期望。

策略迭代包括两步骤:策略评估、策略提升。

3.2.1 Monte Carlo methods 蒙特卡洛方法

用于策略迭代中的策略评估。

在策略评估步骤中,给出一个平稳、确定的策略π,需要去计算(或近似得到)所有状态-行为对的Qπ(s,a)得分。在有限空间中,一个s-a的得分可以用所有Q(s,a)得分的平均值来估计。

在策略提升步骤中,通过贪心算法最大化Q得分来改善策略,在实际应用中,可以通过lazy evaluation方法来推迟更新步骤。

该方法的局限性在于:

1. 在非最优/次优策略的估计中花费太多时间。

2. 对样本的使用率低。

3. 当样本分布方差高(得分的概率分布较为分散)时,收敛缓慢。

4. 只能用于episodic problems。

5. 只能用于小的有限MDPs场景(或者说是离散值场景)。

针对以上这五个问题,后续又提出了一些改进方法。

问题1:在次优策略估计中花费太多时间,可以通过允许在values settle前修改Policy来解决,不过相应的这可能会带来收敛问题。现在很多算法都这么做,它们被统称为广义上的策略迭代算法;许多actor-critic也属于此类(注:actor-critic的做法是有两个神经网络,一个是actor用于训练Policy,另一个是critic用于估计不同状态下action的reward;即同时学习Policy和value function)。

问题2:通过设置trajectories可以对路径中任意s-a对的训练做提升来解决,这同时也能缓解问题3。

3.2.2 Temporal difference methods 时差法

TD方法中的计算可以是增量incremental的(每次更新后不保留过去状态),或者是批次batch的(先收集数据然后按批次更新Policy)。

按batch的方法如最小二乘时间差分法(the least-squares temporal difference method)可以更好的利用样本samples,而按incremental的方法是在无法承担batch高计算成本与复杂度下的选择。

基于TD的方法也能解决问题4.

3.2.3 Function approximation methods 函数近似法

用于解决问题5.

3.3 Direct policy search(直接策略搜索)

直接在策略空间(的某个子集)中搜索,在这种情况下,问题变成了随机优化的情况。可用的两种方法是基于梯度的方法和无梯度的方法。

// 待补充

3.4 Model-based algoritms

最后,上述所有方法都可以与首先学习模型的算法相结合。例如,Dyna 算法从经验中构造模型,并使用模型为价值函数提供更多模型化的转换。这种方法有时可以扩展到使用非参数模型,例如就把转换存储并“重播”到算法中。
除了更新价值函数之外,还有其他使用模型的方法。例如,在模型预测控制中,模型用于直接更新行为。

4 不同RL算法对比

Algorithm Description Policy Action space  State space  Operator
Monte Carlo Every visit to Monte Carlo  皆可 离散 离散 Sample-means
Q-learning State–action–reward–state  Off-policy 离散 离散

Q-value

SARSA State–action–reward–state–action On-policy 离散 离散 Q-value
Q-learning - Lambda 具有资格痕迹的State–action–reward–state Off-policy 离散 离散 Q-value
SARSA - Lambda 具有资格痕迹的State–action–reward–state–action On-policy 离散 离散 Q-value
DQN

Deep Q Network

Off-policy 离散 连续 Q-value
DDPG Deep Deterministic Policy Gradient Off-policy 连续 连续 Q-value
A3C 异步 优势Actor-Critic On-policy 连续 连续 平均
NAF

Q-Learning with归一化优势函数

Off-policy 连续 连续 平均
TRPO Trust Region策略优化 On-policy 连续 连续 平均
PPO Proximal近端 Policy Optimization On-policy 连续 连续 平均
TD3 Twin Delayed双延迟 Deep Deterministic 深度确定性Policy Gradient Off-policy 连续 连续 Q-value
SAC

Soft Actor-critic

Off-policy 连续 连续 平均

0. 原视频地址

DRL Lecture 3: Q-learning (Basic Idea) - YouTubehttps://www.youtube.com/watch?v=o_g9JUMw1Oc&list=PLJV_el3uVTsODxQFgzMzPLa16h6B8kWM_&index=14

1. Policy Gradient

env和reward是事先给定的,不能在train的时候去调整,可变参数在Actor的Policy这里。 Actor的参数常被表示为,可以计算即为Trajectory发生的概率 这里的是因为s2和s1也是有关系的,所以是s1和a1状况下产生s2的概率。 env不一定是neural Networks的function,它也可以是rule-based的。

又因为这里是Score越大越好,所以是gradient ascent。update的时候正负号变了。

可以看出,这里计算梯度有一个直接的公式可以带入。所以可以这样直接算。

全部加起来就得到gradient,可以用来update参数。

相当于,如果在状态st下做了动作at,会让分数增长,那就保留,反之就舍去。

但是有时候game的reward设置的不好,大家都是正的。所以这里要设置一个base,通过减去这个base来惩罚不好的项。

2. Proximal Policy Optimization(PPO)

2.1 Off-Policy

先介绍了一个新概念叫Off-Policy,拿去和Env做互动的Agent和learn的Agent不同了。主要是由于

这个公式的期望,如果theta变了那之前收集到的数据就不适用了(这里对不上,不再是当前theta得到的τ的期望),所以希望用一个纯纯的工具人Agent只收集Env的τ,得到数据。可以用sample来的数据一笔train很多次。

2.2 Importance Sampling

接着讲了一个期望的sample方式,不知道为什么现在没办法直接从p里面做期望值,所以我们要用q分布去采样,得到下面这样一个计算公式。

但是要注意p和q的期望值不能差太多。可以看出等式左右二者的期望一样,但是方差不一样。所以导致如果sample的次数不够多,会导致有比较大的差距。公式如下:

比较形象的来看:如果是单纯的p采样,那么期望应该是负的。在sample次数不够的情况下,大概率会落到f(x)是正的这边,所以期望就变成正的了,不过如果sample够多的话,就会得到一个巨大的负值(q(x)作为一个非常小的除数),然后平衡下来最后还是负的。

2.3 具体的Policy生成方法

接下来就开始讲怎么把一个actor变成两个,公式是怎么变的。

上周讲过也就是说,针对期望的计算,不是一下计算出来的,而是根据每个pair分别计算。

Q-learning

tbc......

李宏毅教程系列——增强学习相关推荐

  1. 李宏毅机器学习系列-强化学习之模仿学习

    李宏毅机器学习系列-强化学习之模仿学习 模仿学习 行为复制(Behavior Cloning) 逆向强化学习(Inverse Reinforcement Learning (IRL)) 第三人称模仿学 ...

  2. 李宏毅机器学习系列-强化学习之Q-Learning

    李宏毅机器学习系列-强化学习之Q-Learning 评判家(Critic) 怎么衡量$V^\pi(s)$ 蒙特卡洛法(MC) 时序差分算法(TD) MC和TD对比 另一种评判$Q^\pi(s,a)$ ...

  3. eeglab教程系列(13)-学习和删除ICA组件

    研究组件属性的操作:Tools > Reject data using ICA > Reject components by map.操作过程如下: 出现如下界面后,点击"OK& ...

  4. eeglab中文教程系列 汇总

    eeglab中文教程系列 eeglab简介 教程目录 本教程为脑机学习者Rose发表于公众号:脑机接口社区 .QQ交流群:903290195 eeglab简介 eeglab是一个交互式的matlab工 ...

  5. 零基础 ABAP 学习教程系列文章的目录

    零基础 ABAP 学习教程系列文章的目录 ABAP 标准培训教程 BC400 学习笔记之一:ABAP 服务器的架构和一个典型的 ABAP 程序结构介绍 ABAP 标准培训教程 BC400 学习笔记之二 ...

  6. 动手学习深度学习——Pytorch版教程系列汇总(长期更新版)

    动手学习深度学习目录 开发环境配置 1. 基本简介 2. 预备知识 3. 线性神经网络 4. 多层感知器 5. 深度学习计算 6. 卷积神经网络 7. 现代卷积神经网络 8. 循环神经网络 9. 现代 ...

  7. 【无人驾驶系列六】增强学习在无人驾驶中的应用

    本文是无人驾驶技术系列的第六篇,着重介绍增强学习在无人驾驶中的应用.增强学习的目的是通过和环境交互,学习如何在相应观测中采取最优行为.相比传统的机器学习,它有以下优势:首先,由于不需要标注的过程,可以 ...

  8. 增强学习系列之(一):增强学习介绍

    1. 什么是增强学习 增强学习是机器学习的一种.我们都知道,机器学习主要分监督学习.非监督学习.半监督学习.增强学习 从这个分类中我们就能看到,增强学习和我们平常主要接触的监督和非监督学习不太一样.监 ...

  9. 在ASP.NET 2.0中操作数据教程系列

    在ASP.NET 2.0中操作数据教程系列 Scott Mitchell最近完成了为 www.asp.net 网站撰写的<在ASP.NET 2.0中操作数据 (Working with Data ...

最新文章

  1. ARP(Accounting Resource Planning)项目感想
  2. pku1050----To the Max(求矩阵的最大子段和)
  3. 关于vue内只要html元素的代码
  4. 菜鸟教程之Shell 脚本学习笔记(二)
  5. python实用小技巧
  6. java实例域静态域_有关java 实例域 静态域 静态方法
  7. 美团点评APP在移动网络性能优化的实践,赶快收藏备战金九银十!
  8. laravel 分词搜索匹配度_elasticsearch基础笔记9-elasticsearch 词项全文搜索
  9. import pandas as pd什么意思_Pandas万花筒:让绘图变得更美观
  10. 如何估算代码量_千万级用户的大型网站,应该如何设计其高并发架构?(彩蛋)...
  11. Digit v3.0.0 – 响应式WHMCS模板
  12. WebBrowser控件使用相关
  13. Hibernate--关系映射和关联关系的CRUD
  14. 打过工、留过洋、创过业,一位中年IT老兵的反思
  15. Springboot+Dubbo+Nacos 注解方式实现微服务调用
  16. LNMP环境下搭建SVN服务器
  17. loj #6122. 「网络流 24 题」航空路线问题
  18. android power键流程图,Android 通过power键关机重启的流程(Android层)
  19. 家居收纳打造一个美好的家-央央家政家居收纳
  20. 【英语】大学英语CET考试,听力部分2(长选项关键词,答题技巧总结)

热门文章

  1. doraemon的python(大更新) django静态文件的配置(出错多的地方)
  2. 微软股价突破70美元 达到创历史最高
  3. 如何让Citrix客户端不能访问XenApp服务器的磁盘
  4. 音视频开发之旅(一)三种方式绘制图片
  5. 北京2008福娃2图标
  6. 一个和CSDN类似的博客网站
  7. 【跨域】跨域原理 + springboot跨域配置(万能版)
  8. 合肥工业大学宣城校区Java技术实验四 Java Web编程
  9. 劲爆!java架构师百度网盘
  10. 我会把我的故事讲给你,亲爱的