【强化学习】01—— 强化学习简介

文章目录

  • 两种机器学习类型
  • 强化学习定义
  • 强化学习交互过程
  • 强化学习系统要素
    • 历史(History)
    • 状态(State)
    • 策略(Policy)
    • 奖励(Reward)
    • 价值函数(Value Function)
    • 模型(Model)
    • 迷宫例子
  • 强化学习智能体分类
  • 参考

两种机器学习类型

在这里插入图片描述

监督学习/无监督学习/强化学习/机器学习之间的关系
  • 预测
    • 根据数据预测所需输出(有监督学习) P ( y ∣ x ) P(y|x) P(yx)
    • 生成数据实例(无监督学习) P ( x , y ) P(x,y) P(x,y)
  • 决策
    • 在动态环境中采取行动(强化学习)
      • 转变到新的状态
      • 获得即时奖励
      • 随着时间的推移最大化累计奖励

预测和决策的区别:行动是否会使得环境发生改变。

强化学习与其他机器学习的区别

  • 无监督,只有奖励信号;
  • 反馈延迟;
  • 时间序列,不同数据之间存在相关性或依赖关系(Non i.i.d data);
  • agents的行动会影响到接受到的数据序列。

在强化学习中,数据是在智能体与环境交互的过程中得到的。如果智能体不采取某个决策动作,那么该动作对应的数据就永远无法被观测到,所以当前智能体的训练数据来自之前智能体的决策结果。因此,智能体的策略不同,与环境交互所产生的数据分布就不同。

在这里插入图片描述

强化学习中有一个关于数据分布的概念,叫作占用度量(occupancy measure),归一化的占用度量用于衡量在一个智能体决策与一个动态环境的交互过程中,采样到一个具体的状态动作对(state-action pair)的概率分布。

占用度量有一个很重要的性质:给定两个策略及其与一个动态环境交互得到的两个占用度量,那么当且仅当这两个占用度量相同时,这两个策略相同。也就是说,如果一个智能体的策略有所改变,那么它和环境交互得到的占用度量也会相应改变。

强化学习定义

强化学习用智能体(agent)这个概念来表示做决策的机器。相比于有监督学习中的“模型”,强化学习中的“智能体”强调机器不但可以感知周围的环境信息,还可以通过做决策来直接改变这个环境,而不只是给出一些预测信号。

在这里插入图片描述
强化学习:通过从交互学习中实现目标的计算方法

  • 感知:在某种程度上感知周围环境
  • 行动:采取行动来影响状态或者达到目标
  • 目标:随着时间的推移,最大化奖励

强化学习交互过程

在这里插入图片描述

Agent的每一步 t t t:

  • 获取观测 O t O_t Ot
  • 获得奖励 R t R_t Rt
  • 执行行动 A t A_t At

环境的每一步 t t t:

  • 获得行动 A t A_t At
  • 给出观测 O t + 1 O_{t+1} Ot+1
  • 给出奖励 R t + 1 R_{t+1} Rt+1

在环境这一步 t = t + 1 t=t+1 t=t+1

强化学习系统要素

历史(History)

过去 O i , R i , A i O_i,R_i,A_i Oi,Ri,Ai的序列
H t = O 1 , R 1 , A 1 , . . . , A t − 1 , O t , R t H_t = O_1, R_1, A_1, ..., A_{t−1}, O_t, R_t Ht=O1,R1,A1,...,At1,Ot,Rt

  • 一直到 t t t时刻所有的可观测变量
  • 根据历史决定下一步:(Agent: A i A_i Ai; Env: O i + 1 , R i + 1 O_{i+1},R_{i+1} Oi+1,Ri+1)

状态(State)

用于确定接下来会发生的事情( O , R , A O,R,A O,R,A)

  • 是一个关于历史的函数 S t = f ( H t ) S_t = f (H_t) St=f(Ht) f ( H t ) f(H_t) f(Ht)在部分情况下难以直接得到(POMDP)

策略(Policy)

  • 智能体的行为,从状态到动作的映射
  • 确定性策略(Deterministic policy): a = π ( s ) a=\pi(s) a=π(s)
  • 随机策略(Stochastic policy): π ( a ∣ s ) = P [ A t = a ∣ S t = s ] π(a|s) = \mathbb P[A_t = a|S_t = s] π(as)=P[At=aSt=s]

奖励(Reward)

  • 定义强化学习目标的标量,评价状态好坏

价值函数(Value Function)

  • 对于未来累计奖励的预测
  • 用于评估在给定的策略下,状态的好坏
    v π ( s ) = E π [ R t + 1 + γ R t + 2 + γ 2 R t + 3 + . . . ∣ S t = s ] v_\pi(s)=\mathbb{E}_\pi\left[R_{t+1}+\gamma R_{t+2}+\gamma^2R_{t+3}+...\mid S_t=s\right] vπ(s)=Eπ[Rt+1+γRt+2+γ2Rt+3+...St=s]

