Datawhale开源

核心贡献者:王琦、杨逸远、江季

提起李宏毅老师,熟悉强化学习的读者朋友一定不会陌生。很多人选择的强化学习入门学习材料都是李宏毅老师的台大公开课视频。

现在,强化学习爱好者有更完善的学习资料了! Datawhale开源项目组成员总结了李宏毅的强化学习视频,实现了视频教程的完整梳理和复现,再也不用担心强化学习

目前,项目已完全开源,包括课程内容、配套的习题和项目,供大家使用。

1. 李宏毅深度强化学习简介

李宏毅老师现任台湾大学电气工程系副教授,主要研究方向是机器学习,特别是深度学习。他有一系列公开的强化学习课程视频,也是很多人入门的教程。

李宏毅老师的课程包括很多常见的强化学习算法,比如策略梯度、PPO、DQN、DDPG、演员-评论员算法、模仿学习、稀疏奖励等算法。此外,我们还补充了马尔可夫决策过程、Q-learning、Sarsa、REINFORCE 等强化学习常见的算法及概念。

「策略梯度」课程中的 PPT,解释了策略梯度的过程

「近端策略优化算法」课程中的 PPT,展示了重要性采样的问题

李宏毅老师的《深度强化学习》是强化学习领域经典的中文教程之一。李老师幽默风趣的上课风格让晦涩的强化学习理论变得轻松易懂,他会通过很多有趣的例子来讲解强化学习理论。比如老师经常会用玩 Atari 游戏的例子来讲解强化学习算法。

此外,为了课程的完整性,我们整理了周博磊老师的《强化学习纲要》、李科浇老师的《百度强化学习》以及多个强化学习的经典资料作为补充。 对于想入门强化学习又想看中文讲解的人来说绝对是非常推荐的。

但是,考虑到很多强化学习爱好者对于课程笔记的需求,我们不仅仅需要的是教学视频。我们需要一份课程笔记,能够引领学习者的思路,帮助引导他们进入这个领域。因此,就诞生了这款《LeeDeepRL-Notes》李宏毅深度强化学习笔记。

2.《LeeDeepRL-Notes》李宏毅深度强化学习笔记

LeeDeepRL-Notes 是 Datawhale 自《李宏毅机器学习笔记》后的又一开源学习项目,由团队成员王琦、杨毅远、江季历时四个月协作而成,实现了李宏毅老师深度强化学习课程内容的 100% 复现,并且在此基础上补充了有助于学习理解的相关资料和内容,对重难点公式进行了补充推导。

期间,Datawhale 组织了《深度强化学习基础》学习,在众多学习者共同的努力下,对该内容进行了迭代和补充。下面,让我们来详细了解下工作详情吧。

具体工作:

  • 2020 年 6 月 -- 2020 年 7 月:笔记整理初级阶段,视频 100% 复现;

  • 2020 年 7 月 -- 2020 年 10 月:添加相关的习题和项目,对笔记内容及排版迭代优化;

  • 2020 年 10 月 -- 2020 年 11 月:组队学习《深度强化学习基础》并对内容进行迭代完善;

  • 2020 年 11 月:最后内容修正,正式推广。

10月《深度强化学习基础》组队学习中学习者的评价

3.《LeeDeepRL-Notes》学习笔记框架

3.a 亮点

这份学习笔记具有以下优点:

  • 完全将李宏毅老师的讲课内容转为文字,方便学习者查阅参考。

  • 为了课程的完整性,我们还整理了周博磊老师的《强化学习纲要》、李科浇老师的《百度强化学习》以及多个强化学习的经典资料作为补充。

  • 配有相关的习题和项目。

3.b 笔记框架

内容在整体框架上与李宏毅老师的深度强化学习课程保持一致。建议学习过程中将李宏毅老师的视频和这份资料搭配使用,效果极佳。笔记也和课程视频完全同步。

内容导航见下:

4. 笔记内容细节展示

4.a 对 Q-learning 概念的解析

在笔记中重新整理 PPT 内容,并增加了一些注释

4.b Actor-Critc 算法的引入

根据内容整理成知识点,方便读者理解阅读

在整理过程中,我们并不对视频语音直接转文字,而是根据内容整理成知识点,方便读者理解阅读。

4.c 利用贴近学生的例子解释知识点

强化学习基本概念的解释

5. 习题(查漏补缺)

只有教程怎么够,来点儿课后习题和关键字总结帮助大家查漏补缺也是极好的。我们根据每一章的内容,并结合其他的网络资料,原创了课后习题以及关键字的总结,辅助你在更短的时间内查漏补缺,令你更快的将“零碎、无序”的知识“拼接”完整。

5.a 关键字让你快速 get 到文章的要点

在每章教程的后面,我们都会结合每章的内容,将定义、具体算法、专业名词等关键字和知识点,使用最短、最精确且最白话的方式总结,供大家吸收与巩固。

教程第二章部分关键字示意图

5.b 习题与参考答案助力你的查漏补缺

除了关键词,我们还提供了章节对应的习题供大家查漏补缺,并且结合其他资料,提供了详细、易懂的答案供大家参考。

教程第一章部分习题以及对应参考答案示意图

6. 项目(动手实践)

强化学习少了实践怎么行,这边挑了三个项目,都基于流行的 OpenAI gym 环境,让你快速入门,循序渐进,主要包括:

6.a 对项目的简易描述

6.b 层次清晰的手写代码

将整个强化学习过程分成以上几个子模块,方便拆解与改动,并且契合原论文的伪代码,在main.py中提供基本接口:

6.c 使用 Tensorboard 进行可视化

6.d 丰富的持续更新

