李宏毅教程系列——增强学习

news2025/2/24 3:12:26

目录

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算法对比

AlgorithmDescriptionPolicyAction space State space Operator
Monte CarloEvery visit to Monte Carlo 皆可离散离散Sample-means
Q-learningState–action–reward–state Off-policy离散离散

Q-value

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

Deep Q Network

Off-policy离散连续Q-value
DDPGDeep Deterministic Policy GradientOff-policy连续连续Q-value
A3C异步 优势Actor-CriticOn-policy连续连续平均
NAF

Q-Learning with归一化优势函数

Off-policy连续连续平均
TRPOTrust Region策略优化On-policy连续连续平均
PPOProximal近端 Policy OptimizationOn-policy连续连续平均
TD3Twin Delayed双延迟 Deep Deterministic 深度确定性Policy GradientOff-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的参数常被表示为\theta,可以计算p_{\theta}(\tau)即为Trajectory发生的概率 p_{\theta}(\tau)=p(s_{1})p_{\theta}(a_{1}|s_{1})p(s_{2}|s_{1},a_{1})p_{\theta}(a_{2}|s_{2})p(s_{3}|s_{2},a_{2})...=p(s_{1})\prod_{t=1}^{T}{p_{\theta}(a_{t}|s_{t})p(s_{t+1}|s_{t},a_{t})}这里的p(s_{2}|s_{1},a_{1})是因为s2和s1也是有关系的,所以是s1和a1状况下产生s2的概率。 env不一定是neural Networks的function,它也可以是rule-based的。

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

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

全部加起来就得到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......

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/427973.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

linux安装南大通用数据库

linux安装南大通用数据库1、操作系统、数据库2、下载链接3、安装文档4、安装前准备4.1、以root用户创建 gbasedbt 组和用户4.2、创建 GBase 8s 数据库安装目录4.3、上传并解压安装包5、安装5.1、执行安装程序5.2、回车继续 直到接受许可条款5.3、输入安装目录绝对路径5.4、选择…

腾讯音乐笔试0414

介绍一 Triplet Loss的原理, 其中的样本分为哪几类?可以用于哪些场景? Triplet Loss是一种用于训练神经网络的损失函数,主要用于学习映射函数,将样本映射到低维空间中,使得同一类别的样本距离尽可能近,不同类别的样…

开发钉钉和企业微信微应用

钉钉应用开发流程: 1、登录钉钉后台管理 -- 应用管理 -- 工作台 -- 自建应用 2、上传内部应用logo和名字。注意需要添加可访问域名的配置。 3、配置首页可访问地址:打包到线上的路径(注意配置正式环境和本地环境) 4、在所在公司…

早有尔闻 | 低碳赋能,创新发展

01 2023中国管理科学大会 发布创新奖榜单 海尔位列第一 4月15日,2023中国管理科学大会暨第八届“管理科学奖”颁奖典礼在北京举行。大会发布了第八届中国管理科学学会“管理科学奖”获奖名单,海尔集团“基于用户端低碳升级的智慧能源管理体系建设”项…

[CVE漏洞复现系列]CVE2017_0147:永恒之蓝

Hi~ o( ̄▽ ̄)ブ 文章目录前言一、永恒之蓝是什么?1.SMB协议介绍。二、准备工作1.Windows7 and kali linux2.テストを開始总结前言 这是新的系列,我能力有限有的漏洞实现不了,我尽力吧 🥨🥨&…

Deep Glow(AE辉光特效插件)中文版安装教程

deepglow比AE自带的辉光效果好很多,基于GPU运算,同时控制调节发光效果,有了这款插件,我们就可以非常轻松的模拟出非常真实非常漂亮的物理发光特效,支持各种参数的自定义,喜欢的欢迎下载使用。 安装教程 1…

营收、净利创新高,股价却“跌跌不休”,紫光国微怎么了?

‍数据智能产业创新服务媒体——聚焦数智 改变商业要问当前科技圈处于“风口浪尖”的,除了ChatGPT就应该是半导体了。近日,紫光国微发布2022年年报,实现营收和净利双创新高。作为一家在集成电路设计领域深耕二十余年的企业,紫光国…

快速精简软件,如何让软件缩小到原来的5%大小,从删除文件入手,到修改C++引用库,合规解决存储问题

