【强化学习】第一章:强化学习知识体系介绍

76 阅读35分钟

强化学习

说明:早在2015年,谷歌DeepMind团队负责人大卫·希尔弗(David Silver),就在youtube上发布了一套他主讲的强化学习视频公开课,这套课程系统、全面地介绍了强化学习的各种思想、实现算法,里面既有理论推导,还有很多有趣的小例子帮助理解,对于理解强化学习来说是一套非常好的入门教程。我同样也不例外,本系列文章也是参考这套课程体系整理而来。在此感谢前辈!致敬前辈!

youtube上的David Silver公开课的链接地址是:www.youtube.com/watch?v=2pW…

国内bilibili上中英文字幕原版视频:www.bilibili.com/video/BV1o6…

国内北邮鲁鹏老师的课程体系:www.bilibili.com/video/BV16Y…

视频里所使用的讲义下载地址:www.cs.ucl.ac.uk/staff/D.Sil…

强化学习鼻祖Rich Sutton和Andew Barto出版的强化学习书:incompleteideas.net/book/RLbook…

另外,网上还有一些其他大神的强化学习课程,大家可以参考:
首推:西湖大学赵世钰老师的视频:www.bilibili.com/video/BV1r3…

斯坦福大学的CS234 Reinforcement Learning中英文视频:www.bilibili.com/video/BV1Hr…

吴恩达强化学习教程:www.bilibili.com/video/BV1fd…

李宏毅强化学习系列课程:www.bilibili.com/video/BV15h…

【强化学习】第一章:强化学习知识体系介绍

本章节主要是从科普角度浅尝辄止的认识一下强化学习领域的常见名词和概念,对强化学习有一个整体轮廓的认识,这样你此后才能有的放矢的继续深入学习近年来强化学习的理论研究和算法应用。

一、强化学习简介

1、什么是强化学习
强化学习,Reinforcement Learning,简称RL,是机器学习的一个重要分枝,其核心思想是让智能体通过不断与环境交互,并根据所获得的回报来调整策略,从而实现学习。

强化学习经常被应用于棋牌游戏等领域,其封神之战是2016年Alpha Go与李世石的围棋大战。虽然此后的AlphaZero、AlphaStar、AlphaFold也都是里程碑式事件,但无耐被彼时NLP领域的大模型盖过了风头,因为人们普遍认为可以和人类进行自然语言交流才是真正的通用智能,而打游戏下围棋只是记住了更多的战术规则而已。另外在业内大佬的导向、资本的鼓吹下,大模型的光辉在舆论上把强化学习给彻底淹没了,强化学习进入了无人问津的黯淡期。事情的转机是2025年deepseek的强势崛起,引发了资本市场的极大轰动,而deepseek就使用了大量的强化学习技术,这才迫使主流学术界开始重新评估强化学习的潜力,强化学习才重新回归大众视野和主流学术。

下面我按照时间顺序,详细梳理一下强化学习发展过程中标志性或里程碑式事件,从中我们也可以清晰看到强化学习具体是做什么的,我们要学强化学习究竟是要学什么的。

2、强化学习的发展历程
强化学习不是新事物,是一门由来已久的学科。下面我们从计算机与人工智能整个发展史来梳理强化学习的发展脉络:

(1)思想启蒙阶段
1904-1990:斯金纳(B.F. Skinner)的操作学习论(operant learning theory)。
斯金纳是一个行为主义心理学家,操作性条件反射理论由斯金纳用小白鼠进行实验总结而来。他创制了研究动物学习活动的仪器――斯金纳箱。

1949年:唐纳德·赫布(Donald Hebb)的学习机制:"用进废退"的神经连接理论。
唐纳德·赫布也是一位心理学家,他提出了著名的赫布理论,该理论描述了神经元突触的可塑性,就是突触前神经元对突触后神经元进行反复且持续的刺激,便可以增强突触之间的连接。也就是说大脑具有能够根据经验(包括学习、思考、记忆乃至创伤)进行自我调整和重塑的能力。

