IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 强化学习基础 -> 正文阅读

[人工智能]强化学习基础

定义

强化学习(Reinforcement Learning,RL)是智能体(Agent)为了最大化长期回报(Return)的期望,通过观察系统环境,不断试错(Trial-and-Error)进行学习的过程。
从强化学习的定义可以看出,强化学习具有两个最主要的特征:

  1. 通过不断试错来学习;
  2. 追求长期回报的最大化。

强化学习的框架一般包含5个构成要素,包括:

  1. 环境(Environment);
  2. 智能体(Agent);
  3. 观察(Observation);
  4. 行动(Action);
  5. 奖励(Reward)。

强化学习的基本框架如下图 (a) 所示,智能体对系统环境进行观察后产生行动,从系统环境中获得相应的奖励,智能体观察系统对自己上一次行动的奖励信号后,重新调整自己的下一次的行动策略。下图 (b) 展示了主人训练狗的过程就是强化学习过程的一个简单例子。主人想训练狗听从自己的指令,如果狗听从指令,产生了正确的行动,则主人会喂狗粮;如果狗未听从指令,产生了错误的行动,则狗得不到狗粮。在这个强化学习的例子中,主人充当着系统环境的角色,狗是智能体。狗(智能体)通过对主人(系统环境)的指令观察,产生相应的行动,狗粮就是主人对狗行动的奖励。
?
在这里插入图片描述

完全观测与不完全观测

上述框架是站在上帝视角描述问题,而强化学习的概念默认是站在智能体的角度看问题。

t t t时刻,系统环境的实际状态记为 S t e S^e_t Ste?,智能体观测到的系统状态记为 S t a S^a_t Sta? 。智能体对系统状态的观测可以分为两种情况:

  1. 完全观测(Full Observability);
  2. 不完全观测(Partial Observability)。

完全观测 O t O_t Ot? 指的是智能体观测到的状态 S t a S^a_t Sta? 就是系统真实的全局状态 S t e S^e_t Ste?,即完全观测 O t = S t a = S t e O_t=S^a_t=S^e_t Ot?=Sta?=Ste?
不完全观测 O ~ t \tilde{O}_t O~t? 指的是智能体只能观测到系统的局部状态,即不完全观测 O ~ = S t a ≠ S t e \tilde{O}=S^a_t\neq S^e_t O~=Sta??=Ste?

在接下来的内容中,除非特别说明,智能体对系统环境的观察都属于完全观测。
在完全观测的情况下,将智能体观察到的状态 S t a S^a_t Sta? 和系统真实的全局状态 S t e S^e_t Ste? 统一简称为状态(State)。

t t t 时刻,智能体观测到系统环境的状态 S t S_t St? ,并产生相应的行动 A t A_t At?,系统会在一下个时刻 t + 1 t+1 t+1 给出奖励 R t + 1 R_{t+1} Rt+1? ,并进入新状态 S t + 1 S_{t+1} St+1? 。针对行动 A t A_t At? ,系统给出的奖励记为 R t + 1 R_{t+1} Rt+1? 。在强化学习过程中,智能体与系统环境产生的交互形成了相应的历史记录。历史记录是由一系列的状态、行动和奖励组成的序列: { S 1 , A 1 , R 2 , ? ? , S t ? 1 , A t ? 1 , R t , ? ? } \{S_1,A_1,R_2,\cdots,S_{t-1},A_{t-1},R_t,\cdots\} {S1?,A1?,R2?,?,St?1?,At?1?,Rt?,?}

针对行动 A t A_t At? ,系统发出的奖励是 R t + 1 R_{t+1} Rt+1? ,而不是 R t R_{t} Rt? ,这只是一种针对时间序列的约定,目前大部分强化学习资料都采用这种约定。如果采用以下约定,针对行动 A t A_t At? ,系统给出的奖励是 R t R_{t} Rt? ,也是可以的,只需要在上下文环境中保持一致就行。为了与现有资料保持一致,在本书中约定,在 t t t 时刻,智能体观察到系统状态 S t S_t St? ,智能体根据自身的策略采取相应的行动 A t A_t At? ,系统针对该行动给出奖励 R t + 1 R_{t+1} Rt+1? ,与此同时,系统进入到下一个状态 S t + 1 S_{t+1} St+1?

基本概念

折现因子

在强化学习过程中,智能体的目标不是最大化即时奖励,而是最大化长期回报。也就是说,智能体目光长远地更关心行动产生的长期回报。
针对 t t t 时刻的状态 S t S_{t} St? 和行动 A t A_{t} At? ,系统产生的奖励是 R t + 1 R_{t+1} Rt+1? 。长期回报是未来奖励在当前时刻的累计值,那么由 t t t 时刻的状态和行动产生的长期回报是 G t = R t + 1 + R t + 2 + R t + 3 + ? G_t=R_{t+1}+R_{t+2}+R_{t+3}+\cdots Gt?=Rt+1?+Rt+2?+Rt+3?+? 吗?

