Intro to RL Lecture1
Intro to Reinforcement Learning:Lecture 1
- 第一章的概览
- 课程介绍
- 课程的结构
- 推荐书目
- 学习的准备
- 什么是强化学习?
- 监督学习:图像分类
- 强化学习:玩Breakout游戏
- 强化学习与监督学习的不同之处
- 强化学习的特点
- 大事件:AlphaGo
- 强化学习的例子
- RL的例子:Pong
- 深度强化学习(深度学习+强化学习)
- 为什么现在RL成功了?
- 序列决策的介绍
- 智能体Agent和环境Environment
- 奖励Reward
- 序列决策
- RL Agent的主要元素
- Policy
- 价值函数
- 模型
- MDP马尔可夫决策过程
- 基于Agent学到的东西对RL的智能体进行分类
- 基于是否有模型进行分类
- 序列决策的两个基本问题
- 强化学习
- 探索与利用
- 强化学习的实验
- 编程
- OpenAI
- 一些材料
第一章的概览
课程介绍
课程的目标是使强化学习更加大众化,主要是起一个抛砖引玉的作用
1.开设这门课程的老师是来自香港中文大学的周博磊老师
这个是周老师的个人主页:http://bzhou.ie.cuhk.edu.hk/
2. PPT和资源已经上传到了github上
课程的结构
Lecture1:概览
Lecture2:MDP马尔可夫决策过程
Lecture3:Model-free无模型预测和控制
Lecture4:On-policy和Off-policy的学习
Lecture5:价值函数的近似
Lecture6:策略优化基础
Lecture7:策略优化前沿
Lecture8:Model-based RL
推荐书目
《Reinforcement Learning:An Introduction》 Sutton and Barton
学习的准备
1.有一些线性代数,概率统计和机器学习的相关知识背景
2.有编程的经验:Python,Pytorch
什么是强化学习?
强化学习是一种学习的计算方法:一个智能体在与一个复杂且不确定的环境Environment尝试最大化他接收到的奖励Reward的总和。----Sutton和Barto
监督学习:图像分类
监督学习图像分类中的数据主要是有标记的数据,而这些数据服从独立同分布(i.i.d)的假设
其中需要学习的网络知道训练集中真实的标签
强化学习:玩Breakout游戏
数据不满足独立同分布的假设
对于正确的动作没有立即的反馈和标签
强化学习与监督学习的不同之处
1.序列数据作为输入(不是i.i.d)
2.学习的网络没有被告诉正确的动作是什么,取而代之地是需要通过尝试不同的动作来发现哪个动作能得到最大的奖励。
3.是一种试错的探索Trial and error(需要在探索和利用之间平衡)
4.RL中没有监督信号,只有奖励的信号,并且这个奖励信号是延迟的。
强化学习的特点
1.试错的方式去探索
2.奖励是延迟的
3.数据是序列的
4.智能体的行为影响接下来的接受的数据(动作改变了环境)
大事件:AlphaGo
监督学习的上限是人类的表现
强化学习的上限又在哪里呢?
强化学习的例子
1.下国际象棋
2.小羚羊试图站立的过程
3.证券投资
4.玩Atari游戏
RL的例子:Pong
动作:上或者下
强化学习:采样动作(rollouts),直到游戏结束,然后惩罚每一个动作action
深度强化学习(深度学习+强化学习)
与传统的CV和深度CV类似
传统的方法需要人工设计的特征,而深度学习的方法可以端到端的训练,自动提取重要的特征用于训练
为什么现在RL成功了?
1.计算资源:许多GPU可以用于做试错的rollout
2.理论知识的累积,形成了简单而明了的规则
3.端到端的训练,特征和策略同时向目标进行优化
序列决策的介绍
智能体Agent和环境Environment
智能体学习着与环境进行交互
奖励Reward
1.奖励是一个标量的反馈信号
2.表示在第t步的行为有多好
3.强化学习基于最大化奖励
智能体左右的目标可以被描述为最大化累积奖励的期望
序列决策
智能体的目标是:选择一系列动作来最大化总的未来的奖励
动作可能有长期的影响
奖励可能是延迟的
及时奖励和长期奖励之间的权衡
历史History是序列的观察observations,actions,rewards
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
- 接下来发生什么依赖于历史
- 状态State是用于决定接下来发生什么的函数
St=f(Ht)S_t =f(H_t) St=f(Ht)
环境状态和智能体状态
Ste=fe(Ht)Sta=fa(Ht)S^e_t= f^e(H_t) \quad S^a_t=f^a(H_t) Ste=fe(Ht)Sta=fa(Ht)
完全可观测:智能体直接观察到环境的状态,形式上为Maerkov decision process(MDP)
Ot=Ste=StaO_t=S^e_t=S^a_t Ot=Ste=Sta
不完全可观:智能体间接地观察到环境,形式上为部分可观测MDP(POMDP)
例如black jack和atari游戏
RL Agent的主要元素
一个强化学习的智能体可能包含以下一个或多个元素:
1.策略Policy:智能体的行为函数
2.价值函数Value:评价每个状态或者动作有多好
3.模型Model:智能体对于缓解的状态表示
Policy
- 一个策略是智能体的行为模型
- 是一个从状态/观测到动作的映射函数
- 随机策略:概率采样π(a∣s)=P[At=a∣St=s]\pi(a|s)=P[A_t=a|S_t=s]π(a∣s)=P[At=a∣St=s]
- 确定策略:a∗=argmaxaπ(a∣s)a^*=argmax_a\pi(a|s)a∗=argmaxaπ(a∣s)
价值函数
- 价值函数:在一个特定的策略π\piπ下的未来折扣奖励的和的期望值
- 折扣因子权衡了及时奖励和未来奖励
- 用于衡量状态和动作的好坏
vπ(s)=Eπ[Gt∣St=s]=Eπ[∑k=0∞∣St=s],foralls∈Sv_\pi(s)=E_\pi[G_t|S_t=s]=E_\pi[\sum_{k=0}^{\infty}|S_t=s],for \quad all\quad s \in Svπ(s)=Eπ[Gt∣St=s]=Eπ[k=0∑∞∣St=s],foralls∈S - Q函数(可被用于选择动作)
qπ(s,a)=Eπ[Gt∣St=s,At=a]=Eπ[∑k=0∞γkRt+k+1∣St=s,At=a]q_\pi(s,a)=E_\pi[G_t|S_t=s,A_t=a]=E_\pi[\sum_{k=0}^\infty\gamma^kR_{t+k+1}|S_t=s,A_t=a]qπ(s,a)=Eπ[Gt∣St=s,At=a]=Eπ[k=0∑∞γkRt+k+1∣St=s,At=a]
模型
- 一个模型预测环境接下来做什么
- 预测下一个状态state:Pss′a=P[St+1∣St=s,At=a]P^a_{ss'}=P[S_{t+1}|S_t=s,A_t=a]Pss′a=P[St+1∣St=s,At=a]
- 预测下一个奖励reward:Rsa=E[Rt+1∣St=s,At=a]R_s^a=E[R_{t+1}|S_t=s,A_t=a]Rsa=E[Rt+1∣St=s,At=a]
MDP马尔可夫决策过程
- MDP的定义
- PaP^aPa是对于每一个动作的动态/转换模型
P(St+1=s′∣St=s,At=a)P(S_{t+1}=s'|S_t=s,A_t=a) P(St+1=s′∣St=s,At=a) - RRR是奖励函数
R(St=s,At=a)=E[Rt∣St=s,At=a]R(S_t=s,A_t=a)=E[R_t|S_t=s,A_t=a] R(St=s,At=a)=E[Rt∣St=s,At=a] - 折扣因子γ∈[0,1]\gamma\in[0,1]γ∈[0,1]
基于Agent学到的东西对RL的智能体进行分类
- 基于价值的智能体Value-based:
– 显式的:价值函数
– 隐式的:策略(可以从价值函数得出策略) - 基于策略的智能体Policy-based:
– 显式的:策略
– 无价值函数 - Actor-Critic的智能体:
– 显式的:策略和价值函数
基于是否有模型进行分类
- Model-based
– 显式的:model模型
– 可能有也可能没有策略和价值函数 - Model-free
– 显式的:价值函数or/and策略函数
– 没有模型
这幅图是来自己David silver的PPT中
序列决策的两个基本问题
- 规划Planning
– 给出了关于环境如何运作的模型Model
– 机损如何动作在不需要外部交互的情况下最大化期望奖励 - 强化学习Reinforcement Learning
– Agent 不知道世界或者说模型是如何运作的
– 与环境进行不断地交互,隐式地去学习环境如何运作
– Agent改善自己的策略(同样包含了规划)
强化学习
- 没有关于环境的知识或者规则
- 通过采取动作进行学习,看看会发生什么
- 尽力找到能够得到高的奖励的策略policy
- 在推断或者前向传播时,规划是需要的
探索与利用
- 智能体只经历了那些尝试了动作后得到的经验
- RL的智能体如何平衡他的动作呢?
– 探索:尝试新的动作,可能帮助智能体在未来做出更好的决策
– 利用:根据已得到的经验,选择那些应该能够得到好的奖励的动作 - 通常会有一个探索-利用的权衡
– 可能不得不牺牲奖励来进行探索,进而学习潜在更好的策略
强化学习的实验
- **Getting hand dirty!**在强化学习中是非常重要的
- Deep learning和AI变得越来越经验化
- 使用试错的方式来学习强化学习
编程
- Python编程
- 深度学习库:Pytorch和Tensorflow
- RL例子
OpenAI
- https://openai.com/
- OpenAI是一个非盈利性AI研究公司,发现和制定通向安全通用人工智能的道路
- OpenAI的库:https://gym.openai.com/, https://github.com/openai/retro
一些材料
一篇很棒的博客来自Karpathy,http://karpathy.github.io/2016/05/31/rl/
熟悉openai gym的环境,并运行例子的代码:https://github.com/cuhkrlcourse/RLexample
Python教程:http://cs231n.github.io/python-numpy-tutorial/
Python Tutorial: https://pytorch.org/tutorials/beginner/deep learning 60min blitz.html
家庭作业,阅读Sutton and Barton:第一节和第三节
Intro to RL Lecture1相关推荐
- 机器学习资源-Harvard Ph.D Sam维护
这篇博文转自哈佛大学博士生Sam整理的机器学习资料,包括了数据基础.几何.概率论.统计学习.深度学习等.内容非常丰富,Blog是完全拷贝用于备份.最新内容建议阅读Sam维护的博文:https://sg ...
- Policy Gradient 之 A3C 与 A2C 算法
Policy Gradient 之 A3C 与 A2C 算法 Motivation Background Algorithm Policy Gradient Actor-Critic A3C A2C ...
- 资源 |“从蒙圈到入坑”,推荐新一波ML、DL、RL以及数学基础等干货资源
向AI转型的程序员都关注了这个号☝☝☝ 编译 | AI科技大本营(rgznai100) 参与 | suiling 此前营长曾发过一篇高阅读量.高转发率,高收藏量的文章<爆款 | Medium上6 ...
- Interpretable Rl Summary
文章目录 Model Approximation Method Toward Interpretable Deep Reinforcement Learning with Linear Model U ...
- 一块V100运行上千个智能体、数千个环境,这个「曲率引擎」框架实现RL百倍提速...
视学算法报道 编辑:张倩 在强化学习研究中,一个实验就要跑数天或数周,有没有更快的方法?近日,来自 SalesForce 的研究者提出了一种名为 WarpDrive(曲率引擎)的开源框架,它可以在一个 ...
- 替代离线RL?Transformer进军决策领域,「序列建模」成关键
机器之心报道 机器之心编辑部 Transformer 开始进军决策领域了,它能否替代离线强化学习呢?近日,UC 伯克利.FAIR 和谷歌大脑的研究者提出了一种通过序列建模进行强化学习的 Transfo ...
- 边做边思考,谷歌大脑提出并发RL算法,机械臂抓取速度提高一倍!
选自arXiv 作者:Ted Xiao 等 机器之心编译 机器之心编辑部 RL 算法通常假设,在获取观测值.计算动作并执行期间环境状态不发生变化.这一假设在仿真环境中很容易实现,然而在真实机器人控制当 ...
- Basic005. Intro to statistics basic terms统计名词介绍
本文"植物微生物组"公众号原创,ID: plantmicrobiome 作者:Tank 原文链接:Intro to Statistics with R (HarvardX seri ...
- 构建聊天机器人:检索、seq2seq、RL、SeqGAN
本文将简要介绍聊天机器人的四种构建方法:检索.seq2seq.Reinforcement Learning.seqGAN. 聊天机器人的现状 检索 seq2seq RL 为什么要用强化学习 强化学习的 ...
最新文章
- python测试程序的qps和响应时间代码_Python并发请求下限制QPS(每秒查询率)的实现代码...
- Xcode 上使用Reveal调试界面
- Linux装多个apache,windows linux如何安装多个apache?
- Cookie和Session-学习笔记04【Session之验证码案例】
- 【python】画一个爱心
- hadoop jar包_计算机毕业设计中hadoop上运行Java程序
- Python学习笔记之常用模块总结,持续更新...
- lepus监控oracle数据库_实用脚本一键监控oracle数据库索引使用状况
- forms Build中的触发器
- Affymetrix基因芯片小总结
- 华硕笔记本能通用的BIOS型号
- 「兔了个兔」看我如何抓取兔兔图片到本地(附源码)
- 全国计算机二级c语言怎么复习,全国计算机二级C语言知识点复习:基本知识
- vue+vant图片上传压缩图片大小
- Cordys BOP 4平台开发入门实战演练——会签流程建模开发
- 使用clean-webpack-plugin小插件报错CleanWebpackPlugin is not a constructor
- Unity应用-向量
- 艾司博讯:拼多多诱导非官方交易有哪些处理?
- VS Visual Studio 魔兽插件开发工具 AddOn Studio for WOW 1 0 含有LUA编辑
- 【xshell7免费下载安装】
热门文章
- openstack compute service list报错(HTTP 503)
- HTTP Error 503
- GDI+ 中图片的绘制
- 学人工智能看什么书?AI入门书籍推荐
- 满分室间质评之GATK Somatic SNV+Indel+CNV+SV(下)性能优化
- mac java 安装教程_MAC安装JDK详细教程
- ubuntu14.04扩展屏幕后,打开matlab就死机。求大神帮忙解决!!!万分感谢
- 逆向记录Assaultcube for Mac OS
- oracle ebs 提交请求,EBS Form开发中点击按钮提交请求报表的实现方式--fnd_request.submit_request...
- 地域微信平台自媒体,原创视频如何插入腾讯地图