1950年,图灵(Alan Turing)的《计算机器与智能》论文首次提出了基于奖惩机制的机器学习方法。这一理论通过外部反馈信号(奖励或惩罚)来驱动机器学习过程,为后续强化学习研究奠定了理论基础。图灵大神就不多说了。

(2)前期萌芽阶段
1951年,人工智能奠基人马文·明斯基搭建了世界上首个神经网络模拟器——‌Stochastic Neural Analog Reinforcement Calculator(SNARC),利用SNARC,明斯基成功解决了“老鼠走迷宫”的问题,让系统通过反复试错学会了在迷宫中找到出口。这是强化学习机制在硬件层面的早期实现,也被视为历史上最早的神经网络实例之一。

1954年,法利和克拉克在IBM 701商用计算机上构建了一个由128个神经元组成的网络,利用强化学习式的反馈机制进行训练。成功的响应增强连接权重,错误则减弱,实现了神经元连接的自我调整。尽管模型本身较为初级,但它验证了在计算机上实现强化学习的可行性,将强化学习从物理装置过渡到程序模型

1956年,IBM研究员阿瑟·萨缪尔跳棋程序,挑战康涅狄格州跳棋冠军罗伯特·尼利虽败犹荣,1962年再战成功击败对手,标志着AI系统首次在复杂任务中击败人类专家,也成为强化学习的标志性成果。萨缪尔还将机器学习(machine learning)一词带入公众视野。

(3)奠基强化学习的理论基石阶段
20世纪50至70年代,强化学习的实践虽频繁,但大多停留在神经机制的模拟层面,缺乏系统性的理论探索。直到20世纪80年代,强化学习才迎来真正的理论奠基者————安德鲁·巴托(Andrew Barto)与理查德·萨顿(Richard Sutton)这对师徒。其中巴托学的是数学与计算机科学,萨顿是主修心理学的,二人联手推进强化学习的理论化进程。萨顿负责提出创新构想,巴托则以扎实的数理功底将其形式化为可操作的数学模型。他们共同发表了大量开创性论文,提出了时序差分学习演员—评论家模型等核心理论,奠定了强化学习的理论基石,让强化学习真正成为一门独立的学科
此处鼓掌:2025年图灵奖得主就是这师徒两人,奖励二人在强化学习领域的开创性贡献。这是学术界对强化学习的肯定和预判。
此处记住:上面提到的两个模型,也是入门强化学习的必备基础,后面我们都要展开详讲。

1989年,沃特金斯(ChristopherJ.C.H.Watkins)提出了基于时序差分的无模型强化学习Q-Learning(Q学习)算法,成为强化学习历史上的里程碑之一。所以Q-Learning也是入门强化学习的必学算法

1997年IBM的深蓝战胜国际象棋世界冠军卡斯帕罗夫(GarryKas parov),成为人工智能发展史上的又一标志性事件。

(4)当强化学习遇上深度学习:深度强化学习
进入21世纪以后,计算机软硬件技术突飞猛进,尤其是GPU的广泛应用,大幅降低了多层神经网络的训练成本。深度学习全面开启,多层神经网络也迅速成为机器学习的主流建模方法。与此同时,深度学习的浪潮很快也席卷到了强化学习领域。

2013年,谷歌DeepMind首次将卷积神经网络(CNN)与Q-Learning相结合,用CNN来逼近Q函数,这一结合产出了著名的DQN(深度Q网络,DeepQ-Network)。为了验证DQN的能力,研究者让它代替人类去玩Atari游戏。每个游戏中,都直接将像素图像作为输入,游戏得分作为反馈信号,通过DQN进行学习。结果显示,在多数游戏中,DQN的表现达到了甚至超越了人类水平。DQN展现了深度学习与强化学习结合的强大力量,自此深度强化学习迅速成为AI领域的宠儿,大量研究者蜂拥而入,先后提出了A3CPPOTRPODDPG等一系列重要的算法框架。其中PPO(Proximal Policy Optimization)是现在最经典的方法,现在大部分应用里面都在用PPO,我们后面也会单独讲这个算法。

