本系列博客是强化学习的学习笔记,学习资料:
David Silver深度强化算法学习 +项目讲解

强化学习基本介绍

  • 多领域交叉
  • 机器学习的分支
  • 强化学习的特点
  • 强化学习的例子
  • 强化学习中的核心概念
    • 奖励
    • 奖励的例子
    • 贯序决策
  • 环境
  • 状态 - State
    • 历史和状态
    • 环境状态 - Environment State
    • 智能体状态 - Agent State
    • 信息状态 - Information State
    • 例子:老鼠
    • 全观测环境 - Fully Observable Environments
    • 部分观测环境 - Partially Observable Environments
  • 强化学习智能体的主要组成部分
    • 策略 - Policy
    • 值函数 - Value Function
    • 模型 - Model
    • 例子:迷宫
      • 策略
      • 值函数
      • 模型
    • 强化学习智能体的分类 1
    • 强化学习智能体的分类 2
    • 强化学习智能体的分类
  • 学习和规划
    • Atari例子:强化学习
    • Atari例子:规划
  • 开发和探索
    • 例子
  • 预测和控制
    • 网格世界例子:预测
    • 网格世界例子:控制
  • 课程大纲

多领域交叉

强化学习是很多领域的交叉,包括:

  • 计算机科学

    • 机器学习
  • 神经科学
    • 奖励系统
  • 心理学
    • 古典/操作性条件反射
  • 经济学
    • 有限理性
  • 数学
    • 运筹学(和我的领域相关)
  • 工程学
    • 最优控制

机器学习的分支

  • 有监督学习
  • 无监督学习
  • 强化学习

强化学习的特点

  • 没有标准答案,即标签,只有奖励信号
  • 反馈不是及时的,而是延时
  • 时间很重要(时序的,而非独立同分布的)
  • 智能体的行动会影响到接下来它接收的数据

强化学习的例子

  • 直升机特技飞行演习
  • 在西洋双陆棋中击败世界冠军
  • 管理投资组合
  • 控制发电站
  • 让一个人形机器人走路
  • 在Atari游戏中比人类玩家表现更好

这些都是一些动作,不像之前学过的深度学习,大部分是做分类、预测

强化学习中的核心概念

奖励

  • 奖励RtR_tRt​(t时间的奖励)是一个反馈的标量信号
  • 它表明了在第t步的行动的优劣
  • 智能体的作用就是最大化累积奖励
    • 眼光长远

一个仍存在争议的定义(奖励假设):
所有的目标都可以被描述为是最大化累积期望奖励

奖励的例子

  • 直升机特技飞行演习

    • 遵循预期飞行轨迹:奖励+
    • 坠毁:奖励-
  • 在西洋双陆棋中击败世界冠军
    • 赢得/输掉比赛:奖励+/-
  • 管理投资组合
    • 每单位入账使奖励+
  • 控制发电站
    • 发电:奖励+
    • 超过安全阈值:奖励-
  • 让一个人形机器人走路
    • 前进:奖励+
    • 跌倒:奖励-
  • 在Atari游戏中比人类玩家表现更好
    • 得分增加:奖励+
    • 得分减少:奖励-

贯序决策

  • 目标:选择那些使总期望奖励最大化的行动
  • 行动可能会有一个长远的影响
  • 奖励可能延迟获得
  • 有可能牺牲短期利益去换取长期利益会更好
  • 例子:
    • 金融投资(需要数月来成型)
    • 给直升飞机加油(可能在接下来几个小时防止坠毁)
    • 阻挡物体移动(可能在接下来几步获取更大赢面)

环境

一个智能体需要从环境接收两种信息:观察信息OtO_tOt​和奖励信息RtR_tRt​,输出一个行动AtA_tAt​​,作用于环境

环境受到行动的影响后,又产生Ot+1O_{t+1}Ot+1​和Rt+1R_{t+1}Rt+1​​​,输入到智能体中。

状态 - State

历史和状态

历史就是一连串很长的序列,包括观察、行动和奖励:
Ht=O1,R1,A1,...,At−1,Ot,RtH_t=O_1,R_1,A_1,...,A_{t-1},O_t,R_t Ht​=O1​,R1​,A1​,...,At−1​,Ot​,Rt​
也就是所有可观测变量在t时刻及之前的信息,或者是说机器人或嵌入式智能体的感觉运动流。(这个理解起来比较抽象)

下一步的行动取决于历史

  • 智能体选择行动
  • 环境选择观察和奖励

状态是决定下一步发生什么的信息,可以看作一种“总结”信息,相比于历史,状态更精练。

正规来说,状态是一个关于历史的函数:
St=f(Ht)S_t = f(H_t) St​=f(Ht​)