Hi~大家好,今天制作一个简单的精简软件的教学~ 事先说明下,精简软件并不违反任何规定,尤其是开源软件,这里也仅讨论开源软件的修改,根据几乎所有开源软件的开源规则,精简软件,本质也就是修改软件…

如何通过python实现一个web自动化测试框架?

要实现一个web自动化测试框架,可以使用Python中的Selenium库,它是最流行的Web应用程序测试框架之一。以下是一个基本的PythonSelenium测试框架的示例: 如果你想学习更详细的web自动化测试教程,我这边给你推荐一个详细的视频教程 …

第二章 webpack基础用法

webpack核心概念之entry Entry用来指定webpack打包的入口,下图中webpack找到入口文件后,会将该文件所有的代码和非代码依赖都梳理出来,最终遍历完依赖树后生成打包后的静态资源。 单入口:entry是一个字符串 module.exports{ entry…

HCIP之MPLS

目录 MPLS MPLS --- 多协议标签交换 包交换 标签交换 包交换的变更 MPLS主要应用于三大领域 ​编辑 MPLS和包交换一样,其过程也可以分为控制层面和数据层面 标签交换过程(数据层流量) 标签解读 静态搭建LSP 创建路由条件 配置MPL…

arduino自用简单图形化编程仿真

傻瓜式编程真的很适合初学者 这边就不提fritzing和proteus的pcb设计了 就推荐几个简单的 1、linkboy 官方网址:http://linkboy.com.cn/index.html 也有官方教程点我 使用方法:官网下载软件 优点:元器库特别丰富,还具备语音识别、…

新网站多久被google收录?谷歌当天收录网站靠谱吗?

新网站多久被google收录? 答案是:24小时内。 为什么你做的外贸网站在Google搜索引擎一直不收录或者收录很慢。 其实有一个很关键的原因,那就是谷歌爬虫到底有没有到你网站的页面上去抓取数据。 很大可能是没有,当然你可以通过…

ctfshow web入门 nodejs 334-341(更新中)

前言 说实在也没啥好说的,希望大家要有勇气,向难题挑战,别像我一样自始至终都是一个菜狗,哎。 这里在刚开始的,我就有一个问题就是我发现刚开始使用的是require来导入模块,但是到了后面发现大部分使用的都是…

5G网络优化工程师入职企业,都有什么不同呢?

通信行业内的网络优化工程师后期入职主要是在设备商、运营商,运营商的合作单位。 熟悉通信行业的同学肯定了解这个行业最基本的可以分为运营商和设备商,运营商在国内就是移动、联通、电信,广电四家,这四家目前不管是薪资、职业发展…

自动语音识别模型whisper安装和初探

whisper介绍 whisper是OpenAI 最近发布的语音识别模型。OpenAI 通过从网络上收集了 68 万小时的多语言(98 种语言)和多任务(multitask)监督数据对 Whisper 进行了训练,whisper可以执行多语言语音识别、语音翻译和语言…

swing-扩展徽章组件JEBadge

前言 因为工作原因,好久没有写swing组件了,最近准备优化一个功能,希望有类似徽章的功能。 徽章在平时的app和h5 页面上经常常见 ,那么在swing中如何实现一个徽章功能呢。 技术分析 为什么不选择绘制方式,却选择JLayeredPane &a…

《程序员面试金典(第6版)》面试题 08.14. 布尔运算(动态规划,分治,递归,难度hard++)

题目描述 给定一个布尔表达式和一个期望的布尔结果 result,布尔表达式由 0 (false)、1 (true)、& (AND)、 | (OR) 和 ^ (XOR) 符号组成。实现一个函数,算出有几种可使该表达式得出 result 值的括号方法。 示例 1: 输入: s “1^0|0|1”, result 0 …

STM32 LCD-ADC-DMA实验

目录 1.1 STM32 DMA简介 1.2 STM32 DMA的操作 1.DMA的初始化 2. 初始化代码 3. 主函数代码 本文将向大家介绍 STM32 的 DMA。(如有错误,欢迎批评指正) 在本章中,我们将利用 STM32 的 DMA 来实现ADC1通道1内数据传送,并在 TFTLCD 模块上显…

图像处理学习——基于霍夫变换(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 霍夫变换是一种在图像中寻找直线、圆形以及其他简单形状的方法。 霍夫变换采用类似于投票的方式来获取当前图像内的形状集合&…