- 课程主页
- 中文笔记
- 课程视频
- 实验环境推荐使用Linux或者Mac系统,以下环境搭建方法皆适用:
Docker环境配置
本地环境配置
- 强化学习简介:Google DeepMind
- 强化学习简介:DeepMind--David Sliver
- 本人博客(强化学习算法专题)
- 书籍《Reinforcement Learning: An Introduction》
- 书籍《Algorithms for Reinforcement Learning》
- 书籍《Deep Learning》
- 李宏毅课程《Deep Learning》
如今机器学习发展如此迅猛,各类算法层出不群,特别是深度神经网络在计算机视觉、自然语言处理、时间序列预测等多个领域都更是战果累累,可以说这波浪潮带动了很多人进入深度学习领域,也成就了其一番事业。而强化学习作为一门灵感来源于心理学中的行为主义理论的学科,其内容涉及概率论、统计学、逼近论、凸分析、计算复杂性理论、运筹学等多学科知识,难度之高,导致其发展速度特别慢。 但是,作为人类棋牌类游戏中复杂度最大的围棋,
- 2015年10月,由Google DeepMind公司开发的AlphaGo程序击败了人类高级选手樊麾,成为第一个无需让子即可在19路棋盘上击败围棋职业棋手的计算机围棋程序,并写进了历史,论文发表在国际顶级期刊《Science》上。
- 2016年3月,透过自我对弈数以万计盘进行练习强化,AlphaGo在一场五番棋比赛中4:1击败顶尖职业棋手李世石。
- Master(AlphaGo版本)于2016.12.29开始出现于弈城围棋网和腾讯野狐围棋网,取得60连胜的成绩,以其空前的实力轰动了围棋界。
- DeepMind 如约公布了他们最新版AlphaGo论文(Nature),介绍了迄今最强最新的版本AlphaGo Zero,使用纯强化学习,将价值网络和策略网络整合为一个架构,3天训练后就以100比0击败了上一版本的AlphaGo。AlphaGo已经退休,但技术永存。DeepMind已经完成围棋上的概念证明,接下来就是用强化学习创造改变世界的价值。
围棋的发展证明了强化学习的威力,作为AlphoGo的带头人,强化学习的鼻祖Richard S.Sutton的弟子,David Sliver及其团队可以说盛名远扬。其以前沿的目光发表了人工智能的终极目标是:
深度学习已经取得了很大的进步,而深度强化学习真正的发展归功于神经网络、深度学习以及计算力的提升,David就是使用了神经网络逼近值函数后,开启了一门新的研究方向,又一发不可收拾的证明了确定性策略等,纵观近四年的ICML,NPIS等会议论文,强化学习的理论进步,应用领域逐渐爆发式增广,目前已经应用在各个领域,同时,纵观世界出名研究机构,诸如:DeepMind、OpenAI, 伯克利、CMU等,可以说是强化学习的领跑者,并研究除了很多最新的科技,本课程以上述机构课程、论文为基础,将会从强化学习原理及以上相关应用例子开始逐渐庖丁解牛,最终让每个人都能够享受DRL带来的乐趣、并完成世界最著名的围棋程序"Alpha Zero"原理与代码实战。
注:由于强化学习整体来说难度比较高,需求的知识面也比较宽广,部分知识需要先修,但具体以应用时候选择性的学习即可。
- 了解python基础知识,高等数学、概率论、线性代数知识
- 了解基础机器学习算法:梯度下降、线性回归、逻辑回归、Softmax、SVM、PAC、神经网络、凸优化、函数逼近理论
- 了解Tensorflow基本编程
为了让大家逐渐适应英文阅读,复习材料我们有中英两个版本,但是推荐大家读英文
- 机器学习中的数学基本知识
- 统计学习方法
大学数学课本(从故纸堆里翻出来^_^)
每周具体时间划分为4个部分:
- 1部分安排周一到周二
- 2部分安排在周四到周五
- 3部分安排在周日
- 4部分作业是本周任何时候空余时间
- 周日晚上提交作业运行截图
- 周三、周六休息
训练营的作业自检系统已经正式上线啦!只需将作业发送到训练营公共邮箱即可,训练营以打卡为主,不用提交作业。以下为注意事项:
<0> 课程资料:链接 密码:zwjr
<1> 训练营代码公共邮箱:[email protected]
<2> 每周做作业,作业提交时间点:一整个Assignment代码全部完成后再提交
<3> 将每次作业压缩成zip文件,文件名为“深度强化学习学期+学号+作业编号”,例如第二期学员:"DRL020037-01.zip"
<4> 注意不要改变作业中的《方法名》《类名》不然会检测失败!!
<5> 查询自己成绩:
- 强化学习原理简介
- 强化学习思想来源
- 与机器学习之间的联系与区别
- 强化学习机理及组成元素
- 策略、值函数、模型
- 基于模型、非基于模型
- 学习和规划
- 探索和利用
- 预测与控制
- 实例讲解: Maze游戏中的强化学习理解
- 马尔科夫
- 马尔科夫过程
- 马尔科夫奖励过程
- 实例讲解:学生成绩及课程决策过程
- 马尔科夫决策过程
- 动态规划算法简介
- 迭代法策略评估
- 策略迭代 Policy Iteration
- 价值迭代 Value Iteration
- 动态规划的一些扩展(异步动态规划、采样更新、近似动态规划)
作业实战:
1、请完成策略改善的伪代码实现过程,向其中添加贪心策略, 并完成下面代码。
def policy_improve(self, grid_map)
for state in grid_map.states:
...
...
...
## 贪心策略
...
- 课件: lecture03
- 观看视频3
- 学习笔记: 动态规划寻找最优策略
- 不基于模型的预测简介
- 蒙特卡洛强化学习 Monte-Carlo Reinforcement Learning
- 时序差分学习 Temporal-Difference Learning
- DP、MC、TD之间的对比
- λ时序差分强化学习
- 课件: lecture04
- 观看视频
- 学习笔记:不基于模型的预测与控制
- 不基于模型的控制
- 策略蒙特卡洛控制 On-Policy Monte-Carlo Control
- 现时策略时序差分控制 On-Policy Temporal-Difference Control(SARSA、n-SARSA,SARSA(0),SARAS(lamda))
- 实例讲解: 格子的世界
- 离线策略学习 Off-Policy Learning
- Q-Learning
- 实例讲解: 悬崖行走
- 价值函数的近似表示
- 价值近似简介
- 近似函数方法(Function Approximator)
- 递增方法 Incremental Methods
- 递增方法 Incremental Methods
- 线性控制算法
- 实例讲解: 小车爬山
- 控制学习
- 最小平方差预测
- 批方法的直接计算
- 最小平方差控制
作业实战:
1、由OpenAI 开发的Pong游戏是一个含有很大智慧的游戏(如下图),它描述了两个板之间来回互相挡球的过程,类似于我们玩的乒乓球,所以起名“Pong”,请完成一下任务。
- 请利用图二的伪代码,完成游戏的编码过程,并画出奖励曲线图(Episode_reward与step)。
- 策略梯度简介
- 基于价值和基于策略的强化学习对比
- 基于策略学习的优缺点分析
- 最优策略
- 策略目标函数
- 优化目标函数
- 策略梯度定理 Policy Gradient Theorem
- 策略梯度(蒙特卡洛策略梯度、Actor-Critic策略梯度)
- 基线的方式来减少变异性 Reducing Variance Using Baseline
- 针对Actor过程使用TD(λ)
- 整合学习与规划
- 基于模型的强化学习(查表模型)
- 模型规划
- 架构整合 Integrated Architectures
- 基于模拟的搜索 Simulation-Based Search
- 简单蒙特卡洛搜索 Simple Monte-Carlo Search
- 蒙特卡罗树搜索 Monte-Carlo Tree Search
- 探索与利用
- 简介
- 估计方法
- 衰减
- 探索与利用之间的权衡
- 从原理到实战AlphoGO
附录:
1、Easy21题目描述
这项任务的目标是将强化学习方法应用于我们称之为Easy21的简单纸牌游戏。这个练习类似于Sutton和Barto 5.3中的Blackjack例子 - 但是请注意,纸牌游戏的规则是不同的和非标准的。
- 游戏使用无限副牌(即卡片进行采样) 更换)
- 来自牌组的每次抽牌都会产生1到10之间的值(统一 红色(概率1/3)或黑色(概率) 2/3)。
- 此游戏中没有A或图片(面部)牌
- 在游戏开始时,玩家和经销商都会画一个黑色 卡(完全观察)
- 每转一圈,玩家可以坚持或击中
- 如果玩家击中,则她从牌组中抽取另一张牌
- 如果玩家坚持,则不再接收任何卡
- 添加(黑卡)或减去(红色)玩家卡的值 牌)
- 如果玩家的总和超过21,或者小于1,那么她“去了 胸围“并失去了游戏(奖励-1)
- 如果玩家坚持,则经销商开始轮流。经销商总是坚持17或更高的总和,否则命中。如果经销商破产,则玩家获胜;否则,结果 - 赢(奖励+1),输(奖励-1)或平局(奖励0) - 是总和最多的玩家