Lecture 12(Preparation):Reinforcement Learning

news2024/12/23 10:26:20

目录

What is RL? (Three steps in ML)

Policy Gradient

Actor-Critic

Reward Shaping

No Reward: Learning from Demonstration


It is challenging to label data in some tasks. 例如下围棋时,下一步下在哪个位置最好是不太好确定的,此时可以考虑使用RL。

What is RL? (Three steps in ML)

machine learning ≈ looking for a function

RL作为机器学习的一种,它也在找一个function:Actor

下面会用space invader这个小游戏和围棋对RL的整体流程进行举例说明:

Example 1: playing video game

Example 2: learning to play Go

下面介绍RL和机器学习的framework之间的关系:

        machine learning有三个步骤:

        RL也是和machine learning一模一样的三个步骤:

        Step 1: Function with Unknown. 如下图绿框,在多数RL应用里面,都是采取sample,而不是取得分最大的那个值。采取sample可以加入一些随机性,对很多游戏来说,这种随机性是重要的。

        Step 2: Define “Loss”

        Step 3: Optimization. RL在这一步,困难的是,它要解的不是一个一般的optimization的问题。这里存在很多问题导致它和一般的network training不太一样。

        第一个问题是Actor的输出具有随机性,下图中的ai是随机产生的。

        第二个问题是environment和reward不是network,environment是一个黑盒子,而reward是一个规则。并且environment和reward往往也是具有随机性的。

        所以RL真正的难点:怎么解optimization的问题。

Policy Gradient

——做RL的optimization常用的一个演算法

How to control actor:

如何收集训练资料s和a的pair:用一个actor去跟环境做互动,就可以收集到s和a的pair

接下来是关于如何去定义A,有几个不同的版本(不同rl的方法,其实就是对A做文章,有不同的定义A的方法):

        version 0: (一个短视的版本)

        An action affects the subsequent observations and thus subsequent rewards.

        Reward delay: Actor has to sacrifice immediate reward to gain more ng-term reward.

        In space invader, only “fire” yields positive reward, so vision 0 will learn an actor that always “fire”.

        version 1:

        version 2:

        version 3: (在version 2的基础上对A做标准化)

上面介绍的是大的概念,下面介绍policy gradient实际上是怎么操作的:

The actor to train and the actor for interacting is the same. → On-policy

Can the actor to train and the actor for interacting be different? → Off-policy

Off-policy → Proxima Policy Optimization(PPO): The actor to train has to know its difference from the actor to interact.

On-policy vs.Off-policy

        对于Off-policy,不需要update一次就收集一次data:

另一个重要的概念是exploration:actor在采取行为的时候,具有一些随机性。这个随机性非常重要,很多时候如果随机性不够,会train不起来。

Actor-Critic

Critic的工作是去评估一个actor的好坏。

Critic: Given actor θ, how good it is when observing s (and taking action α)

下面介绍value function这个critic:

discounted cumulated reward是指G':

下面介绍critic是怎么被训练出来的,有两种常用的训练方法:

        ① Monte-Carlo(MC) based approach

        The critic watches actor θ to interact with the environment.

        需要玩完整场游戏去得到训练资料。

        ② Temporal-difference (TD) approach

同样的问题,用MC和TD分别去计算,算出来的value function很有可能是不同的。举例如下:

下面介绍critic怎么被用在训练actor上面:

        对于version 3中b的值如何计算,在version 4中给出了答案:

训练Actor-Critic的小技巧:The parameters of actor and critic can beshared.

Actor和Critic都是network。Actor这个network的输入是一个游戏画面,输出是每一个action的分数。Critic这个network的输入也是一个游戏画面,输出是一个scalar,代表接下来会得到的cumulative的reward。这两个network的输入是一样的东西,所以这两个network有部分参数可以共用:

Reward Shaping

Sparse Reward:

Reward shaping在VizDoom这个游戏上的实例如下:

Reward shaping有个特别知名的做法,叫做curiosity based的reward shaping:Obtaining extra reward when the agent sees something new (but meaningful).

No Reward: Learning from Demonstration

有时候在RL里面,会有没有reward的情况,原因有两点:

  • Even define reward can be challenging in some tasks
  • Hand-crafted rewards can lead to uncontrolled behavior