2016年,真正让大众见识到深度强化学习"力量"的是一场划时代的围棋大战:AlphaGo与围棋世界冠军李世石比赛,以4:1的总比分获胜,和柯洁的比赛4:0获胜。围棋的策略空间远远超过象棋与跳棋,其复杂度甚至超出了人类可计算的范畴。围棋中无法简单套用规则或博弈论模型来保底获胜,因此,AlphaGo的胜出标志着AI在真正意义上掌握了高水平智能策略。从AlphaGo模型结构上看,它采用了深度神经网络来逼近策略函数和价值函数。在训练流程上,它首先通过监督学习学习了大量人类棋谱,从中掌握了经典套路和落子思维;接着,它通过与自身对弈的方式,即"自我博弈",进行大规模的强化学习训练。在这种“左右互搏”过程中,它不断修正策略,最终棋艺超越人类顶尖高手。

2017年,DeepMind又公布了新一代的围棋AI程序——AlphaZero。与AlphaGo不同,AlphaZero完全没有接触过人类棋谱,它的全部训练过程仅基于围棋的基本规则,然后通过纯粹的自我对弈进行强化学习。最初,它的落子几乎是随机的,但随着学习的深入,其棋艺迅猛增长,并最终以压倒性优势击败了AlphaGo。更令人惊叹的是,AlphaZero的强化学习思路极具通用性。与AlphaGo只能用于围棋不同,AlphaZero可以快速适应多种规则系统

(5)强化学习进入暗淡期
2019年,DeepMind就推出了一款专门玩星际争霸AlphaStar,说明深度强化学习在打仗方面也能学到大师级的水平了。

2020年,DeepMind又将AlphaZero思路迁移到了生命科学领域,开发出用于蛋白质结构预测AlphaFold系统,利用深度强化学习技术,准确地预测了蛋白质的三维结构,被认为是生物医学领域的一个里程碑式的进展。

虽然强化学习在游戏以及棋牌领域都取得了叹为观止的成就,但是自2018年OpenAI推出首个真正意义上的大语言模型GPT以来,很多资深的人工智能学者都对强化学习的前景表示不看好,尤其是深度学习之父Hinton就曾半开玩笑地说:"我们应该把强化学习排除在机器学习之外。作为机器学习的第三种范式(前两种是监督学习和无监督学习),它似乎并不太有效。",业内普遍认为会玩游戏和棋牌,只是因为掌握了更多的棋谱和战术规则,并非真正意义上的智能,而会同人类进行自然语言交流才是真正的通用智能。于是各大资本以及主流学界纷纷押宝大语言模型,此后就是我们看到的,各大语言模型你方唱呗我登场,眼花缭乱热闹非凡,一时间,在公认的规模定律(Scaling Law)的光芒下,强化学习进入了被大家遗忘的暗淡期。

2021年,面对时代大潮,强化学习的奠基人萨顿与AlphaGo系列的负责人大卫·希尔弗(David Silver)一起发表了一篇论文题为《Reward is Enough》,虽然这个标题本身就传达了萨顿的坚定立场和信念,但是在资本已经深入布局了语言大模型的背景下,舆论风向根本不站萨顿这边,人们更多的是戏虐这是对Transformer的《Attention is Enough》的跟风,所以也并没能重新竖起强化学习的舆论大旗。

(6)强化学习回归主流
可能连萨顿自己也未曾预料到,拯救强化学习声誉的,竟然是一股来自东方的力量:2025年1月,DeepSeek一经面世,便凭借与国际顶尖大模型比肩的能力赢得了全球用户的青睐。更令业界震惊的是,它的训练与运行成本远低于同类模型,性价比之高被许多业内人士称为“不可思议”。DeepSeek究竟是如何做到的?一个重要原因就在于:它在训练过程中大量应用了强化学习。它不仅在长链思维任务中完全摒弃了传统的有监督微调方式,转而全面采用强化学习方法,还创新性地提出了“群体相对策略优化”(Group Relative Policy Optimization,简称 GRPO)算法,以取代主流的PPO方法。这一系列策略上的突破,不仅让DeepSeek成为中国AI能力的集大成者,也向世界再一次展示了强化学习的强大生命力。