模型(Model)

  • 用于预测环境下一步会做什么
  • 预测下一步状态 P s s ′ a = P [ S t + 1 = s ′ ∣ S t = s , A t = a ] \mathcal{P}_{ss^{\prime}}^a=\mathbb{P}[S_{t+1}=s^{\prime}\mid S_t=s,A_t=a] Pssa=P[St+1=sSt=s,At=a]
  • 预测下一步的(即时)奖励 R s a = E [ R t + 1 ∣ S t = s , A t = a ] \mathcal{R}_s^a=\mathbb{E}\left[R_{t+1}\mid S_t=s,A_t=a\right] Rsa=E[Rt+1St=s,At=a]

迷宫例子

找到最短路径
在这里插入图片描述

  • 奖励 R R R: 每一步为-1;
  • 动作 A A A: N, E, S, W;
  • 状态 S S S: Agent的位置;
  • 箭头代表了每一步状态的策略 π ( s ) π(s) π(s);
  • 数字代表了每一步的价值 v π ( s ) v_\pi(s) vπ(s)(距离Goal的格数);

强化学习智能体分类

  • 基于模型的强化学习
    • 策略(和/或)价值函数
    • 环境模型
    • Example:迷宫、围棋
  • 模型无关的强化学习(通常情况下我们没法准确知道环境的模型)
    • 策略(和/或)价值函数
    • 没有环境模型
    • Atari Example

Atari Example
在这里插入图片描述

  • 规则未知
  • 从交互中进行学习(环境是一个黑箱)
  • 在操作杆上选择行动并查看分数和像素画面

其他类型

  • 基于价值

    • 没有策略(隐含)
    • 价值函数
  • 基于策略

    • 策略
    • 没有价值函数
  • Actor-Critic

    • 策略
    • 价值函数

在这里插入图片描述

各类型之间的关系

强化学习本质的思维方式

强化学习的策略在训练中会不断更新,其对应的数据分布(即占用度量)也会相应地改变。因此,强化学习的一大难点就在于,智能体看到的数据分布是随着智能体的学习而不断发生改变的。

由于奖励建立在状态动作对之上,一个策略对应的价值其实就是一个占用度量下对应的奖励的期望,因此寻找最优策略对应着寻找最优占用度量。

强化学习关注寻找一个智能体策略,使其在与动态环境交互的过程中产生最优的数据分布,即最大化该分布下一个给定奖励函数的期望。

参考

[1] 伯禹AI
[2] https://www.deepmind.com/learning-resources/introduction-to-reinforcement-learning-with-david-silver
[3] 动手学强化学习

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

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

相关文章

坚鹏:浙江农商联合银行同业核心产品解读与差异化分析培训第7期

浙江农商联合银行同业核心产品解读与差异化分析培训第7期 1952年,浙江第一家农村信用社成立。2004年4月18日,浙江省农信联社成立,承担对全省农信社的管理、指导、协调和服务职能。2021年10月,经国务院批准同意、银保监会批复&…

虚拟DOM与diff算法

虚拟DOM与diff算法 snabbdom虚拟DOMdiff算法 snabbdom 是什么:snabbdom是著名的虚拟DOM库,是diff算法的鼻祖,Vue源码借鉴了snabbdom 虚拟DOM 是什么:本质上是存在内存里的 JavaScript 对象 作用:用来描述真实DOM的层…

Android毕业设计,基于Android 语音朗读书籍管理系统

视频演示: 基于Android 语音朗读书籍管理系统 基于 Android 的语音朗读书籍管理系统可以提供用户管理书籍、朗读书籍的功能。以下是一个简单的步骤和功能列表: 用户注册和登录功能: 用户可以注册新账号或使用现有账号登录系统。用户信息可以包…

php宝塔搭建实战Cloud网盘网站php源码

注意:因为微信最近又改了推送机制,经常有朋友说错过了之前的搭建教程文章,每次都要主动搜索才能搜到公众号。所以建议大家加个星标,就能第一时间收到推送。 大家好啊,欢迎来到web测评。本期给大家带来一套php开发的Clo…

Flutter flutter.minSdkVersion的实际文件位置

Flutter 项目的Android相关版本号配置: flutter.minSdkVersion 的版本号配置文件实际路径: …/flutter_sdk/packages/flutter_tools/gradle/src/main/groovy/flutter.groovy Flutter版本号如下: bzbMacBook-Pro ccsmec % flutter --version …

不要动 WindowsApps 文件夹的权限以及更新 win10 版本

前言: 先简单说几句,本来打算开始写论文的,装个 mathtype 到 word 中,word 的安装路径在 WindowsApps 文件夹中,修改权限后导致 wsl 不能使用、微软自带的软件报错(参数错误)以及微软商店不能使…

C语言中的虚拟地址

虚拟地址 虚拟地址空间 对于操作系统而言,每个进程所得到的虚拟地址都在一个独立的固定的范围内,不会超过这个范围,我们把这个范围称为虚拟地址空间。所谓的虚拟地址空间本质就是一个地址范围,表示程序的寻址能力。对于32位系统…

