Deep Reinforcement Learning Hands-on-2nd-edition 第一部分

文章目录

    • 一、写在前面的一些话
    • 二、为什么要写这本书?
        • 1. 本书的主题
        • 2. 初衷
        • 3. 本书所采用的方法和软硬件环境
        • 4. 这本书的目标读者
    • 三、如何学习本书
    • 四、本书各章节介绍

一、写在前面的一些话

本书的第一版于2018年出版,2020年1月份第二版面世(英文版)。

作者是一个俄罗斯人Maxim Lapan,我们就叫他马克思姆吧,一个非常俄罗斯的名字。马克西姆的简介中有一句话,我认为可以解释我翻译此书的原因——“He has the ability to explain complicated things using simple words and vivid examples.”

相信每个入门强化学习的同学,看了很多的书和论文,但是对于一些基本概念(如:value function, state, reward等)的理解仍然不太清晰。主要原因有三点:一、强化学习即是一个方法,也是一个研究领域,二者一体;二、强化学习需要的背景知识比较多,比如概率论,算法基础,编程基础(python),还有不少和数学优化有关的东西,需要一个长期的积累;三、网上的课程相对较少,而且多为英文授课,资料大都是英文,对于中国学生一般要克服语言的障碍。

二、为什么要写这本书?

1. 本书的主题

本书的主题是强化学习(RL),它是机器学习(ML)的子领域。它关注于在复杂环境中学习最佳行为的一般性和挑战性问题。学习过程仅受奖励价值和从环境中获得的观察的驱动。该模型通用性很好,可以应用于许多实际情况,从打游戏到复杂的制造过程的优化。

由于强化学习的灵活性和通用性,强化学习领域正在迅速发展并吸引了众多关注。这些人中,既包括试图改进现有方法或创建新方法的研究人员,也包括有兴趣以最有效方式解决问题的工程技术人员。

2. 初衷

编写本书是为了架起有关强化学习方法与实际应用问题之间明显鸿沟的桥梁。一方面,全世界有很多研究活动,几乎每天都有新的研究论文发表,并且很大一部分的深度学习(DL)会议,例如神经信息处理系统(NeurIPS)或国际学习表示会议(ICLR),都致力于RL方法。也有几个大型研究小组致力于将RL方法应用于机器人技术,医学,多智能体系统等。

有关最新研究的信息多如牛毛,但是它过于专业和抽象,难以理解。更糟糕的是围绕着RL的实践方面的情况。因为从研究论文中以数学上繁重的形式描述的抽象方法,迈向解决实际问题的可行方案,很难一蹴而就。

这使得对该领域感兴趣的人很难清楚地了解论文和会议背后的方法和想法。有一些质量比较好的,关于各个RL方面的博客文章,都通过示例进行了说明。但是博客文章的篇幅有限,因此作者仅可以描述一种或两种方法,而无法构建完整的结构化方法,并显示不同方法之间的关系。因此,这本书是我试图解决这个问题的尝试。

3. 本书所采用的方法和软硬件环境

另一方面,本书倾向于实践。从非常琐碎的到非常复杂的各种环境,每种方法都可以实现。我试图由于PyTorch的表现力和强大功能,使得使用简洁易懂的示例可以实现。另一方面,本书的示例是针对RL爱好者的,而无需访问非常大的计算资源,例如图形处理单元(GPU)的集群并行处理或功能非常强大的工作站。我认为,这将使充满乐趣和令人兴奋的RL领域,不仅限于研究小组或大型人工智能公司,还可以供更广泛的受众使用。但是这毕竟是深度强化学习,因此强烈建议您能使用GPU。本书中大约有一半的示例在GPU上运行将会更好。

除了RL中使用的传统中型环境示例(例如Atari游戏或连续控制问题)外,本书还包含包含较大项目的几章(第10、14、15、16和18章),说明了RL方法如何实现适用于更复杂的环境和任务。这些大的示例仍不是完整的实际项目(它们自己会单独占据一本书)。

关于本书前三部分中的示例,需要注意的另一件事是,我尝试使它们自成一体,并完整显示了源代码。有时这会导致代码片段的重复(例如,大多数方法中的训练循环都非常相似),但是您可以自由的跳过您已经看懂的重复的代码。本书中的所有示例都可以在GitHub上找到:https:// github.com/PacktPublishing/Deep-Reinforcement-Learning-Hands-SecondEdition,欢迎您fork它们,进行试验,并巩固自己的理解。