有意思的是,DeepSeek成功之后,关于其训练过程也衍生出了不少传说。其中一个流行的说法是:之所以他们能放弃成熟的PPO而自创GRPO,是因为团队中一位关键成员此前并未系统学习过强化学习,而是在摸索中不断试错,最后“误打误撞”地发明了这一新算法。这个故事真假难辨,但若其属实,倒也颇具象征意义——一个没有参考经验、完全依赖探索与反馈进行学习和优化的过程,本身就是对强化学习精神的完美诠释。

更值得一提的是,2025年,强化学习奠基人安德鲁·巴托(Andrew Barto)和理查德·萨顿(Richard Sutton),因在强化学习领域的开创性贡献而获得了2025年的图灵奖。这说明在历经多年争议和暗淡期后,强化学习又重新获得了主流学界的认可。
事实上,即使在喧嚣的大模型光辉下,强化学习一直都在默默蓄力,尤其是随着强化学习与深度学习的进一步融合,今天我们看到的机器人手臂控制、机器人训练、无人驾驶、自然语言对话系统、计算机视觉、智能推荐等领域其实都有它的身影和传说。当下人们逐渐意识到,强化学习和深度学习的结合,才更接近通用的人工智能

3、强化学习在不同领域的叫法

4、强化学习与机器学习
首先是人工智能包含机器学习,机器学习又分三种范式:监督学习、无监督学习、强化学习。

所以强化学习是机器学习的第三种范式,是机器学习的重要分支之一。但是强化学习和监督学习和无监督学习的底层逻辑完全不一样
监督学习是通过带有标签的数据学习数据中固有的规则,通常指回归、分类问题等算法。无监督学习是通过无标签的数据找到其中的隐藏模式,通常指聚类、降维等算法。而强化学习则是通过交互的一种目标导向学习方法,旨在找到连续时间序列中的最优策略。

5、强化学习不同于其他机器学习算法的特点
通俗的类比:监督学习就是给小朋友一堆贴好标签的水果图片,教他们识别水果。所以监督学习的最大特点就是有标签,就是我们常说的样本的标答。无监督学习就是让小朋友对这堆水果进行分类。所以无监督学习是不需要标签的。就是让小朋友(算法)自己去发现类类别,比如有的小朋友发现可以按口味分类,有的小朋友发现有大小不一样的规律,可以按大小分类,有的甚至按水果的颜色来分类的。
强化学习则是给小朋友一张水果图片,让他们猜名字,答对了就给糖吃通过这种激励机制训练他们识别水果。这个逻辑是通过收益最大化(就是吃到更多的糖)来实现学习(认识水果)的。这和我们打游戏下棋牌非常类似,我们不在乎游戏或者下棋中的每一次落子,我们只在乎最终的结果,我只需要最后的结果是赢棋即可。

所以强化学习和监督学习、非监督学习的底层逻辑完全不一样,它有其自身的特点:

可见:
(1)强化学习压根就不是一个监督问题,强化学习有的只是一个奖励reward信号。所以,一般情况下,强化学习是不需要传统意义上带标签的样本数据进行训练的。
(2)奖励信号reward不是实时的。比如围棋中的每一次落子,你不可能当时落下当时就给这一步打一个评估标签,因为每一步的评估都不可能在落子的那一刻就能被评估出来了,只有当一局棋已经全部下完后,才能复盘出当时每一步落子的标签。
(3)强化学习的每一步都不是一个独立同分布的样本,是有极强的时序依赖性的。比如围棋中每一步落子都会影响它的下一步、下下一步、甚至此后的多步,我们还会为了此后的棋局甚至牺牲当前落子的reward。

所以强化学习本质上是奖励信号驱动的试错学习。也所以它自成一派,称为机器学习的第三范式。

6、强化学习的致命问题
从上面分析强化学习的特点中,我们可以看到强化学习的致命问题是:相较于监督学习,强化学习在训练中会表现出非常不稳定的现象

比如对于一个监督学习问题,只要训练样本一样、模型架构一样,那不管是张三还是李四去训练这个模型,张三和李四最终的训练结果都会大致一样,但是强化学习训练就不一样了,由于智能体(Agent)当前的动作(Action)对后续连续很多步都会有极大的影响,所以训练过程中算法的稳定性非常差,不是随便一个人都能训练好并得到较为一致的训练结果的。这也是我们未来在强化学习中遇到的最大问题。

二、强化学习中的基本概念

为了通俗易懂,本部分我都以围棋为例,所以你要必备一点点围棋的常识:

强化学习的概念是:强化学习是在与环境的互动当中,为了达成一个目标而进行的学习过程。所以也称为Goal-directed learning from interaction with the environment.

(一) 从这个概念我们可以看出强化学习的第一层结构,这层结构包含以下3个基本元素
1、Agent,是指与Environment进行互动的主体。中文有五花八门的翻译,有叫智能体、主体、代理、特工、玩家等等的各种翻译,这里我们不纠结中文翻译,你随意。
2、Environment,是环境的意思。
3、Goal,是目标的意思。
这层结构非常通俗易懂,因为我们生活中有很多这种场景,比如打一个游戏、比如下一盘围棋,这些场景基本都适用这个框架

(二) 但是,你再继续深入思考,比如下围棋,在第一层框架下,整个对弈过程是不是又可以细分为StateActionReward这3个主要元素多次重复循环?!所以强化学习的第二层结构是:

1、State:是指agent和environment首先都是要处于某种状态的,这个状态就是state,而且这个状态的含义非常广泛,比如如果说这个游戏是一场篮球比赛,那这个状态就应该包括所有球员的位置、速度、球在谁手上、甚至地板滑不滑等等,都是状态。如果说是围棋比赛,围棋棋盘上共有的这361个落子点,每个落子点有黑棋、白棋、空三种状态,那么整个围棋的状态(state)在理论上就是有3的361次方种状态!所以,一系列的、离散的状态(state)就构成了一个连续的Environment。

2、Action:就是行动。比如围棋中的action就是落子。一行动,state就同时改变。state变化了,反过来会影响下一步的action。所以state和action的往复就构成了强化学习的主体部分

3、Reward:就是我们前面说的强化学习本质上是基于奖励信号驱动的试错学习中的奖励信号的意思。reward也有多种翻译:奖励、奖励信号、即时奖励、反馈、反馈信号、即时反馈等等,这些都是reward的意思。指的都是agent在某个state下采取了特定的action后,所得到的即时反馈。或者说是Agent在时间步t的奖励Rt。在强化学习中reward是一个标量,也就是一个实数。

这里我们首先是要理清reward和Goal的关系;其次是要牢记强化学习的工作就是最大化累计奖励
奖励(reward)是一个即时的反馈,而目标(Goal)是一个长远的结果,你可以把reward看作是对整体目标(Goal)的一个拆解。所以强化学习的目标Goal都会被描述成最大化期望的累计奖励
Reward和Goal都是一个人为设定的规则,比如在围棋比赛中,Agent的goal是赢棋,reward就是一局棋牌结束后、出现输赢结果后,对这一局棋中的每一步落子的打分。比如我可以设定Goal是赢棋为1,和棋为0,输棋为-1。那么Reward就是一局棋牌结束后,这轮对弈中的Rt是每一次落子对Goal的贡献。我们也可以人为规定在对弈过程中,吃掉对方的子的action可以得到10的reward,被对方吃子的action得到的reward是-10,既不吃也不被吃的reward是0。智能体Agent在博弈过程中的每一步action都是追求最大化总的奖励Reward。所以如果在对弈过程中,吃掉对方的子也进行reward,那么强化学习的结果就会倾向于吃掉对方的子。但是围棋的获胜条件是围地并非吃子!所以你过分奖励吃子,也可能会输棋,所以我们要根据最终的目标(Goal),合理的设置奖励,这对强化学习是非常重要的。

(三) 继续解剖深思,强化学习底层其实还有一股强大的无形力量,这层逻辑表面上看不见摸不着,但其实它才是强化学习的核心和灵魂,那就是强化学习的第三层结构,它包含2个核心元素
1、Policy:我们翻译为策略,是指在某一个状态(state)下应该采取什么样的行动 (action)。从数学角度看,策略就是一个函数,所以也叫策略函数,这个函数的输入是一个状态(state),输出就是一个行动(action)。比如在围棋中就是把当前的棋盘状态喂入策略函数,策略函数则会返回一个action,也就是告诉你下一步应该在哪里落子。显然如果有一个好的策略函数,就是一个好的Agent。假如我们能拿到AlphaGo的策略函数,我们就可以知道它下一步如何落子,进而打败它了。那么问题来了,我们如何能得到一个好的策略函数呢?通过价值函数的牵引,训练而来的。其中的价值函数就是下面的Value元素。

2、Value:翻译为价值,是指预期将来会得到的所有奖励(reward)之和。所以value也是一个函数,叫价值函数。这个函数的输出是一个期望值,就是在将来能够得到的所有奖励的期望值。
价值函数根据不同的输入,通常分下面两种价值函数:

第一种是状态价值函数,State Value,顾名思义,它的输入是一个状态,输出是这个状态的期望值。也就是说,价值值就是,处于当前这一状态的情况下,玩家(agent)在将来能够得到的所有奖励的期望值。而agent的目标(Goal)就是得到的奖励之和尽可能的最大,所以通过状态价值函数,玩家应该选择进入价值尽可能最大的状态,而这个状态又是通过特定的行动(action)来实现的。也所以此时策略函数是取决于价值函数的。

第二种是状态行动价值函数,State-Action Value,顾名思义,它指的不单单是一个状态所对应的价值,而是在特定状态下,采取某种行动所具有的价值,这个价值也是玩家(agent)在将来能够得到的所有奖励的期望值。所以在一个特定状态下,根据状态行动价值函数,玩家应该选择价值最大的那个行动,也所以状态行动价值函数决定了玩家的策略

所以,所以强化学习的核心就是如何去学习一个好的价值函数,然后通过这个价值函数的牵引,去训练一个好的策略函数,从而得到一个智能的Agent。所以,一般是一个好的价值函数可以决定一个好的策略函数。当然也有一部分算法可以不依赖价值value,直接学习策略,不过主流的或者说核心的强化学习算法通常都是基于价值函数的。我们以后学强化学习,主要学的就是价值函数和策略函数这两个核心元素。

三、强化学习的两个特点、一个核心

从上面我对强化学习的基本要素的描述,我们可以发现强化学习的特点:

特点1:Trial and Error,试错
强化学习是一种试错学习,也就是在不断的尝试中去学习。
策略是你在某种state下,你该怎么action是最好的。比如,棋谱就是一种策略,因为棋谱就是告诉你在什么情况下该怎么落子。而棋谱又是先辈们经过不断尝试不断对弈总结出来的。这个过程就是强化学习,就是在不断下棋的过程中,去学习哪一步棋的价值最大、在不同的情况下怎么落子。AlphaGo经历的也是同样的过程。所以强化学习就是Trial and Error,Trial and Error是强化学习的一大特点。

特点2:Delayed Reward,延迟奖励
还以围棋为例,玩家每一次落子的即时奖励Rt都是不知道的,直到最后获得胜利,复盘推演时才能给每一次落子打一个reward分值的。也就是说对弈过程中的每一次落子都是没有对应的即时奖励的,但是每一步的落子都是对最后的胜利是有贡献的,所以一个行动(action)可能没有奖励(reward),但是它一定有价值(value),我们是根据这个value来给每一个行动action打reward分的。而reward打分是得等到对弈结束后,也就是在玩家采取了很多其他行动(action)之后才实现,这就是delayed reward。那如何去学习过去的行动所具有的价值?这就涉及到Credit Assignment以及Backpropagation问题。在具体的强化学习算法中我们会看到。

也所以一局围棋结束后,不管是赢家还是输家,他们都会复盘,赢家复盘整个对弈过程中他的哪步落子对赢棋是至关重要的,输家复盘他的哪步落子是致命的,这就是Credit Assignment以及Backpropagation,这就是学习每一个行动(action)所具有的价值的过程。然后才是根据value给action打reward分,策略函数再根据reward调整下一轮博弈时的action输出,这就是一轮强化学习的整个过程。

强化学习的核心问题:Exploration vs Explotation
Explotation是“利用”,利用强化学习所学习到的价值函数。比如如果我们有了一个状态行动函数,那我们就可以根据这个函数做出价值最高的行动。但是我们学到的价值函数不一定就是最优的价值函数,有些看起来价值不是很高的行动,有可能真实的价值是最高的。所以我们不仅仅是要去利用已经学到的价值函数,还应该去尝试不同的行动,从而优化我们的价值函数,这就是Exploration,“探索”。
也所以如何权衡Exploration和Explotation是强化学习中的一个核心问题。
也所以AlphaGo的出现,给围棋界带来了很多前所未有的新定式、甚至是骚操作。

四、强化学习的整体架构

下图是对上面所有文字说明的图例解释,从中我们可以清晰看到一个完整的强化学习框架:

五、强化学习的分类

强化学习的分类也就是智能体(Agent)的分类

1、分类1:从算法角度分
上图的分类1是从算法角度的分类,或者说是指不同的技术路线。因为自从深度学习和强化学习融合后,强化学习领域就悄然分成了两个流派,一个是以DeepMind为代表的传统强化学习流派,一个是以OpenAI为代表的新贵流派。二者都是强化学习领域的佼佼者,都取得了很多亮眼的成绩。

传统的强化学习理论是从最优控制这套理论引进而来的,所以他们认为一个智能体都是要有价值函数的,必须要通过价值函数来判断哪个策略好、某个策略下哪步落子好。他们认为只有有了一个好的价值函数,自然就会得到好的策略,所以他们是可以没有策略函数但必须有价值函数

新晋的深度强化学习,主要以OpenAI为代表,这波人的背景主要是深度学习,所以当深度学习和强化学习融合时,这波人的做法是,他们直接丢弃了价值函数,它们上来直接就是策略搜索来优化动作(action,或者说落子),因为他们认为我的目标就是最好的action(落子),我就直接搜索最好的策略就好了,也就是优化了我的action,我不用优化价值函数。就类似有监督学习的思路。所以他们研发的智能体一般都没有价值函数,直接找最优策略

但是不管是OpenAI流派还是DeepMind流派,最后他们都不约而同的走向了同一个方向,那就是同时考虑价值函数和策略搜索执行者-评论者架构(AC架构),就是既要价值的优势,又要策略的优势,所以今后AC架构是未来的发展方向。当然顾名思义,执行者就是策略函数,评论者就是价值函数;价值函数是对策略的评估,策略函数是为了追求最大的价值。

2、分类2:从有无模型角度分
分类2是根据强化学习算法是否依赖模型来分类的。有无模型就是指强化学习是否有一套数学的描述工具,所以有模型的强化学习就只有MDP,就是我们根据模型,我们就可以知道状态是怎么转移的,然后就可以进行动态规划。这是有模型的情况,也就是状态转移我们是清楚的情况。但是大多数我们是不知道状态是怎么转移的,此时就需要无模型的强化学习算法。我们一般的学习路径都是先学有模型的,然后在有模型的基础上,再把强化学习泛化到无模型算法中,这样大家学习起来比较容易理解。

比如下象棋就是有模型的,我们只要在代码中写死棋牌的规则,智能体就自动有了state-action-reward这些要素了。在下象棋中,我们常说“能下一步看三步就是高手,能下一步看五步的是顶级高手”,智能体可以凭借其强大的储存能力,轻松的就可以穷举后面的三步或五步,所以是非常容易称为高手的。因为下了一步,后面的state有几种情况自然就已知了,下第二步后第三步的state也就自然就可以复现了,所以智能体可以轻松穷举出三五步中的最优策略(路径),成为顶级高手。这就是有模型的强化学习,具体说就是动态规划。

但是对于复杂的事情,比如打王者荣耀就没法一步看三步了,就需要智能体得去和环境交互,每交互一次就是采集一次环境的一些数据样本,也就是对环境数据的收集,然后再从这些样本中去寻找环境规律,预判出环境规律然后才在这个规律下做出相应的动作action。这种需要不断和环境交互的学习问题,就是无模型的强化学习。此后我们讲的多数是无模型的强化学习。所以在强化学习中会不断强调环境的作用,因为强化学习就是在环境中不断试错的行为,就是智能体是不断在试错的过程中找到环境的规律(也就是说总结经验或者策略),然后在总结的环境规律(经验或策略)下做出最好的行动action。不断反复,智能体也可以在王者荣耀中从小白逐步成长为高手了。

AC架构可以是有模型的也可以是无模型的,但大多数情况是解决无模型问题的,因为有模型的已经有工具了,就是动态规划,我们用动态规划就可以轻松解决了,就不需要强化学习了。

啰嗦了很多,总结一句话就是:有模型是规划问题(Planning),对应的是规划学习,无模型是学习问题(Learning),对应的强化学习 。具体的,有模型就是一个动态规划问题,不需要不断和环境进行交互,每步action后state自然就有了。而无模型是一个需要不断和环境进行交互的学习问题,就是我们常说的强化学习。所以强化学习偏重解决的是无模型问题。

3、分类3:从有无回报函数分
分类3是根据环境返回的回报函数是否已知分的,分:正向强化学习算法和逆向强化学习算法。
比如我们打游戏,有的游戏是会给我们明确的回报分数的,我们只要这个回报分数越高越好,这种情况下就是正向强化学习。
但是还是有很多游戏中间是不给我们回报分数的,我们就也不知道这个action究竟是正的reward还是负的reward,此时就需要专门学习一些负面场景。那从哪里学负面场景?比如从专家的示例中学习一些回报函数,这就是逆向强化学习。以后看到逆向强化学习的一些算法,你要大体知道是怎么回事。

4、说明
对于分类之所以啰嗦这么多是因为,当我们现实中遇到问题时,你首先要非常清楚你的问题是什么?然后你才能知道你用什么方法、算法、框架去解决。问题-解决方法是一一对应的,你首先要清楚你的问题,才能精准找到解决方法。哈哈哈,比如你头痒,你一直在挠脚,可以吗?!笑不活了.....

六、强化学习的学习内容、路径

1、强化学习分:理论部分实践编程部分。二者相辅相成,任何偏颇都不好。

2、强化学习很难速成。因为其数学性比较强、系统性比较强。它是一环扣一环的,后面的内容一定是以前面内容为基础的。所以建议大家按顺序依次学习,别跳着学,因为逻辑是环环相扣的。

3、下图是强化学习理论部分的脉络图

这个图是西湖大学赵世钰老师课件中的图,个人觉得非常非常好,上图清晰的展示了强化学习理论部分的学习内容。
从上图我们可以看到:强化学习的理论部分又分基础概念/工具算法/方法两个部分。

基本概念主要包括:state, action, reward, return, episode, policy

基础工具是:贝尔曼方程、贝尔曼期望方程、贝尔曼最优方程

算法/方法主要包括:
(1)有模型:值迭代、策略迭代;
(2)无模型:蒙特卡洛方法、时序差分方法;
(3)从表格到函数tabular representation to function representation的值函数近似(Value Function Approximation,VFA):Sarsa with VFA、Q-learning with、Deep Q-learning VFA、DQN;
(4)从基于价值到基于策略value-based to policy-based的策略梯度方法(Policy Gradient Methods):REINFORCE;
(5)集大成的value-based+policy-based架构的AC方法,Actor对应的是policy update, Critic对应的是value updata,就是AC架构:
The simplest actor-critic(QAC)
Advantage actor-critic(A2C)
Off-policy actor-critic
Deterministic actor-critic(DPG)

本篇完,祝大家学习愉快!