直播视频处理过程

视频其实就是快速播放一连串连续的图片。 每一张图片,我们称为一帧。只要每秒钟帧的数据足够多,也即播放得足够快。比如每秒 30 帧,以人的眼睛的敏感程度,是看不出这是一张张独立的图片的,这就是我们常说的帧率&#…

如何用一行CSS实现10种现代布局

现代 CSS 布局使开发人员只需按几下键就可以编写十分有意义且强大的样式规则。上面的讨论和接下来的帖文研究了 10 种强大的 CSS 布局,它们实现了一些非凡的工作。 超级居中:place-items: center 对于第一个“单行”布局,让我们解决所有 CSS…

分析数组,结构体在反汇编中存储

本文会在IDA中分析数组,结构体在内存中的存储 目录 IDA分析数组存储 IDA分析结构体存储 传递参数的方式 IDA分析数组存储 测试代码如下: /************************************************************************/ /*Author : 玄都大…

已解决 Kotlin Error: Null can not be a value of a non-null type String

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页: 🐅🐾猫头虎的博客🎐《面试题大全专栏》 🦕 文章图文并茂&#x1f996…

Intel汇编在VS下开发的环境配置

1. 创建一个C/C的空项目 2. 创建汇编源码文件, 就是C文件改后缀为asm 3. 在生成依赖项一栏中选择自定义 4. 选择masm 5. 在源文件上右击选择属性 6. 这么设置一下 7. 为了让代码看的更舒服一些, 添加一些高亮插件 8. 安装AsmHighligher和AsmDude插件(非必须), 其中前者主要是高…

signal(SIGPIPE, SIG_IGN)

linux查看signal常见信号。 [rootplatform:]# kill -l1) HUP2) INT3) QUIT4) ILL5) TRAP6) ABRT7) BUS8) FPE9) KILL 10) USR1 11) SEGV 12) USR2 13) PIPE 14) ALRM 15) TERM 16) STKFLT 17) CHLD 18) CONT 19) STOP 20) TSTP 21) TTIN 22) TTOU 23) URG 24) XCPU 25) XFSZ 2…

【动态规划刷题 16】最长等差数列 (有难度) 等差数列划分 II - 子序列

1027. 最长等差数列 https://leetcode.cn/problems/longest-arithmetic-subsequence/ 给你一个整数数组 nums&#xff0c;返回 nums 中最长等差子序列的长度。 回想一下&#xff0c;nums 的子序列是一个列表 nums[i1], nums[i2], …, nums[ik] &#xff0c;且 0 < i1 <…

学Python的漫画漫步进阶 -- 第十一步.常用的内置模块

学Python的漫画漫步进阶 -- 第十一步.常用的内置模块 十一、常用的内置模块11.1 数学计算模块——math11.2 日期时间模块——datetime11.2.1 datetime类11.2.2 date类11.2.3 time类11.2.4 计算时间跨度类——timedelta11.2.5 将日期时间与字符串相互转换 11.3 正则表达式模块—…

音乐随行,公网畅享,群辉Audiostation给你带来听歌新体验!

文章目录 本教程解决的问题是&#xff1a;按照本教程方法操作后&#xff0c;达到的效果是本教程使用环境&#xff1a;1 群晖系统安装audiostation套件2 下载移动端app3 内网穿透&#xff0c;映射至公网 很多老铁想在上班路上听点喜欢的歌或者相声解解闷儿&#xff0c;于是打开手…

代码随想录算法训练营第23期day2 | 977.有序数组的平方 、209.长度最小的子数组、59.螺旋矩阵II

目录 一、&#xff08;leetcode 977&#xff09;有序数组的平方 1.暴力解法 2.双指针法 二、&#xff08;leetcode 209&#xff09;长度最小的子数组 1.暴力解法 ​编辑2.滑动窗口 三、&#xff08;leetcode 59&#xff09;螺旋矩阵II 一、&#xff08;leetcode 977&…

ChatGLM 配置CUDA使用GPU本地训练

Cuda的下载及安装 cuda版本 由于显卡的不同,需要先查看我们显卡及驱动最高支持的cuda。 进入cmd输入nvidia -smi 版本支持向下兼容,为了保证能够和其他开发库版本兼容,这里使用的CUDN版本为11.6. cuda下载 CUDA Toolkit| NVIDIA Developer官网找到对应CUDA版本。(我这里…

基于Java的Base64编解码优化探讨

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

eclipse svn插件安装

1.进入eclipse的help->Eclipse Marketplace,如下图所示&#xff1a; 2.输入“svn”,再按回车&#xff0c;如下图&#xff1a; 3.这我选择的是 Subversive,点击后面的“install”按钮&#xff0c;如下图 Eclipse 下连接 SVN 库有两种插件 —— Subclipse 与 Subversive &…