在没有reward的情况下,如何训练一个actor去和环境互动:

        方法一:Imitation Learning

        有expert的示范,此时这是一个supervised learning,也叫做behavior cloning。

        例如self-driving:

        让机器去复制expert的行为,可能带来的一个问题是,expert和机器,他们可能可以观察到的s是不一样的。还是以self-driving为例,机器和人类expert学习开自驾车,人类expert在转弯的时候,都能顺利通过弯道,所以对机器来说,它从来没有看过转弯失败的情况,那机器就不知道当车子转弯失败快要撞墙的时候如何处理。

        第二个可能遇到的问题是,人类expert在开车的时候可能很厉害,但也许不是每一个行为机器都需要去完全模仿。假设expert有一部分行为是机器要去学习的,另一部分机器学习了没什么作用,但是机器无法分辨它要学哪些行为,只能全部进行学习。更惨的情况是机器学习能力有限,但它恰好学到的是没什么意义的那些行为。

        方法二:Inverse Reinforcement Learning

        Reinforcement Learning:

        Inverse Reinforcement Learning:

        下面是图像化的方法介绍IRL的framework:

        GAN v.s. IRL: 它们可以理解为同一个framework,用不同的方法、不同的角度去描述

        IRL这种方法,常常被用来训练机器手臂。未来我们可能可以用demonstrate的方法教机器事情。也可以给机器一个画面,让机器去做画面中的行为。

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

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

相关文章

无线传感器网络路由优化中的能量均衡LEACH改进算法(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 由于簇的规模和簇头选择对WSN总能耗影响较大:一方面,当簇的规模较小时,易导致WSN能量消耗不…

2021年NOC大赛编程马拉松赛道图形化中高组模拟卷,包含答案

目录 单选题: 判断题: 下载文档打印做题: 2021年NOC大赛编程马拉松赛道图形化中高组模拟卷 单选题: 1.雪球不小心误入了图灵学院旁边山林中的一个洞穴,一直都没有出来,禾木、桃子和小核桃打算进去找她,洞穴里漆黑一片,三人走着走着,不知怎么也走散了。如下图所示,…

加速开放计算产业化,OCTC五大原则瞄准需求痛点

回顾计算产业过去十余载的历程,开放计算始终是一个绕不开的核心焦点。 始于2011年Facebook发起的数据中心硬件开源项目--开放计算项目(简称:OCP),开放计算犹如星星之火,不仅迅速形成燎原之势,更…

windows安装GO语言环境

GO语言版本 Windows 平台和 Mac 平台推荐下载可执行文件版,Linux 平台下载压缩文件版。 版本:1.16.8 出现上面这个界面就说明已经安装好了 查看GO版本 可以打开终端窗口,输入go version命令,查看安装的 Go 版本 C:\Users\8617…

python数据可视化开发(5):webAPI百度地图轻量驾车路线规划距离与直线距离计算

webAPI百度地图轻量驾车路线规划规划 一、驾车路线规划说明1.接口说明API服务地址请求参数返回参数 二、python核心代码1.轻量路线规划代码封装2.批量读取起始点信息 三、直线距离计算 轻量级路线规划服务(又名DirectionLite API )是一套REST风格的Web服…

带你玩转数据结构-单链表(适合初学者的文章,讲解的很仔细哦)

前言: 🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻推荐专栏: 🍔🍟🌯 C语言进阶 🔑个人信条: 🌵知行合一 🍉本篇简介:>:讲解数据结构中链表的知识,;链表的分类,c语言实现单链…

界面控件Telerik UI for WinForms使用指南 - 数据绑定 填充(二)

Telerik UI for WinForms拥有适用Windows Forms的110多个令人惊叹的UI控件,所有的UI for WinForms控件都具有完整的主题支持,可以轻松地帮助开发人员在桌面和平板电脑应用程序提供一致美观的下一代用户体验。 Telerik UI for WinForms组件为可视化任何类…

使用【SD-WEBUI】插件生成同一张图包含多个人物:分区域的提示词

文章目录 (零)前言(一)潜变量成对(Latent Couple)(1.1)可自组LoRA(Composable LoRA) (二)分区扩散(Multi Diffusion&#…

测试用例常见设计方法

1.基于需求的设计方法 主要从以下方面进行思考: 2.等价类法 将输入的数据等价划分成几个类,从每个类里面选出一个测试用例,如果这个测试用例通过,说明这一个类的测试用例都通过 有效等价类:满足输入数据要求的类 无…

rosbag相关进阶操作

一些很好用的网站 时间戳在线转换网页 旋转矩阵、四元数、绕轴旋转、欧拉角在线转换网页 四元数、欧拉角可视化在线转换网页 一、按时间截取bag 使用如下代码&#xff1a; rosbag filter 原始包名.bag 截取后的包名.bag "t.to_sec() > 开始时间 and t.to_sec() <…

如何导出windows平台下cloudflare warp内部存的私钥和token

结论&#xff1a;管理员身份运行 mimikatz&#xff1a;https://github.com/gentilkiwi/mimikatz/releases/tag/2.2.0-20220919 然后输入&#xff1a; privilege::debug &#xff08;提升权限到&#xff1a;NT-AUTHORITY\SYSTEM&#xff09;以及sekurlsa::credman 就能看到&…

免费使用GPT4.0?搭载多模态的全新New Bing开放使用教程(文末送书)

目录 1 微软发布新必应2 支持文本生成图像3 支持多模态回答4 历史记录和回答导出5 支持插件化导入本期图书推广 1 微软发布新必应 5月4日&#xff0c;微软基于ChatGPT的搜索引擎New Bing发布了一次大规模更新&#xff0c;并宣布已开放给所有用户&#xff0c;现在无需再排队等待…

前端技术搭建弹珠小游戏(内附源码)

The sand accumulates to form a pagoda ✨ 写在前面✨ 功能介绍✨ 页面搭建✨ 样式设置✨ 逻辑部分 ✨ 写在前面 上周我们实通过前端基础实现了小人逃脱&#xff0c;当然很多伙伴再评论区提出了想法&#xff0c;后续我们会考虑实现的&#xff0c;今天还是继续按照我们原定的节…

sentinel 随笔 3-降级处理

0. 像喝点东西&#xff0c;但不知道喝什么 先来段源码&#xff0c;看一下 我们在dashboard 录入的降级规则&#xff0c;都映射到哪些字段上 package com.alibaba.csp.sentinel.slots.block.degrade;public class DegradeRule extends AbstractRule {public DegradeRule(String…

redis(1)---redis的安装以及五大基本类型的使用

一)认识NoSQL 格式化数据VS格式化 1)SQL关系型数据库&#xff0c;在关系型数据库里面表中的字段是有限制的&#xff0c;况且最好不要随意删除修改表结构&#xff0c;存入到关系型数据库中的数据&#xff0c;都是结构化的数据&#xff0c;对于这些数据都是必须要有格式化的要求&…

