| |
|
开发:
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)进行学习的过程。
强化学习的框架一般包含5个构成要素,包括:
强化学习的基本框架如下图 (a) 所示,智能体对系统环境进行观察后产生行动,从系统环境中获得相应的奖励,智能体观察系统对自己上一次行动的奖励信号后,重新调整自己的下一次的行动策略。下图 (b) 展示了主人训练狗的过程就是强化学习过程的一个简单例子。主人想训练狗听从自己的指令,如果狗听从指令,产生了正确的行动,则主人会喂狗粮;如果狗未听从指令,产生了错误的行动,则狗得不到狗粮。在这个强化学习的例子中,主人充当着系统环境的角色,狗是智能体。狗(智能体)通过对主人(系统环境)的指令观察,产生相应的行动,狗粮就是主人对狗行动的奖励。 完全观测与不完全观测上述框架是站在上帝视角描述问题,而强化学习的概念默认是站在智能体的角度看问题。 在 t t t时刻,系统环境的实际状态记为 S t e S^e_t Ste?,智能体观测到的系统状态记为 S t a S^a_t Sta? 。智能体对系统状态的观测可以分为两种情况:
完全观测
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?。 在接下来的内容中,除非特别说明,智能体对系统环境的观察都属于完全观测。 在 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? 。 基本概念折现因子在强化学习过程中,智能体的目标不是最大化即时奖励,而是最大化长期回报。也就是说,智能体目光长远地更关心行动产生的长期回报。 答案是不一定。为什么呢? 我们先来看一个例子。 强化学习过程将未来的奖励计入目前的回报时,需要将未来的奖励乘以折现因子(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)的定义: 值函数值函数是针对状态或行动的评价函数,具体可分为两种:
由于行动是在给定状态下才产生的,一般也将行动值函数更明确地表达为状态-行动值函数(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),即: 状态-行动值函数
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 获得的期望回报,即 适合初学者的强化学习入门教材: 适合初学者的强化学习入门教材: |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |