新書推薦: 《 
			20世纪20年代日本侵华研究(抗日战争专题研究)
			》  售價:HK$ 
			162.8
			  
			《 
			物联网漏洞挖掘与利用:方法、技巧和案例
			》  售價:HK$ 
			108.9
			  
			《 
			家族财富管理:永续繁荣的智慧体
			》  售價:HK$ 
			74.8
			  
			《 
			让我留在你身边升级新版
			》  售價:HK$ 
			61.6
			  
			《 
			中国地方政府债券蓝皮书:中国地方政府债券发展报告(2025)
			》  售價:HK$ 
			162.8
			  
			《 
			我在东汉学伤寒 全两册  仲景医案解读《伤寒论》
			》  售價:HK$ 
			63.8
			  
			《 
			消息(贾平凹新书,长篇笔记体小说)
			》  售價:HK$ 
			75.9
			  
			《 
			长安四千年:都城史视角下的王朝兴衰史
			》  售價:HK$ 
			184.8
			  
			 
     
      
      
         
          編輯推薦:  
         
           
            一句话推荐
 
         
      
      
      
      
      
         
          內容簡介:  
         
           
            本书作者创办了自己名字命名的研究型公司,本书涵盖了从基本的构建模块到最z先进的实践。通过本书,你将探索强化学习的当前状态、关注工业应用、学习大量算法,本书还有专门章节介绍如何将强化学习的解决方案部署到生产环节。这并不是一本随用随翻的工具书,书中包含很多数学知识,并期望读者是熟悉机器学习的。
來源:香港大書城megBookStore,http://www.megbook.com.hk  
         
      
      
      
      
         
          關於作者:  
         
           
            Phil Winder博士是一名多学科交叉的软件工程师、作家和科技顾问,同时也是温德研究所的CEO。该研究所主要提供云计算科学咨询,主营业务是帮助初创公司和大型企业改进数据流程、平台以及产品。作者于英国赫尔大学获得电子工程硕士和博士学位,现居英国约克郡。译者介绍邹伟,睿客邦创始人、国内资深AI专家,擅长利用AI技术解决工业、工程中的复杂问题。华东建筑设计研究总院研究员、山东交通学院客座教授、天津大学创业导师、中华中医药学会会员,领导睿客邦与全国二十多所高校、国企建立了AI联合实验室,完成50多个深度学习实践项目,目前已出版多本机器学习、深度学习领域的专著和译著。
           
         
      
      
      
      
      
         
          目錄  
         
           
            目录
 
         
      
      
      
      
         
          內容試閱  
         
           
            前言强化学习(Reinforcement Learning, RL)是一种能够优化序列决策的机器学习(Machine Learning,ML)方法相比较于其他机器学习算法,强化学习模仿了人类的学习方式。在骑自行车或参加数学考试的过程中,人类会本能地对其中的一些策略进行学习,从而解决这些复杂的任务。强化学习算法则是以同样的思路,通过与环境进行交互来学习相关的决策策略。近年来,各大公司通过机器学习算法实现了很多成功的决策。算法会利用海量的数据进行训练,以便做出当前的最z佳决策。但是从长远的角度来看,当前的正确决策并不一定是最z好的。就像吃完满满一桶的冰激淋,虽然能在短期内获得爽快的感觉,但接下来要做很多运动才能消耗掉这些热量。同样,如果一个公众号经常弄一些标题很唬人的文章,可能会在短时间内带来很高的点击率。但因为这些标题党行为降低了用户的信任度,所以从长远来看,反而会造成大量的用户流失。强化学习的出现之所以令人欣喜,是因为它可以进行长期策略的学习,并在复杂的实际问题中进行应用。实际的项目中会使用较为直观的指标来衡量,如利润、用户数量和留存率等,而不是使用工程技术中的术语,如准确性或F1 值。简而言之,许多项目的成败取决于是否采用序列化决策,强化学习正是用这种思路来解决这些问题的,而不是机器学习。本书的创作缘由写这本书的原因在于,目前有很多不错的项目案例都使用了强化学习技术去解决那些看似无法完成的任务。不过,这些例子几乎都来自学术论文中。而且,市面上的很多相关书籍要么是只针对学术界,要么是只有一些简短到几乎无法实际应用的代码。似乎从来没有人以工业界的角度,来阐述如何在实际生产环境中使用强化学习技术。强化学习这项技术事实上非常强大,所以打算写一本书来介绍如何在实际应用中使用强化学习。一开始的时候,主要的注意力都集中在项目实战中。但很快便意识到,在工业界几乎没有人听说过强化学习,更遑论生产应用了。此外,在进行读者调研时,发现许多工程师更是从未了解过强化学习的基本逻辑。因此,这本书最z终变成了现在这样:一部分是关于基本理论的解释,另一部分是关于工程实践的方法。希望这本书可以启发更多的人去在工业生产环境中使用强化学习。相信这是市面上第d一本讨论如何在实际生产中使用强化学习的书,当然也是目前唯一一本将算法理论和实际应用相结合的书。本书面向的读者对象这本书的目的是促进强化学习在工业界中进行应用。如果公司正在打造一款以强化学习为核心的产品,那么无论身处在算法岗、开发岗或运营岗,都可以从本书中学到相关知识。书中介绍了很多业内的实际案例,并不只是面向学术界的读者。成书原则和行文风格根据以往的写书经验,本书设定了以下若干个原则。第d一个原则,本书很少罗列大段的代码。在大多数情况下,纸质书都不应该是堆砌代码的地方,当然,编程语言类的工具书是个例外。不罗列代码似乎违背了传统意义上计算机书籍的理念,但就个人而言,纸质书上一页又一页的代码着实令人讨厌。读书是为了获取名词概念的解释以及作者独到的想法或见解。本书不堆砌大篇幅代码的另一个原因是,许多强化学习算法的实现过程非常复杂(特别是在本书后半部分的章节中),其中必然会涉及很多细节。如果不停地对这些细枝末节进行解释的话,往往会干扰到主要思想的阐述。对于这些代码,无论在学术界还是工业界,大家通常都会使用封装好的库,当然还有些算法还没有现成的库(因为它们比较新或太过复杂,无法合并到标准库中)。虽然程序员们常说“废话少说,放码过来”,译注1 但本书的重点依然会放到算法思想的阐述上来,并尽量减少代码所占的篇幅。不过,这并不意味着本书一点代码也没有。每个章节最z后的附录和代码库的链接中,包含许多实际案例、操作指南、使用评价、论文集和更多其他内容(请参阅前言的“补充资料”)。这样,正文部分就可以给算法的核心内容留有足够的空间,甚至还可以有地方写个小笑话。请放心,在读完本书之后,绝对会赞叹本书内容的深度和广度,并欣赏这种做法。第二个原则是关于数学原理。强化学习的推导是一个高度数学化的过程,因此用几行公式去解释一个算法,就要比几十行代码容易得多。虽然数学有时看起来像一门陌生的外语,但就像任意一门编程语言,数学语言也有其特有的语法、假设、定理和公理(类比一下,“公理”是不是有点像计算机语言中的“内置函数”)。不过,为了完全弄清楚数学推导,首先必须了解那些独特的数学符号和描述方法。所以本书并不会去刻意回避数学表达,特别是在解释强化学习的基本算法原理时,因为数学就是这些算法的重要组成部分。不过,本书会尽量不使用数学符号。如果实在无法避免,会在一旁附加一些文字释义。本书会通篇遵循Thomas、Philip S.、Billy Okal 在《马尔科夫决策过程中的数学记号》(第1 版)中的符号表达,但也会对一些数学符号进行简化,从而使表述更为清晰。第三个原则,相比于其他强化学习的书籍,本书更关注的是最z优化的实践方案和工程效果。至于强化学习的学术理论研究等方面,本书通常是罗列一些相关论文。这些论文会作为本书的参考文献部分,通过整理和总结所有的相关研究内容,以便你对最z新的研究进展有一个更好地把握。当然,也会尽量平衡本书内容的广度和深度。如果你是一位大学教师,可能会觉得本书内容深度不够。你也可能是一位业内专家,或者只是一位刚刚学会编程的电脑新手。本书无法满足所有人的需求,所以对内容进行了尽可能的折中。通过不断地调整正文部分和扩展内容,能让你在获得足够多信息的同时,又能防止复杂的阐述导致的焦虑。如果想更深入地了解某些特定的研究方向,请参考相关文献和其他书目。如果在阅读中感到内容有些吃力,请放轻松,慢慢来。书中提供了很多其他资源的链接,这些链接应该可以提供帮助。第四个原则,本书会尽量指出已有的算法模型中可能存在的陷阱或错误。有些人可能认为强化学习有很多缺陷,不值得信赖和推崇。但是强化学习既然已经形成了基本的体系,而且整体上是较为完备的,那么它就是值得信赖的。对于一项具体任务中可能存在的未知风险和困难,是有必要进行充分了解的,这样可以防止轻易地做出承诺,并留出足够的项目时长。当然,这本书不是在介绍正儿八经的软件工程。不过,当在书中看到“困难与失败”或“如何改进”等字眼时要提高警觉,因为这些字眼下都是很关键的信息。常言道:“失败乃成功之母。”阅读本书的前序知识大家总觉得强化学习是一个很高级的话题,当然,这是因为还没有真正地踏入这个领域。为了方便阅读,建议提前掌握一些数据科学和机器学习的知识。如果能再学习一些数学知识就更好了。但如果不了解这方面的内容也完全不用担心,书中会对这些内容进行详细介绍。本书还提供了很多扩展阅读的参考书目和链接,并对一些辅助性的概念进行了解释,相信这些附加内容会帮助你补充大量知识。概览与大纲本书的范围涵盖了把强化学习应用于生产的全过程。首先,需要学习的是强化学习所包含的基本框架。接下来,将按照此框架来了解强化学习中的基本算法。然后就可以学到更多的高级算法,这些高级算法能实现更强大的功能。接下来需要学习如何将这些算法应用到实际问题中。最z后,需要设计一个鲁棒的系统,使其在操作上方便可行。下面是本书遵循的技术路径,建议你按照顺序阅读,不要跳跃章节。每一个章节都建立在之前章节的基础上,所以如果跳跃阅读,可能会错过一些东西。如果你只想阅读某些感兴趣内容的话,在必要时文中会给出前述内容的页码供你翻阅。下面是简洁而又丰富的章节介绍:第1 章 强化学习概述本书从强化学习的历史、背景等问题中娓娓道来,并介绍相关学科所带来的启发。本章会奠定强化学习的认识基础,并提供强化学习中多种类型算法的概述。第2 章 马尔可夫决策过程,动态规划,蒙特卡洛方法从这一章开始加大难度,你一定要把本章的概念细致的搞清楚。本章定义了强化学习的基本概念,包括马尔可夫决策过程、动态规划和蒙特卡洛方法。第3 章 时序差分学习,Q 学习和n 步算法在本章中,你将了解到非常重要的“价值函数”的基本思想。价值函数会对每一个特定的状态进行评价并给出评价值,这一重要概念确定了当代强化学习运作的基本方式。第4 章 深度Q 网络很多经典的算法都是将价值函数与深度学习相结合而诞生的,随着深入研究DQN 网络,肯定会对其算法的性能感到震惊。第5 章 梯度策略除了第3 章介绍的价值函数的方法,在本章将会了解到第二种广为流行强化学习算法:策略梯度。它可以直接对策略函数进行优化。策略梯度与价值函数的区别在于它可以直接对策略本身建立函数表达式,这样就可以处理连续性的行为。第6 章 超越策略梯度原版策略梯度算法存在一系列的问题,本章将指出并解决这些难题。为了提高算法效率,可以将离线训练方式加入到策略梯度算法中。第7 章 用熵方法学习所有可能的策略信息熵已被证明是足够鲁棒的,通过它能够让模型学习到复杂的策略行为,例如汽车的自动驾驶或交通管制。第8 章 改进智能体的学习方式本章的关注点从核心算法转移到算法外围,通过研究外围辅助部分来帮助解决困难问题。本章将重点介绍强化学习中构建马尔可夫决策过程的多种不同的思想方法。第9 章 强化学习实践本章和第10 章会构建一个实际可行的强化学习系统。在本章中将指导你设计一款工业级强化学习产品,包括实际步骤、决策设计和最z终实现等。第10 章 强化学习的生产部署本章给出了在实际生产中,关于强化学习产品运维方面的一些切实可行的方法和建议。深入研究关于如何增强产品方案的可扩展性和鲁棒性的架构设计,以及需要注意的关键问题。第11 章 结论与展望第11 章并不只是简单的总结,它包含了丰富的实用技巧,这些技巧在之后的强化学习探索之路中非常实用。同时,这一章中也给出了一些关于未来研究的探索和建议。补充材料我创建了网站https://rl-book.com 来整理本书中所有的补充材料。该网站包含算法代码、扩展阅读的文章列表、强化学习技术路线的对比、当前案例的数据库等众多内容。参见前言的“成书原则和行文风格”,解释了为什么本书中没有大量代码。之所以要创建一个完整的网站,而不是只创建一个代码库,是因为作者相信强化学习不仅仅是代码。作者认为,强化学习是一种能改变人们思维模式带来新思考的算法。比如,策略是如何产生长期影响的?强化学习是一套全新的技术方案,它需要一个完全不同的架构。由于以上种种原因,这些网络补充材料不只是罗列代码,也不适合纸质印刷。因为强化学习技术可能变化很快,纸质的印刷只会导致效率低下。所以,我创办了这个综合性的材料信息网站,相信你很快就会发现它的价值。建议你要去浏览一下这个网站,而且如果有什么新的材料需要补充,请联系作者。排版约定本书使用了下述排版约定。斜体(Italic)表示新术语、URL、电子邮件地址、文件名和扩展名。等宽字体(Constant Width)表示程序片段,以及正文中出现的变量、函数名、数据库、数据类型、环境变量、语句和关键字等。首字母缩略词强化学习中充满了首字母缩略词,特别是在谈到算法实现时。书后提供了这些术语的完整列表,并对其中的关键术语做了解释。数学记号一般来说,本书会遵循Thomas、Philip S.、Billy Okal 在《马尔科夫决策过程中的数学记号》(第1 版)中提供的表达符号,但也经常会出现一些简化表达。比如去掉公式中的时间下标,使用撇号表示当前和下一个等。对于严格完整的数学表达,请参考学术类教科书和相关论文。一般来说,花体字母表示一个集合,小写字母表示集合中的一个元素,撇号表示下一个回合,大写字母表示函数或常量。很多算法是需要用到索引或下标的,通常算法利用下标进行数据索引。所以,当讲解到这些算法时,书中也会用下标来表示索引。例如,at 表示在时间或位置t 处的行为。如果遇到不熟悉的公式,不用着急,慢慢读就是。首先理解每个符号代表什么,然后搞明白这个等式要做什么。就像学习任何一项技能,熟能生巧。对了,等号上面多个点,即“被定义为”。在阅读算法时,建议按照算法顺序来阅读。在必要时,书中会使用文字对程序进行描述。但在大多数情况下,用公式符号会比文字更加简洁。符号←在算法中表示“更新”,相比于=,更推荐使用这个箭头符号。因为从技术上讲,等号= 表示数学上是相等的,在程序中也常用== 来表示相等。但以往很多程序语言中,没有很好对这种表示进行区分,用等号= 既表示定义,也表示更新,容易造成混乱。书中选择用伪代码来演示算法,而不是用某种编程语言。我思考了很久用什么语言,但最z终选择用伪代码主要有三个关键原因。第d一,所有的学术文献都是用伪代码来描述的。既然希望这本书成为工业和学术界之间的桥梁,如果选择了某种项目工程的语言风格,反而会拉大工业界和学术界的分歧。第二,由于书中使用了很多数学公式,使用伪代码来表达这些算法会显得更简洁。如果使用编程语言来表示这些数学运算,将会出现大量的for 循环和临时变量。第三,伪代码非常简单基本上不太会犯错。虽然书中已经对数学运算进行了简化,但使用伪代码显然可以更简洁。贸然将论文上的算法用编程语言来表示,是会引入很多bug 的。