环境状态 - Environment State

环境状态用SteS_t^eSte​来表示,环境状态即环境所使用的一切用来产生观测和奖励的数据。

通常来说,环境状态对于智能体是不可见的。就算可见,它当中也可能包含了一些不相关的信息。

智能体状态 - Agent State

用StaS_t^aSta​表示智能体状态,它是智能体的内部表达,即一切智能体用于选择下一步行动所用的任何信息。

智能体状态是强化学习算法所使用的信息。

它可以是任何关于历史的函数:
Sta=f(Ht)S_t^a = f(H_t) Sta​=f(Ht​)

信息状态 - Information State

信息状态(也即马尔科夫状态)包含了历史中所有的有用信息。

定义

状态StS_tSt​是马尔科夫的当且仅当
P[St+1∣St]=P[St+1∣S1,…,St]\mathbb{P}\left[S_{t+1} \mid S_{t}\right]=\mathbb{P}\left[S_{t+1} \mid S_{1}, \ldots, S_{t}\right] P[St+1​∣St​]=P[St+1​∣S1​,…,St​]

“给定现在,未来就和过去无关”
H1:t→St→Ht+1:∞H_{1:t}\rightarrow S_t \rightarrow H_{t+1:\infty} H1:t​→St​→Ht+1:∞​
当目前状态已知,就不需在意过去了,即现在的状态是将来的充分统计量。

环境状态SteS_t^eSte​​和历史HtH_tHt​​是马尔科夫的。

所以StaS_t^aSta​不是马尔科夫的?

例子:老鼠

老鼠在第三轮是得到奶酪还是遭到电击?

  • 如果智能体状态==最后三项的顺序会怎样?

    • 电击
  • 如果智能体状态==光、铃铛、控制杆的数量会怎样?
    • 奶酪
  • 如果智能体状态==完全的序列会怎样?
    • 未知

全观测环境 - Fully Observable Environments

智能体直接观察环境状态
Ot=Sta=SteO_t=S_t^a=S_t^e Ot​=Sta​=Ste​

  • 正规的,这就是一个马尔科夫决策过程

部分观测环境 - Partially Observable Environments

部分观测:智能体间接地观测环境:

  • 机器人在未知环境中通过摄像头视觉观测
  • 交易智能体只能观测到当前价格
  • 打牌智能体只能看到明面上的牌

现在,智能体状态≠环境状态

这被称为部分观测马尔可夫决策过程(POMDP)

智能体必须构建自己的环境表达StaS_t^aSta​,比如:

  • 通过完全的历史构造:Sta=HtS_t^a = H_tSta​=Ht​
  • 对环境状态的置信度:Sta=(P[Ste=s1],...,P[Ste=sn])S_t^a=(\mathbb{P}[S_t^e=s^1],...,\mathbb{P}[S_t^e=s^n])Sta​=(P[Ste​=s1],...,P[Ste​=sn])
  • 循环神经网络:Sta=σ(St−1aWs+OtWo)S_t^a = \sigma(S_{t-1}^a W_s+O_t W_o)Sta​=σ(St−1a​Ws​+Ot​Wo​)
    • 即当前时段的智能体状态=上一时段智能体状态和观测值的线性组合

强化学习智能体的主要组成部分

一个强化学习智能体可能包含一个或更多如下组件:

  • 策略:智能体的行为函数
  • 值函数:评估每个状态/行动的好坏
  • 模型:智能体对于环境的表示

策略 - Policy

策略是智能体的行为,它是一个从状态到行动的映射,比如有:

  • 确定策略:a=π(s)a=\pi(s)a=π(s)
  • 随机策略:π(a∣s)=P[At=a∣St=s]\pi(a|s)=\mathbb{P}[A_t=a|S_t=s]π(a∣s)=P[At​=a∣St​=s]

值函数 - Value Function

值函数是对将来奖励的一种预测,用来评估状态的好坏,由此来选择行动,比如:
vπ(s)=Eπ[Rt+1+γRt+2+γ2Rt+3+…∣St=s]v_{\pi}(s)=\mathbb{E}_{\pi}\left[R_{t+1}+\gamma R_{t+2}+\gamma^{2} R_{t+3}+\ldots \mid S_{t}=s\right] vπ​(s)=Eπ​[Rt+1​+γRt+2​+γ2Rt+3​+…∣St​=s]
γ\gammaγ是一个0和1之间的数,上式说明给定状态s,越往后的奖励对智能体这一步的价值计算影响越小。所以智能体更看重短期内的奖励

模型 - Model

模型不是必须的,模型预测环境接下来会如何

P\mathcal{P}P预测了接下来的状态

R\mathcal{R}R预测了紧接着的奖励

比如:
Pss′a=P[St+1=s′∣St=s,At=a]Rsa=E[Rt+1∣St=s,At=a]\begin {aligned} \mathcal{P}_{s s^{\prime}}^{a} &=\mathbb{P}\left[S_{t+1}=s^{\prime} \mid S_{t}=s, A_{t}=a\right] \\ \mathcal{R}_{s}^{a} &=\mathbb{E}\left[R_{t+1} \mid S_{t}=s, A_{t}=a\right] \end{aligned} Pss′a​Rsa​​=P[St+1​=s′∣St​=s,At​=a]=E[Rt+1​∣St​=s,At​=a]​
第一个就是所谓的状态转移方程?

例子:迷宫

奖励:每走一步奖励-1

行动:包括:东、南、西、北

状态:智能体的位置

策略

箭头代表每个状态对应的策略π(s)\pi(s)π(s)

值函数

数字代表每个状态对应的值函数vπ(s)v_\pi(s)vπ​(s)

每次选择值函数最大的行动

模型

智能体可能有一个关于环境的内部模型,它可能是不完美的模型

  • 动态:行动如何改变环境
  • 奖励:每种状态有多少奖励

网格表示了状态转移模型Pss′a\mathcal{P}_{ss^{\prime}}^aPss′a​

数字表示了每个状态的即时奖励Rsa\mathcal{R}_s^aRsa​(对所有a都相同)

强化学习智能体的分类 1

  • 基于值的

    • 没有策略(隐含策略)
    • 值函数
  • 基于策略的
    • 策略
    • 没有值函数
  • 演员评论家(Actor Critic)
    • 策略
    • 值函数

强化学习智能体的分类 2

  • 无模型

    • 策略或(和)值函数
    • 无模型
  • 基于模型

    • 策略或(和)值函数
    • 模型

个人感觉这两者的区别有点像机器学习中判别模型和生成模型的区别。生成模型对应基于模型的RL。

强化学习智能体的分类

大多数情况下,值函数都包含了策略

学习和规划

在贯序决策中,有两个基本的问题:

  • 强化学习

    • 初始环境未知
    • 智能体与环境交互来学习
    • 智能体会改进其策略

    (可否改进强化学习,告诉其初始环境呢?)

  • 规划

    • 一个关于环境的模型是已知的
    • 智能体通过模型计算来学习(而不是与外部交互)
    • 智能体会改进其策略
    • 也即,深思,推理,反省,思考,思考,寻找

Atari例子:强化学习

游戏的规则是未知的,智能体通过直接玩游戏来学习,从操纵杆选择行动,观测像素和得分

Atari例子:规划

游戏规则已知,可以查询模拟器,智能体脑中有一个完美模型,如果在状态s下采取了行动a,下一个行动是什么?得分会怎样?…都可以被计算出

提前规划来寻找最优策略,比如:树搜索

开发和探索

强化学习就像试验-试错学习,智能体从其经验和环境中应该发现一个良好的策略,但沿途却不会失去太多奖励。

  • 探索 发现 环境中的更多信息
  • 开发 挖掘 已知信息来使奖励最大化
  • 探索和开发同样重要

例子

  • 餐馆选择

    • 开发选择最喜爱的餐馆
    • 探索选择一个新餐馆
  • 在线广告牌
    • 开发展示最成功的广告
    • 探索展示一个不同的广告
  • 石油开采
    • 开发在最著名的地点开采
    • 探索在一个新的地点开采
  • 玩游戏
    • 开发采取一个你认为最佳的行动
    • 探索采取一个实验性的行动

预测和控制

  • 预测:评估未来

    • 给定一个策略
  • 控制:最优化未来
    • 找到最优策略

网格世界例子:预测

均匀随机策略的值函数是什么?

网格世界例子:控制

所有可能策略的最优值函数是什么?

最优策略是什么?

课程大纲

  • 第一部分:基础的强化学习

    • 基本介绍
    • 马尔科夫决策过程
    • 动态规划
    • 无模型预测
    • 无模型控制
  • 第二部分:实际中的强化学习
    • 值函数估计
    • 策略下降方法
    • 学习和规划集成
    • 开发和探索
    • 案例学习 - 游戏中的强化学习

因为是在一下午做完的,后面做得比较粗糙。

David Silver强化学习——介绍相关推荐

  1. 【David Silver强化学习公开课之一】强化学习入门

    本文是David Silver强化学习公开课第一课的总结笔记.第一课主要解释了强化学习在多领域的体现,主要解决什么问题,与监督学习算法的区别,完整的算法流程由哪几部分组成,其中的agent又包含什么内 ...

  2. David Silver强化学习公开课自学笔记——Lec2马尔科夫决策过程

    本笔记摘自知乎博主旺财的搬砖历险记和叶强,仅用于自学 0.数学规范 大写字母表示随机变量:S,A,RS,A,RS,A,R等 小写字母表示具体的值:s,a,rs,a,rs,a,r等 空心字母表示统计运算 ...

  3. David Silver强化学习笔记-Lecture 2: Markov Decision Processes

    Lecture 2: Markov Decision Processes(马尔科夫决策过程) 一.Marokov Process (一)Introduction Introduction to MDP ...

  4. David Silver强化学习公开课自学笔记——Lec1强化学习简介

    本笔记摘自知乎博主旺财的搬砖历险记和叶强,仅用于自学 1.背景介绍 (1)背景 强化学习是多学科多领域交叉的产物,本质是解决决策问题,即学会自动决策,在各个领域体现不同,但都归结为人类如何且为什么能做 ...

  5. 【David Silver强化学习公开课】-6:Value Function Approximation

    一.介绍 找到一种适应真实情况(很大的状态空间)的RL方法,之前的价值函数表示是通过一个S×A的表(Table)来表示Q(s,a).状态空间很大时,这种表示内存占用过大,而且单独学习每个state的价 ...

  6. 【David Silver强化学习公开课】-5:Model-Free Control

    一.介绍 这一讲的内容是大部分情况下真实使用的算法,也就是在对环境一无所知的情况下,去学习出一个好的策略.首先介绍一些概念: Model-Free Control,在环境未知的前提下,如何学习策略(价 ...

  7. 【David Silver强化学习公开课】-4:Model-Free Prediction

    一.介绍 无论是价值迭代还是策略迭代,都是在已经知道MDP模型(也就是动态转移矩阵P和奖励R)的前提下用DP的方式进行控制.那么如果对模型的这些属性并不了解,要如何进行预测和控制呢? 本节主要讲几种方 ...

  8. 【David Silver强化学习公开课】-8:Integrating Learning and Planning

    一.Model-based RL Model-Free RL,从经验中学习价值函数(以及/或者策略). Model-based RL,从经验中直接学习环境的MDP模型.(状态转移概率P以及奖励矩阵R) ...

  9. 【David Silver强化学习公开课】-7:Policy Gradient

    一.介绍 之前的控制方法都是Value-based,而在确定价值函数之后,其实我们是在价值函数的基础上确定了某种策略(贪婪,ϵϵ-贪婪)找到action.那么我们为什么不直接通过策略函数控制actio ...

最新文章

  1. centos ffmpeg m3u8切片相关
  2. Cocos2dx-demo演示项目:Part1
  3. 红米airdots掉了怎么查找_红米K30 Pro 荣耀V30pro 这两款手机该怎么选呢?
  4. geteditor p 取消自动_2020百度网盘超级会员怎么取消自动续费?
  5. 对计算机的分析,对计算机思维的逻辑分析(范文).doc
  6. Linux: shell命令 eval (有图有代码有真相!!!)
  7. Android 图片缩略图显示
  8. RabbitMQ中BasicGet与BasicConsume的区别
  9. JAVA b2b2c多用户商城系统源码-服务发现服务端EurekaServer微服务
  10. HDU4510 小Q系列故事——为什么时光不能倒流【时间计算】
  11. 《Redis实战》一2.2 使用Redis实现购物车
  12. 基于地理位置标记的空间聚类分析(python-DBSCAN)
  13. Python基本用法练习题
  14. 2-Python程序实例解析
  15. 学习UVC协议需要的工具
  16. php c端,tob端和toc端是什么意思
  17. CStdioFile类的使用1
  18. 仿真软件测试基尔霍夫定律,实验三 基尔霍夫定律的验证(仿真实验)
  19. 如何恢复录音删除的录音文件_手机通话录音后!点击这个按钮,就能将录音文件一键转为文字...
  20. TypeError: this.$refs.resetFields is not a function解决方法

热门文章

  1. python爬虫爬取股票软件数据_Python爬虫抓取东方财富网股票数据并实现MySQL数据库存储(转载)...
  2. 汉语编程、中文编程、国产C语言-习语言4714(2016)版下载及教程
  3. stranded 和 non-stranded RNA-seq
  4. 马云谈“大数据”:很多人对这三个字有误解
  5. 【脑海烙成了无法泯灭的伤痕】
  6. EV1527离线语音控制器模块调试日志
  7. 01_Dive_into_python (reading note)
  8. 看不懂电路图?学会这10大原则7大步骤,电路图so easy!
  9. CCNP学多长时间就行了?
  10. 判断xarray中小于0的位置坐标