sentinel 随笔 2-流控

0. 想要个半个月的旅游 最近发现算法比较有意思一些&#xff0c;什么企业框架都是看不完的… 书接 FlowSlot 1. FlowRuleChecker.checkFlow() : 配置的规则校验类 sentinel 并没有对这个Checker进行抽象的设计&#xff0c;第一次看有些别扭… package com.alibaba.csp.sent…

01- 综述 (目标检测)

要点&#xff1a; 区分One-stage detector 和 Two-stage detector 参考链接&#xff1a;深度学习目标检测最全综述 - 爱码网 详细模型解读参考&#xff1a;目标检测简介 - 知乎 一 目标检测分类 1.1 发展历程 检测网络发布历程&#xff1a; 1.2 检测模型分类 2014年后目标…

C嘎嘎~~ [类 下篇之运算符重载]

类 下篇 之运算符重载 5.赋值运算符重载5.1运算符重载5.1.1 运算符的概念5..1.2 重载运费符的位置5.1.3运算符重载的实质 5.2 赋值运算符重载5.2.1深刻理解---编译器生成的默认赋值运算符重载5.2.2深刻理解---拷贝构造和赋值运算符重载5.2.3深刻理解---传参和返回值用引用修饰…

CUDA error: device-side assert triggered CUDA kernel errors might be asynchronously reported at some

问题描述&#xff1a; 在修改代码时&#xff0c;出现入下报错。 发生异常: RuntimeError CUDA error: device-side assert triggered CUDA kernel errors might be asynchronously reported at some other API call,so the stacktrace below might be incorrect. For debuggi…

Android Switch开关按钮使用和自定义样式(系列教程五)

Switch开关按钮简介 Switch开关按钮是Android中的基本控件之一&#xff0c;其本质上也是一个按钮&#xff0c;具有开和关两种展示状态。 Switch开关按钮基本使用 在布局文件中定义开关按钮&#xff1a; <LinearLayoutandroid:layout_width"300dp"android:layo…