答案是不一定。为什么呢?
因为这里涉及一个经济学的概念:折现(Discounting)。

我们先来看一个例子。
假设小明现在有 x x x 元,小明存一年期定期,存 1 1 1 年后的钱为 10 10 10 万元,那么有以下公式成立: x ( 1 + 3 % ) = 100000 x(1+3\%)=100000 x(1+3%)=100000 ,解得 x = 97087 x=97087 x=97087 。 当前小明只需要去银行存 9.7087 万元,一年后就能有 10 万元的购车款。也就是说一年后的 10 万元和现在的 9.7087 万元是等价的。在这个例子里,把 1 年后的钱换算到现在,需要乘以折现因子 γ = 0.97087 \gamma =0.97087 γ=0.97087

强化学习过程将未来的奖励计入目前的回报时,需要将未来的奖励乘以折现因子(Discount Factor),记为 γ \gamma γ
?
在这里插入图片描述

强化学习过程将未来的奖励计入目前的回报时,需要将未来的奖励乘以折现因子。 t t t 时刻的奖励是 R t + 1 R_{t+1} Rt+1? t + 1 t+1 t+1 时刻的奖励 R t + 2 R_{t+2} Rt+2? 折现到 t t t 时刻为 γ R t + 2 \gamma R_{t+2} γRt+2? t + 2 t+2 t+2 时刻的奖励 R t + 3 R_{t+3} Rt+3? 折现到 t t t 时刻为 γ 2 R t + 3 \gamma^2 R_{t+3} γ2Rt+3? ,以此类推, t + k t+k t+k 时刻的奖励 R t + k + 1 R_{t+k+1} Rt+k+1? 折现到 t t t 时刻为 γ k R t + k + 1 \gamma^k R_{t+k+1} γkRt+k+1?

长期回报

在理解了折现因子后,给出长期回报(Return)的定义:
G_t \doteq R_{t+1}+\gamma R_{t+2}+\gamma^2 R_{t+3}+\cdots = \sum_{k=0}^{\infty }\gamma^k R_{t+k+1}
其中 \gamma\in [0,1] ,当 \gamma=0 时,长期回报 G_t=R_{t+1} ;当 \gamma=1 时,长期回报 G_t=R_{t+1}+R_{t+2}+R_{t+3}+\cdots 。也就是说, \gamma 的取值越小,智能体越看中即时奖励; \gamma 的取值越大,智能体越看中长期回报。

值函数

值函数是针对状态或行动的评价函数,具体可分为两种:

  1. 状态值函数(State Value Function),是针对状态的评价指标;
  2. 行动值函数(Action Value
    Function),是针对行动的评价指标。

由于行动是在给定状态下才产生的,一般也将行动值函数更明确地表达为状态-行动值函数(State-Action Value Function)。为了明确起见,接下来的内容将统一使用“状态-行动值函数”。

状态值函数 v π ( s ) v_\pi(s) vπ?(s) 是给定策略 π \pi π ,评价状态 s s s 的指标。具体地,状态值函数 v π ( s ) v_\pi(s) vπ?(s) 定义为:采用策略 π \pi π ,从状态 s s s 开始获得期望回报(Expected Return),即:
v π ( s ) ? E π [ G t ∣ S t = s ] v_\pi(s)\doteq E_\pi [G_t|S_t=s] vπ?(s)?Eπ?[Gt?St?=s]

状态-行动值函数 q π ( s , a ) q_\pi(s,a) qπ?(s,a) 是给定策略 π \pi π ,在状态 s s s 下评价动作 a a a 的指标。具体地,状态-行动值函数 q π ( s , a ) q_\pi(s,a) qπ?(s,a) 定义为:采用策略 π \pi π ,在状态 s s s 下采用动作 a a a 获得的期望回报,即
q π ( s , a ) ? E π [ G t ∣ S t = s , A t = a ] q_\pi(s,a)\doteq E_\pi [G_t|S_t=s,A_t=a] qπ?(s,a)?Eπ?[Gt?St?=s,At?=a]

适合初学者的强化学习入门教材:
《强化学习(微课版)/面向新工科专业建设计算机系列教材》(袁莎,白朔天,唐杰)- 京东图书

适合初学者的强化学习入门教材:
《强化学习(微课版)/面向新工科专业建设计算机系列教材》(袁莎,白朔天,唐杰)- 当当图书

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-02-16 13:05:31  更:2022-02-16 13:07:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 20:45:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码