在刚刚结束的组队学习中,助教耐心地解答了大家的疑惑,并且会根据反馈的情况,在之后的一个月内,持续更新项目的设计方法和详细的代码思路讲解,敬请期待~

7. 配套视频

视频地址https://www.bilibili.com/video/BV1MW411w79n

8. 开源地址

项目地址https://github.com/datawhalechina/leedeeprl-notes 或点击阅读原文获取,欢迎star!

李宏毅强化学习完整笔记!开源项目《LeeDeepRL-Notes》发布的更多相关文章

  1. 嵌入式 十个最值得阅读学习的C开源项目代码

    开源世界有许多优秀的开源项目,我选取其中十个最优秀的.最轻量级的C语言的项目,希望可以为C语言开发人员提供参考. 十个最值得阅读学习的C开源项目代码 1. Webbench 2. Tinyhttpd ...

  2. 强化学习读书笔记 - 05 - 蒙特卡洛方法(Monte Carlo Methods)

    强化学习读书笔记 - 05 - 蒙特卡洛方法(Monte Carlo Methods) 学习笔记: Reinforcement Learning: An Introduction, Richard S ...

  3. 强化学习读书笔记 - 12 - 资格痕迹(Eligibility Traces)

    强化学习读书笔记 - 12 - 资格痕迹(Eligibility Traces) 学习笔记: Reinforcement Learning: An Introduction, Richard S. S ...

  4. 强化学习读书笔记 - 02 - 多臂老O虎O机问题

    # 强化学习读书笔记 - 02 - 多臂老O虎O机问题 学习笔记: [Reinforcement Learning: An Introduction, Richard S. Sutton and An ...

  5. 强化学习读书笔记 - 06~07 - 时序差分学习(Temporal-Difference Learning)

    强化学习读书笔记 - 06~07 - 时序差分学习(Temporal-Difference Learning) 学习笔记: Reinforcement Learning: An Introductio ...

  6. 强化学习读书笔记 - 13 - 策略梯度方法(Policy Gradient Methods)

    强化学习读书笔记 - 13 - 策略梯度方法(Policy Gradient Methods) 学习笔记: Reinforcement Learning: An Introduction, Richa ...

  7. 强化学习读书笔记 - 11 - off-policy的近似方法

    强化学习读书笔记 - 11 - off-policy的近似方法 学习笔记: Reinforcement Learning: An Introduction, Richard S. Sutton and ...

  8. 强化学习读书笔记 - 10 - on-policy控制的近似方法

    强化学习读书笔记 - 10 - on-policy控制的近似方法 学习笔记: Reinforcement Learning: An Introduction, Richard S. Sutton an ...

  9. 强化学习读书笔记 - 09 - on-policy预测的近似方法

    强化学习读书笔记 - 09 - on-policy预测的近似方法 参照 Reinforcement Learning: An Introduction, Richard S. Sutton and A ...

随机推荐

  1. CODEFORCEs 621E. Wet Shark and Blocks

    E. Wet Shark and Blocks time limit per test 2 seconds memory limit per test 256 megabytes input stan ...

  2. css--深入理解z-index引发的层叠上下文、层叠等级和层叠顺序

    前言 在编写css样式代码的时候,我们经常会遇到z-index属性的使用,我们可能只了解z-index能够提高元素的层级,并不知道具体是怎么实现的.本文就来总结一个由z-index 引发的层叠上下文和 ...

  3. 源码分析 SpringCloud 2020.0.4 版本 EurekaClient 的注册过程

    1. 概述 老话说的好:要善于思考,有创新意识. 言归正传,之前聊了 Springboot 的启动过程,今天来聊聊 Eureka Client 的注册过程. 2. Eureka Client 的注册过 ...

  4. JavaScript交互式网页设计 • 【第2章 JavaScript函数与事件】

    全部章节   >>>> 本章目录 2.1 JavaScript 自定义函数 2.1.1 函数的定义 2.1.2 函数的调用 2.1.3 函数的参数 2.1.4 函数的返回值 2 ...

  5. winform 自定义自动完成控件

    做过前端的朋友肯定很清楚自动完成控件,很多优秀的前端框架都会带有自动完成控件,同样的,winform也有,在我们的TextBox和ComboBox中,只需要设置AutoCompleteSource属性 ...

  6. Redis真的又小又快又持久吗

    一本正经 面试官:小伙子,谈谈对Redis的看法. 我:啊,看法呀,坐着看还是躺着看.Redis很小?很快?但很持久? 面试官:一本正经的说,我怀疑你在开车,不仅开开车还搞颜色. 我:... 面试官: ...

  7. DRF框架在嵌套关系下实现嵌套对象字段的过滤

    当需要对关联对象的字段进行选择性显示时,在所对应的serializer类中声明引用的字段. 例如: class TrackSerializer(serializers.ModelSerializer) ...

  8. ARP解析MAC地址的全过程(ARP的工作机制)

    以太网环境下,同一个网段的主机之间需要互相知道对方的MAC地址,才能访问. TCP/IP协议栈从上层到下层的封装过程中,第三层封装需要知道目的IP,第二层封装需要知道目的MAC. 目的IP一般由用户手 ...

  9. 【代码优化】Bean映射之MapStruct

    [代码优化]Bean映射之MapStruct 一.背景 领域模型相互转换就只能靠手工的 get()/set()? 普遍的做法有以下几种: 手工 get()/set(): 构造器: BeanUtils ...

  10. 数组内sizeof与strlen的区别

    1.数组在内存中是连续存放的,地址呈4个字节递增 2.数组的定义需要初始化,否则输出会已随机值输出 3.strlen()和sizeof()之间无关联:strlen():是求字符串长度的----只能针对 ...