Giter Site home page Giter Site logo

ucl-deepreinforcementlearning's Introduction

UCL-DeepReinforcementLearning

一门由AlphaGo项目负责人David Sliver,在UCL(伦敦大学)主讲的强化学习经典课程

UCL深度强化学习课程学习项目

课程资料

  1. 课程主页
  2. 中文笔记
  3. 课程视频
  4. 实验环境推荐使用Linux或者Mac系统,以下环境搭建方法皆适用:
    Docker环境配置
    本地环境配置

重要资源汇总:

  1. 强化学习简介:Google DeepMind
  2. 强化学习简介:DeepMind--David Sliver
  3. 本人博客(强化学习算法专题)
  4. 书籍《Reinforcement Learning: An Introduction》
  5. 书籍《Algorithms for Reinforcement Learning》
  6. 书籍《Deep Learning》
  7. 李宏毅课程《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及其团队可以说盛名远扬。其以前沿的目光发表了人工智能的终极目标是:

AI = Deep Learning + Reinforcement Learning

深度学习已经取得了很大的进步,而深度强化学习真正的发展归功于神经网络、深度学习以及计算力的提升,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> 查询自己成绩:
 

教程

Week1

  1. 强化学习原理简介
  • 强化学习**来源
  • 与机器学习之间的联系与区别
  • 强化学习机理及组成元素
  • 策略、值函数、模型
  • 基于模型、非基于模型
  • 学习和规划
  • 探索和利用
  • 预测与控制
  • 实例讲解: Maze游戏中的强化学习理解

Week2

  1. 马尔科夫
  • 马尔科夫过程
  • 马尔科夫奖励过程
  • 实例讲解:学生成绩及课程决策过程
  • 马尔科夫决策过程

Week3

  1. 动态规划算法简介
  • 迭代法策略评估
  • 策略迭代 Policy Iteration
  • 价值迭代 Value Iteration
  • 动态规划的一些扩展(异步动态规划、采样更新、近似动态规划)

作业实战

1、请完成策略改善的伪代码实现过程,向其中添加贪心策略, 并完成下面代码。

def policy_improve(self, grid_map)
    for state in grid_map.states:
    ...
    ...
    ...
    ## 贪心策略
    ...

Week4

  1. 不基于模型的预测简介
  • 蒙特卡洛强化学习 Monte-Carlo Reinforcement Learning
  • 时序差分学习 Temporal-Difference Learning
  • DP、MC、TD之间的对比
  • λ时序差分强化学习

Week5

  1. 不基于模型的控制
  • 策略蒙特卡洛控制 On-Policy Monte-Carlo Control
  • 现时策略时序差分控制 On-Policy Temporal-Difference Control(SARSA、n-SARSA,SARSA(0),SARAS(lamda))
  • 实例讲解: 格子的世界
  • 离线策略学习 Off-Policy Learning
  • Q-Learning
  • 实例讲解: 悬崖行走

Week6

  1. 价值函数的近似表示
  • 价值近似简介
  • 近似函数方法(Function Approximator)
  • 递增方法 Incremental Methods
  • 递增方法 Incremental Methods
  • 线性控制算法
  • 实例讲解: 小车爬山
  • 控制学习
  • 最小平方差预测
  • 批方法的直接计算
  • 最小平方差控制

作业实战

1、由OpenAI 开发的Pong游戏是一个含有很大智慧的游戏(如下图),它描述了两个板之间来回互相挡球的过程,类似于我们玩的乒乓球,所以起名“Pong”,请完成一下任务。

  • 请利用图二的伪代码,完成游戏的编码过程,并画出奖励曲线图(Episode_reward与step)。

env pursode

Week7

  1. 策略梯度简介
  • 基于价值和基于策略的强化学习对比
  • 基于策略学习的优缺点分析
  • 最优策略
  • 策略目标函数
  • 优化目标函数
  • 策略梯度定理 Policy Gradient Theorem
  • 策略梯度(蒙特卡洛策略梯度、Actor-Critic策略梯度)
  • 基线的方式来减少变异性 Reducing Variance Using Baseline
  • 针对Actor过程使用TD(λ)

Week8

  1. 整合学习与规划
  • 基于模型的强化学习(查表模型)
  • 模型规划
  • 架构整合 Integrated Architectures
  • 基于模拟的搜索 Simulation-Based Search
  • 简单蒙特卡洛搜索 Simple Monte-Carlo Search
  • 蒙特卡罗树搜索 Monte-Carlo Tree Search

Week9

  1. 探索与利用
  • 简介
  • 估计方法
  • 衰减
  • 探索与利用之间的权衡

Week10

  1. 从原理到实战AlphoGO

附录:

1、Easy21题目描述

这项任务的目标是将强化学习方法应用于我们称之为Easy21的简单纸牌游戏。这个练习类似于Sutton和Barto 5.3中的Blackjack例子 - 但是请注意,纸牌游戏的规则是不同的和非标准的。

  • 游戏使用无限副牌(即卡片进行采样) 更换)
  • 来自牌组的每次抽牌都会产生1到10之间的值(统一 红色(概率1/3)或黑色(概率) 2/3)。
  • 此游戏中没有A或图片(面部)牌
  • 在游戏开始时,玩家和经销商都会画一个黑色 卡(完全观察)
  • 每转一圈,玩家可以坚持或击中
  • 如果玩家击中,则她从牌组中抽取另一张牌
  • 如果玩家坚持,则不再接收任何卡
  • 添加(黑卡)或减去(红色)玩家卡的值 牌)
  • 如果玩家的总和超过21,或者小于1,那么她“去了 胸围“并失去了游戏(奖励-1)
  • 如果玩家坚持,则经销商开始轮流。经销商总是坚持17或更高的总和,否则命中。如果经销商破产,则玩家获胜;否则,结果 - 赢(奖励+1),输(奖励-1)或平局(奖励0) - 是总和最多的玩家

ucl-deepreinforcementlearning's People

Contributors

wjq2011 avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.