4. 这本书的目标读者

主要目标读者是已经对机器学习领域有所了解,但希望对RL领域有实际了解的人员。读者应该熟悉Python以及DL和ML的基础知识。了解统计知识和概率论对你来说是一个优势,但对于理解本书的大部分材料并不是绝对必要的。

三、如何学习本书

本书中所有描述RL方法的章节都具有相同的结构:在开始时,我们讨论了该方法的动机,其理论基础以及其背后的思想。然后,我们使用完整的源代码,来跟踪实现适用于不同环境的方法的几个示例。

您可以通过不同的方式使用这本书:1.要快速熟悉某种方法,您只能阅读相关章节的介绍部分。2.若要更深入地了解该方法的实现方式,可以阅读代码。 3.要深入了解该方法(我认为这是最好的学习方法),您可以尝试使用提供的源代码作为参考,来重新实现该方法并使达到目的。

四、本书各章节介绍

  • 第1章,什么是强化学习?,包含RL概念和主要正式模型的简介。
  • 第2章,OpenAI Gym,使用开源库Gym介绍了RL的实践操作方面。
  • 第3章,使用PyTorch进行深度学习,快速对PyTorch库入门介绍。
  • 第4章,交叉熵方法,介绍了RL中最简单的方法之一,使您对RL方法和问题有一个初步印象。
  • 第5章,表格学习和Bellman方程,介绍了基于值的RL系列方法。
  • 第6章,“深层Q网络”-Deep Q-Network,它是基于值的基本方法的扩展,使我们能够解决复杂的环境问题。
  • 第7章,Hiher-Level RL库,介绍了PTAN库,我们将在书中使用该库来简化RL方法的实现。
  • 第8章“ DQN扩展”,详细介绍了DQN方法的最新扩展方法,以提高其在复杂环境中应用的稳定性和收敛性。
  • 第9章,加快RL方法的速度,概述了使RL代码执行更快的方法。
  • 第10章,使用RL进行股票交易,这是是第一个实际项目,其重点是将DQN方法应用于股票交易。
  • 第11章,策略梯度,(一种替代方法),介绍了另一种基于策略学习的RL方法。
  • 第12章,Actor-Critic方法,描述了RL中使用最广泛的方法之一。
  • 第13章,异步优势Actor-Critic,通过并行环境通信扩展了Actor-Critic方法,从而提高了稳定性和收敛性。
  • 第14章,使用RL训练聊天机器人,这是第二个项目,它展示了如何将RL方法应用于自然语言处理问题。
  • 第15章,TextWorld环境,介绍了RL方法在交互式小说游戏中的应用。
  • 第16章,Web导航,是另一个漫长的项目,它使用MiniWoB任务集将RL应用于网页导航。
  • 第17章,连续动作空间,介绍使用连续动作空间和各种方法的环境细节。
  • 第18章,机器人技术中的RL应用,介绍了RL方法在机器人技术问题中的应用。在本章中,我将介绍使用RL方法构建和培训小型硬件机器人的过程。
  • 第19章,Trust Regions– PPO,TRPO,ACKTR和SAC,是关于连续动作空间的另一章,描述了信任区域方法集。
  • 第20章,RL中的Black-Box优化,展示了另一组不使用其显式形式渐变的方法。
  • 第21章,高级探索,介绍了可用于更好地探索环境的不同方法。
  • 第22章,超越Model-Free,介绍了基于模型的RL方法,并使用了有关RL想象力的最新研究成果。
  • 第23章,AlphaGo Zero,介绍了AlphaGo Zero的原理方法,并将其应用于游戏Connect 4。
  • 第24章,离散优化中的RL,描述了将Rubik Cube作为环境,将RL方法应用于离散优化领域的方法。
  • 第25章,多智能体RL,介绍了针对具有多个智能体的情况下RL方法,这是一个相对较新的方向。

注:译者是一名机器人方向的在读博士,希望和大家共同进步!后续译文会陆续发布,工程浩大,可能历时较久,但是这是一件有意义的事情!谢谢支持!
20210120

你可能感兴趣的:(深度强化学习实践,强化学习,pytorch,机器学习,神经网络)