← 返回目录


「尝试,得分,改变」:给小朋友讲的强化学习

钻研人类记忆,探索复习算法。改善教育公平,践行自由学习。

32 👍 / 0 💬

这篇文章用浅显的话解释深度强化学习,使用的是 Gwern 发明的受控英语风格,名为 Grow-Speech

Grow-Speech 的规矩是,遇到长长的专业术语,先给你解释清楚再用。这样做的目的,是让强化学习不再那么玄乎:抛开那些数学公式和行业黑话,这个领域的核心,其实就是一个不断重复的简单循环:

尝试,得分,改变。

先读这里

这是一篇关于大脑怎么学会走迷宫、赢游戏,或者跟你聊天的文章。它不光靠别人告诉它的规则来学习,更靠这样一个循环:尝试,得分,改变。

我不会一上来就扔给你一堆新名词。什么时候需要用到长一点的词了,它自己会出来。头一回用的时候,我会用粗体标出来,告诉你它是什么意思。然后,这个词我就可以放心随意地用起来了。

读的时候,请想象一间教室。教室前面有一块黑板。黑板槽上搁着一支粉笔。旁边摆着一排罐子、一堆石子、一根短牵绳、一本速写本、一个棋盘,还有 8 块蛋糕。这些东西,你大都可以在地板上搭起来。

循环是怎么转起来的

一个由小零件构成的大脑

我说的导线,是指大脑里的一种连接,能从一个地方把电信号传给下一个地方。我们在芯片上运行大脑;我说的芯片,是一片扁扁的、用导线做成的小东西,算起数学题来飞快。大脑由神经元构成,而所谓的神经元,就是大脑里的小零件,它从导线接收电信号,也会往外发送电信号。

每一个神经元都通过导线接收来自其他神经元的电信号。要是这些信号加在一起,超过了一个高高的门槛,这个神经元就会被触发,也往外发出信号。

我们想改变大脑的思考方式,就得去改变每一条导线的强弱。我们也可以调整那个高高的门槛。这样一来,有的神经元可能会更容易被触发,有的更不容易被触发。人们常说的「大脑在学习」,就是这么一回事。

来,这儿有个小道具帮你弄懂导线。你就把一条导线想成一只装满了石子的小罐子。石子越多,导线就越强。想让导线变强,就往里丢一颗石子。想让导线变弱,就从里头取出一颗石子。

大脑表现好,我们就往帮过忙的导线里加石子。大脑表现糟,我们就把石子取出来。一旦你能让导线在强弱之间来回切换,你就能让大脑学会东西了。

尝试,得分,改变

大脑想在一件事上做好,靠的是不停地尝试,又不停地犯错。每一步,大脑都先看看自己眼下在什么位置,挑一个动作,然后世界就会还给它一个 得分。我说的得分呢,就是世界还给它的一笔分值:分值高代表好,分值低代表糟。做了好动作,就得高分。做了坏动作,就得低分,或者干脆没分。大脑想得到的,是尽它所能,在整个过程中、在长远的将来,拿到最好的得分。

想想小狗和零食。你不会给小狗一条一条讲规矩。你只是在它坐下时,给它一块零食。用不了多久,小狗就会为了零食而坐下。机器人也一样:给它得分,它就会学着多做那些能得分的事。

或者,再想一个迷宫里的小机器人。它往左迈一步,撞了墙。坏分数。它往右迈一步,找到了奶酪。好分数。开头,机器人完全不认得路。它得去尝试,拿到得分,然后改变。

我说的强化学习,就是这种让大脑从得分中学习的法子。

强化学习不是魔法。得分并不等于机器人身上感到的快乐或痛苦。得分就是一个数字,告诉我们该怎样去改变大脑。

功劳和责任

难就难在功劳和责任。一次动作带来的得分,可能在很远之后才现身。机器人可能向左,然后向上,再向上,再向右,最后才找着奶酪。到底是哪一步为它赢得了奶酪?是最后那一步?还是倒回去十步之前的一步?链条里的每一步都想分得一点儿功劳。可世界只在最后给了一个得分。所以大脑得把这一个得分,顺着链条往回分。

这是核心难题:把功劳和责任,分配给过去那些该得的动作。我们接下来要看的每一种学习方法,都是解决这个难题的一种尝试。没有哪一种方法是全对的。大体上,它们能管用。大体上。

试试新东西,还是用老一套

每一步,机器人心里都受着两股劲的拉扯。

第一股劲说:就做之前最管用的那一招。你了解那一招。它给你挣过分。它很稳妥。

另一股劲说:去试个新的。新招可能跟你之前想的完全不一样。它可能比老办法好得多得多。但也可能白费。甚至是个坑。

这两股劲可拧不到一块儿去。你不能同时照做。

这两股劲有个名字,叫探索与利用的权衡探索是说,去试试你还没怎么碰过的动作,或者眼下看起来挺弱的动作,没准它其实很厉害;利用是说,就选你目前心里最有底的那个动作。

这个纠结,你也一样会碰到。想想镇上的图书室。你有一张卡,每个星期能借一本书回家。你摸熟了第一排书架。你打那上头借过 3 本书,每一本都爱得不行。挨着这排书架,还有 50 排你瞧都还没瞧过的书架。其中某一排上,没准藏着一本你会比那 3 本更喜欢的书。

每个星期,你怎么办?径直走到那排熟悉的书架前,抽一本肯定好看的书?还是跳过它,走到一排陌生的书架前,随手抽一本,甘愿冒着它可能不好看的险?

两头的好事儿你没法都占着。这周你借走的就是这本。机器人在每一步,都面对着同样的选择。

多数的学习方法,是靠一点儿随机性来折中处理。大部分时候,利用,选已知最好的动作。偶尔,探索,凭兴头随便挑个动作。等大脑越来越聪明,就把这种乱试的几率降下来。这个粗笨的招儿管用。

可是到了难搞的世界里——那些又稀罕、又出格的招儿才能带来巨大得分的时候——你就需要一种更精巧的搭配了。之所以今天我们还在找最好的探索方式,道理就在这儿。

现在,你只需要记住,有这么两股相反的拉力。探索和利用的权衡,在什么游戏里都有。一个好的机器人能感觉到这两股拉力,并做出聪明的选择。

状态、动作、得分、计划

咱们再来学几个新词

我所说的策略,就是一套在不同情形下该采取什么动作的计划。

你把策略想象成一本规则手册。每一种状态占一页。每页上面写着:「要是看见这个,就做那个」。有的页很死板:「就做这一个动作」。有的页比较活泛:「大部分时候往左,但有一定的可能性往右」。

我所说的价值,是指对某个状态,或者某个动作,究竟能带来多少得分的一种猜测。

你再把价值想象成一张价格标签。标签可以贴在状态上:「这地方看着不赖」。标签也可以贴在动作上:「从这个地方做这个动作,瞧着挺好」。刚开始,价格标签全是空白的。机器人根本闹不清每个动作值多少分。随着它一轮轮玩下来,价格标签会慢慢填满。价格标签高,就代表好。价格标签低,就代表糟。

关于价格标签,还有一个小小的地方要注意。眼前的得分,比老远老远未来的得分更值钱。老远的未来,没准根本就不会来。机器人可能半道上就掉坑里头了。所以,一个动作的价格标签,是这么一笔总和:当下的得分,加上接下来会得的一些分,再加上更往后会更少一点的分,这么一直加下去。得分越遥远,它的分量就越轻。这就是为什么价值是对得分的猜测,而不单单是眼前看见的得分。

黑板上的标签

一张 Q 值网格

现在,咱们可以来搭第一种学习方法了,压根不需要什么大脑:只要一块黑板,一支粉笔就齐了。

我所说的表格,就是一个由行和格子组成的网格,像日历那样,或者像井字棋那样。

在黑板上画一个网格。左边这一列,写下迷宫里的每一个位置,一行一个。顶上一行,写下机器人能走的每一步:左、右、上、下。在每一个格子里,写下一个数:从那个位置走那一步的价格标签。一开始,每个格子里通通写 0。

我所说的 Q-learning,就是一种靠玩游戏,把价值猜测填进表格里的方法。

Q-learning 是这么玩的。机器人落在一个位置上。它去瞧那个位置对应的那一行。把这一行扫一遍,找到数字最好的那个格子,就往那个方向走。大多数时候,它选数字最好的格子;可偶尔呢,就纯是为了试试,随手挑一个。它执行这一步,拿到得分,落到一个新位置上。

接下来,它得去修一修刚刚用过的那一格。瞅瞅新位置的那一行。那一行里头,最好的数是多少?把得分加到这上头。现在,把这一格里原来的数值和新算出来的数值混合一下:擦掉一点原来的,在原处写上一点新的。

照这么玩上长长的一大阵,黑板上的数字就会被填成恰恰好好的价值。等到了那会儿,机器人就只管瞄一眼自己那一行,挑最好的一格,迈步就是了。

我所说的基于价值的方法,就是先学价值,再从价值里头来选动作。

Q-learning 就是基于价值的方法。它先把价格标签一个个填满。等到要行动的时候,它只管去挑价格标签最高的那个动作。规则手册呢,是搭在这些价格标签上面的。

我所说的表格型的,意思就是拿表格做出来的,不是拿脑子做出来的。

这,就是表格型 Q-learning。这里头压根儿不涉及什么神经元大脑。就一块黑板,一支粉笔。你光是用教室里现成的东西,就造出了一个能学会走迷宫的东西!黑板本来可不是拿来思考的,也不是分什么输赢的;尽量别太得意。

当黑板变得太大

表格型 Q-learning 对付小小的世界,很灵。可要是碰上大得没边的世界,黑板就撑不住了。

你想想国际象棋大脑眼前的世界。一个棋盘,有 64 个格子。每个格子里,只能是 13 样东西里头的一样:6 种白子,6 种黑子,要么就是空着的。盘面状态的总数,大得吓人:比地球上的沙粒还多,比天上的星星还多。那块黑板,得宽得一眼望不到头,远远宽出你的学校、你住的镇子,和你所在的省份。聊天大脑碰上的麻烦还要更大:它可能看见的每一小截文本都是一个状态,可文本片段根本没个完。

所以,咱们把黑板扔一边儿去。换上来的是:一个由神经元组成的大脑。大脑收进来状态,比如棋盘、或者词语,然后吐出数字来,好像它一眼就瞧见了正确的那一行。它是一个大脑,在猜:要是咱们真画了那一行,粉笔本来会写下什么。

这就是那个藏在深处的窍门:用一张巨大的神经元网络来把黑板替下来。Q-learning 的规矩,基本原样不动。大脑替了粉笔的班。一个从没见过的状态,它也能猜个差不离,因为差不多的状态,往往也揣着差不多的价值。黑板可没这能耐:一行粉笔字,可没法儿告诉你下一行该写什么。

一模一样的替换,换到规则手册身上,也通。一本小小的规则手册,能画在黑板上。可聊天大脑的规则手册,每个下一个词都拖着个概率,词库又大得根本没法画。所以呀,规则手册也可以是一个神经元大脑。它收下状态,然后给每一个动作吐出一个概率。

不管你是用黑板,还是用神经元大脑,本文接下来要讲的,都照样跑得通。道具变了;循环照旧。

三种分法

有地图还是没地图

我说的模型,就是大脑里面那幅关于世界怎么运行的地图。

咱们这样来想象模型。机器人在自己的脑袋里,搭了一座迷宫的微缩玩具屋。玩具屋里住着一个小小的玩具机器人。真正的机器人可以推着玩具机器人,在玩具屋里到处走走,看看接下来会发生什么。「要是我把玩具小人往左挪,再往上挪,它会落到哪儿?」这座玩具屋,就是模型。有了它,机器人就可以先在心里推演出一串动作,然后再真正迈出脚步。

而没有模型的机器人呢,就只管在真实的迷宫里硬闯。没有玩具屋。脑子里也不做什么计划。走一步,拿个分,就这么学着。

所谓的无模型,我指的是一种不靠模型来学习的方法。基于模型呢,我指的是那种靠模型来学习的方法。

基于模型的方法,用更少的局数就能学会,因为大脑可以在玩具屋里反复规划,从每一趟跑动里榨出更多经验。可是,玩具屋也可能出错。玩具屋说「往左一步有奶酪」,但真正的迷宫却说「往左一步就撞墙」。结果就是,大脑在玩具屋里规划得漂漂亮亮,一到真实迷宫就碰得灰头土脸。

无模型方法虽慢,但稳当——总不会有座不靠谱的玩具屋来糊弄你。

表格 Q-learning 就是无模型的。黑板上粉笔记着的是各个动作的价格标签,可不是迷宫的地图。

谁的比赛算数?

现在来聊一个细微之处。大脑一边出着招,一边学着习。但它究竟是从自己当下正在出招的过程里学,还是翻看以前比赛的录像带在学呢?

所谓的同策略,就是一种从它当前所用策略里学习的方法。所谓的异策略,就是一种可以从以前的比赛,或者从过去的策略里学习的方法。

你要是走同策略,就靠新游戏来学。一旦你改变了策略,那些旧游戏可能就对不上号了。它们是从旧策略打出来的,并不适合新策略。你就得多上几局。

你要是走异策略,就在书架上攒了一大摞旧比赛的录像带。有些是你自己上周打出来的。有些是同类机器人打出来的。你从这摞旧带子里翻着看,也从中学习。这样就能省下不少新游戏的功夫。不过,想要让异策略这条路跑得顺,可要麻烦不少。旧比赛的录像,很容易把新策略往沟里带。

表格 Q-learning 就是异策略。为什么这么说?因为它修正一个格子的时候,拿来用的是下一行里头最棒的那个数值,而不是机器人实际会接着选的那个格子的数值。它学的是最优策略的价值,而不光光是打出这场比赛的那个策略的价值。这就是异策略。

这下,我们就有三个维度要记牢了:(1) 价格标签还是规则手册;(2) 有玩具屋还是没玩具屋;(3) 新比赛还是旧录像带。每一种学习方法,都可以在这三个维度上打上标签。

修改规则手册

抖动加挑选

我们怎样让一个大脑,而不是一块黑板去学习呢?这儿有一个不用数学的法子。

我所说的进化,就是透过出生、抖动、胜出和淘汰而发生的一种变化。策略呢,就是一套如何取胜的计划。而所谓的进化策略,就是一种通过一次次小幅抖动和打分来训练大脑的策略。

进化策略是这么玩的。先拿出一个大脑。复制出 100 个一模一样的孪生体。给每一个孪生体来一点小小的随机抖动:几根导线往上调一调,几根往下调一调,全凭运气。然后,让这 100 个大脑统统到迷宫里赛跑。每个孪生体都会拿到一个跑完的用时或一个得分。把排在末尾的,比如 90 个,淘汰掉。只留下表现最棒的 10 个。

从这 10 个优胜者身上,再复制出 100 个新的孪生体。每个都轻轻抖动一下。再让它们到迷宫赛跑。淘汰最差的 90 个。保留最棒的 10 个。

再来一轮。然后再来一轮……

用不了多久,这些大脑就能飞快地冲出迷宫了!

要是你使劲往深里想,这听起来有点残酷。不过这些大脑什么都感觉不到。其实呢,你自己就是这么来的,只不过时间拉得极其极其漫长罢了。

进化策略是无模型的:不用玩具屋。那个装着规则手册的大脑,就是被抖来抖去的对象。而且它是纯粹的同策略:每一个得分,都直接来自大脑刚刚尝试过的表现。

进化策略的好处是什么?它足够简单。它能在超级大脑上起效。你还可以把 100 个孪生体同时放到好多芯片上赛跑,因为它们各跑各的,互不干扰。

那坏处呢?它太费比赛次数了。一个孪生体得跑完整整一次迷宫,才能拿到一个得分。在一次长跑里,只要出了一次大岔子,就可能让一个本来很棒的大脑显得很糟糕。最要命的是,它对功劳和责任非常粗线条:它压根不管在一次跑动里哪些动作帮了忙、哪些动作拖了后腿。得分就像一整块粗糙的评价,囫囵个儿地砸在整个大脑身上。接下来的方法,会精细得多。

一个大脑,跑上好多次

我所说的 REINFORCE,是这样一条规则:在那些超过基准线的跑动里,它让用到的动作更容易被选中;在那些没达标的跑动里,就让用到的动作更不容易被选中。

想象你面前摆着一个架子。架子上,为大脑里的每一根导线都放了一个罐子。罐子里石子的数量,就代表那根导线有多强。满满一罐石子:一根结实的导线。快要见底的罐子:一根孱弱的导线。

REINFORCE 是这么玩的。先让一个大脑完整地跑完一轮。每一步,它都带着一定的随机性挑一个动作。记下每个动作,以及哪些导线帮着促成了它。跑到终点后,瞧一眼最终得分。要是得分高,你就沿着架子走过去,往那些帮过忙的导线罐子里丢石子。要是得分低,你也沿着架子走过去,不过这一回是往外取石子。然后多跑几轮,再照这么来一遍。

对于单轮跑动里的导线来说,这个办法可不太公平。在一轮输掉的跑动里,某根帮着出了个好主意的导线,照样会损失一颗石子。在一轮赢了的跑动里,某根帮着出了个馊主意的导线,照样会得到一颗石子。罐子不清楚背后的缘由。罐子也不需要清楚。只要跑动次数够多,这些杂音往往就会被冲刷干净。总的来看,帮着赢的导线会攒起成堆的石子。帮着输的导线会渐渐空空如也。大脑就这么变厉害了。

我所说的基于策略的方法,就是一种直接改动策略本身,而不仅仅是改动价格标签的方法。

REINFORCE 就是基于策略的方法。它不先去填那些价格标签。它直接上手挪动规则手册:让这个动作更容易被选中,让那个动作更不容易被选中。基于策略的方法,适合在超大任务上发力,比如一个负责往下写一个词的聊天大脑,动作的数量多到我们根本没法一个一个地去打分。基于价值的方法呢,更适合小一点的任务,那种大脑可以从容地给每个动作仔细打分的地方。

REINFORCE 也同样是同策略和无模型的。它比进化策略要细致,因为它去改动了那些具体帮了忙或捣了乱的部分。可它依然很吵。一整轮跑动下来,只给许许多多的小动作扔下一个粗糙的总评。

在旁边配个评论员

REINFORCE 太吵了。「总分高」这个评价,对每一个动作来说都太粗糙了。我们完全可以拿到一个更锐利的评价。

我所说的演员,是指那个负责挑动作的大脑。我所说的评论家,是指旁边另一个大脑,它专门试着去猜价值。

现在,同时搭起两个大脑:一个演员和一个评论家。演员负责下场玩游戏。它手里拿着那本规则手册。评论家坐在边上,在游戏一开始就进行解说。每到一处,评论家就喊出一个猜测:「待在这儿,你最后能拿到 5 块零食。」咱们会根据评论家的猜测有多接近事实来给它打分。猜错了它就吃亏。猜对了它就赚到。

我所说的优势,就是一次实际的跑动,比评论家当初的猜测,到底高出了多少。

现在,咱们来改良 REINFORCE。演员做了一个动作。当初在那个位置,评论家的猜测是 5 分。这一轮跑下来,实际得分是 8 分。这比猜测高了 3 分,所以优势是 +3。往帮过忙的导线罐子里丢石子。

要是这一轮跑下来只得了 2 分,比猜测低了 3 分,那优势就是 -3。就从那些罐子里往外取石子。

这样一来,我们就不再因为「咱们赢了」而奖励导线了。而是在为「咱们干得比评论家想的还漂亮」来奖励导线。这可是一份精细得多的评价,大脑自然学得更快。

评论家本身就是一个价值大脑:是由一群神经元构成的大脑,专门猜测某个状态的价格标签。所以说,这个小窍门是把基于策略和基于价值的办法巧妙地揉在了一起。演员,就是那本规则手册。评论家,就是那些价格标签。

让改变的步子迈小一点

小碎步前进

REINFORCE 以及演员加评论家的这些小窍门,都有一个软肋。

要是在一步里头,你对大脑的改动太大,就可能把它给整坏了。一个本来挺厉害的大脑,被猛推一把之后,可能突然就跑偏,然后连着输好长一阵子。更糟糕的是,它还可能丢掉以前好不容易学会的本事,比如怎么走一条直线。

我所说的 PPO,就是这样一条规矩:它把改变的幅度牢牢夹住,好让新策略别离旧策略太远。

你把 PPO 想象成一条短短的牵绳,不过这条绳子不是拴在每个罐子上,而是拴在动作概率上。把旧策略当初选中每个动作的概率都记下来。用同样这些动作去训练新策略。万一新策略想大幅提高某个好动作的概率,PPO 就会一把夹住,不让它冲太猛。万一新策略想大幅压低某个坏动作的概率,PPO 也会同样给它夹住。

绳子不是套在每一根导线上的。绳子是套在动作概率上的。

旧策略当初选了某个动作。新策略可能会让这个动作的概率变高,也可能会变低。但只要这个变化太大,PPO 就会把它夹住。

所以大脑是靠许许多多个小碎步学会东西的,而不是靠猛的一蹦。好的动作越来越常被选上,但不会一下子蹿得太凶。坏的动作越来越不被待见,但也不会一下子跌得太狠。这有助于防止大脑把以前好不容易学会的本事全给弄丢了。

PPO 是基于策略的方法,同时拉上一位评论家来压低噪音。它是无模型的。它非常接近同策略,因为每一轮训练,它都想要旧策略刚出炉的新鲜跑动。

让小组来定基准线

PPO 需要有评论家大脑。这就又多出一个要训练的脑子。很多时候,想给聊天任务做出一个好评论家,可不容易。你问它:「这半截写出来的笔记,等写完了能有多好?」评论家只能两手一摊。

我所说的回复,就是发回给提示词的一段文本。我所说的 GRPO,是这样一条规则:它给一组回复分别打分,然后用这组得分的平均值来当那根基准线。

你把 GRPO 想象成瞄着同一个靶子,一口气扔出 8 支飞镖。每接一个任务,大脑要扔出 8 次尝试:8 条回复、8 趟跑动,或是解决同一问题的 8 种不同法子。每一次尝试都能拿到一个得分。先算出这 8 个得分的平均数。好,这个平均数,就是基准线。

每一次超过平均数的尝试,就往上推一推。每一次没达到平均数的尝试,就往下拽一拽。而且你呢,手里还留着那根短短的牵绳,也就是 PPO 的约束。

妙处就在于:再也不需要一个单独的评论家大脑了。这 8 个同伴自己,就是评论家。小组的平均数,就是那个猜测。东西少了,要训练的部分就少了,可能出岔子的环节也少了。

在那种得分能判得清清楚楚的任务上,GRPO 特别合身。对数学来说,这道题答案最后做对了没?是,还是否?对代码来说,测试最后通过了没?是,还是否?对聊天来说,可以弄一个专门打分的大脑,给每条回复都打个分,然后 GRPO 就把那些表现超过小组平均的回复往上推。

慢慢思考与游戏对局

给快速直觉升个级

到现在为止,每一种学习方法都是快快的那种:挑一个动作,直接去执行。但还有一种慢慢挑的法子。你可以先认认真真地琢磨,再动手。

第一步,不依靠任何现成的网络。只用游戏的规则。在速写本上画一棵「假如这样」的树。树根呢,就是你现在眼前看到的那个棋盘。每一根树枝,就是一步棋。往下再长一排,是接下来可能会出现的各种盘面。再往下,是对手走。接着,又轮到你走。这棵树就一直长,直到你喊停。在每一片末端的叶子上,随手写下一个大致的价格标签。然后,把最好的价格标签沿着树杈一路往回传,最后选出那根看起来最棒的树枝。这个办法很慢,但它能很聪明。

现在,请上来一位快速直觉。快速直觉扫一眼,就判断哪些走法值得花时间去慢慢琢磨。这,就是那个策略。而那个负责估算价格标签的脑袋呢,就判断一个盘面到底有多好。这,就是那个价值。慢慢思考两手齐抓:直觉来说该先搜哪几根树枝;价格标签则说明一片叶子看着有多好,这样一来,慢慢思考就不用非得每一条道都跑到黑了。

这便搭成了一个循环。慢慢思考先挑出一步棋。然后用这步棋去训练快速直觉,让直觉不用费那么大的劲也能选中它。接着,再拿这个变强了的新直觉,去给下一轮的慢慢思考引路。慢的挑选锻炼了直觉。直觉又让下一回慢的挑选更上一步。就这么一圈一圈地转起来。

我所说的专家迭代,就是指这样一个循环:用一个慢而好的选择去训练一个快速直觉,这个直觉再反过来帮下一次慢的选择变得更好。

专家迭代不是凭空冒出来的新物种。它不过是我们早就认识的那个老循环,换上了一身考究的西装:先尝试一次强而有力的慢选择,再靠实战给它打个分,接着改变那个快速直觉,让它朝慢选择看齐。

在这里头,你也能清清楚楚地看见那个旧日里价格标签和规则手册循环的影子。更好的价格标签,造出更棒的规则手册。更棒的规则手册,又打出新的比赛。新的比赛,再打磨出更好的价格标签。

一个游戏大脑

我所说的自我对弈,指的就是一个大脑,跟自己完全相同的一个孪生体下棋。我所说的 AlphaZero,指的就是一个游戏大脑,它靠着自我对弈和慢慢思考,来给自己的快速直觉升级。

想象一个孩子待在自己的房间里,面前搁着一张棋盘。这孩子一个人扮演两边。白方走一步。然后孩子把棋盘一转,坐到黑方的位子上,替黑方也走一步。转过来,转过去,全凭自己一个。这么练上几年,这孩子准能变成一个下棋高手。

AlphaZero 的感觉,就跟这个一模一样。它在那些棋盘游戏里,一个人分演黑白两方。那些游戏的本名,叫作「国际象棋、将棋和围棋」。没靠任何人类高手的帮忙,它自个儿就把这三样全玩到了顶尖的水准。它没有啃过象棋棋谱。也没有看过任何一场大师对局的录像带。它就光靠跟自己下棋,学会了这一切。

国际象棋的规则是摆明的。给你一个盘面,再告诉你一步棋,规则就能毫不含糊地告诉你下一步的盘面长什么样。所以,这些游戏规则本身,就是一个模型:而且是一个真真切切的模型。AlphaZero 在落子的时候,就是基于模型的,因为它的慢慢思考,恰好是靠这些规则来推演的。

AlphaZero 的大脑,是在一张大网络上顶着两个脑袋。一个脑袋是快速直觉:它是一个策略,专门指出哪些走法看着不错。另一个脑袋是价格标签:它是一个价值,专门判断从眼下这个盘面看,谁更可能赢。

到走棋的时候,AlphaZero 就展开咱们上一节聊的那种慢慢思考。它去搜那棵「假如这样走」的大树。策略脑袋判断,该先搜哪几根树枝。价值脑袋给末端的叶子打分。然后,慢慢思考综合起来,选出最好的一步棋。

紧接着,自我对弈开始了。让 AlphaZero 的两个孪生体下一盘,双方各使各的慢慢思考。下到头,一个赢,一个输。

这盘棋给出了一大串「盘面-动作」的配对,末尾挂着一个赢或输的标签。就用这些来训练两个脑袋。策略脑袋学着去钟爱那些慢慢思考挑过的动作:这便是在提升直觉。价值脑袋学着去猜测,最后到手那个得分会是多少。用不了多久,这两个脑袋就会被打磨得越来越灵。慢慢思考因为有这两个脑袋撑腰,也就跟着越来越灵。下一轮的自我对弈,自然水涨船高。这就是专家迭代,它把棋盘游戏当作了自己的小世界来用。

不需要人类来手把手给它划动作的等级。它只从输和赢里学。它既是基于策略的,也是基于价值的,因为它两个脑袋一块儿练。它还几乎可以说是同策略的,因为它学的,全都是自己刚刚打出来的新鲜棋局。

人类与聊天

当人类来做挑选

AlphaZero 的条件很好:每一局游戏都能拿到一个明明白白的输赢得分。可要是你想让一个大脑写出一份好笔记呢?「好笔记」可没有一个清晰的分数。一份笔记可能很真实,但读起来干巴巴的。一份笔记可能错误连篇,却花里胡哨。一份笔记可能数学上很犀利,可语气却刻薄伤人。你得有一种光靠代码给不出的评价。

于是,我们去求助人类。

我所说的人类,就是指我们这些人,而不是机器人。我所说的反馈,就是人类给出的一个标记或一句话,告诉你好还是不好。我所说的 RLHF,也就是从人类偏好中学习,就是指一种用人类反馈来训练机器人的方法。

想象一次盲品测试。盘子上摆着两块蛋糕。请一群人,每样咬一口,然后指出哪一块更好吃。这样的事做上许多次,用上好多对不同的蛋糕,请来好多人。最终你便攒下了厚厚一摞选择:这块蛋糕赢了那块蛋糕。

现在,把蛋糕换成聊天。让一个人看到,对同一问题给出的两条回复,然后请他们挑出自己更中意的那一条。这样的事也做上许多遍。我们就攒下了一大摞选择:这条回复赢了那条回复。

我所说的奖励模型,就是一个能给回复打分的模型。

拿这一大摞选择记录,去训练一个奖励模型。它的活计,就是去猜,人们会挑哪一条回复。用不了多久,这个奖励模型就可以替人类站岗了。人类回家去了。这个打分大脑留了下来。

聊天大脑负责写回复。奖励模型就负责给每条回复打分。然后,用 PPO 或者 GRPO,推动聊天大脑去写那些奖励模型会给高分的回复。PPO 这根牵绳,则负责拉住聊天大脑,不让它从你一开始那个聊天大脑跑偏太远。

这里头可有个陷阱。要是你让聊天大脑冲得太猛,它就可能学会钻奖励模型的空子。它没准会写出一条得分挺高,但骨子里却是垃圾食品的回复:满篇空话,或是翻来覆去就那几样,可奖励模型偏偏就吃了这一套。牵绳会往回拽住它。要让打分大脑满意,但别跑得离你的起点——那个最初的聊天大脑——太远。

RLHF 并不会让机器人感到快乐或痛苦。分数嘛,不过是用来改动导线的数字罢了。

一个会聊天的家伙是怎么练成的

我所说的深度学习,就是一种训练由神经元构成的巨大网络的法子。我所说的语言,就是人们嘴上说、笔下写的那些词和用法。我所说的 ChatGPT,就是一个读你写的话,然后也写话回答你的聊天机器人。

你把 ChatGPT 想象成一个被送进厨师学校,要学三个学期的孩子。

第一学期:把全世界的菜谱都读一遍。这孩子读啊,读啊,拼命读。到了学期末,你只要给他一句菜谱的开头,他就能接上茬儿,猜出下一个词来。这个学期完全没用到强化学习。它就是拿文本做的深度学习。大脑学会的是猜词儿。第一学期结束的时候,这孩子的肚子里装满了语言,可他还不知道,该怎么为手头的活儿做出一顿好饭菜。菜谱教的是词汇。它们可不教品味。

第二学期:现场观摩一位大厨,从头到尾做满 100 道菜。好好做笔记。然后自己上手,试着模仿大厨的每一个动作。这孩子把大厨的风格给学了过来。到了这时候,你再让他去烧个汤,他烧出来的汤确实有了大厨汤的模样。可这孩子的火候还是差了点。有些菜寡淡无味。有些菜味道就是不对。有些菜呢,吃了甚至不太安全。

第三学期:直接给客人们做菜。每次,同时端出两盘汤来:这是同一道菜的两种不同做法。看看客人们会把哪一盘喝个精光。先训练出一个奖励模型,来猜客人们会相中哪一盘。然后呢,用上 PPO 或者 GRPO,把孩子的做菜风格,一点点推向奖励模型给分高的那些盘子。这,就是 RLHF,它又折返了回来。

这便是整个培养计划。第一学期:通读全天下的菜谱。第二学期:跟在大厨身边看。第三学期:做菜给客人吃,并把他们的选择,牢牢放在心上。

ChatGPT 绝大部分的本事,都来自第一学期,来自那些纯粹的文本。第三学期里那条打分的循环,更像是最后一道精细的调校。它将这座用文本搭起来的原始大脑,塑造成一个更乐于助人、更求真实、更懂得分寸,并且聊起天来让人觉得舒服的模样。

这张地图与这面透镜

你该记住些什么

现在,你已经认识了最核心的几个部件:状态、动作、得分、策略,还有价值。

你也认识了那个核心难题:到底该把功劳或责任,算在过去哪一步动作的头上?

你还认识了三种分法:

  1. 基于价值,还是基于策略:是记价格标签,还是改规则手册。
  2. 无模型,还是基于模型:不建玩具屋,还是建玩具屋。
  3. 同策略,还是异策略:靠新鲜比赛,还是翻旧录像带。

下面这份,就是我们一路看下来的强化学习地图:

方法规则手册还是价格标签有地图吗?靠新比赛还是旧录像带
Q-learning价格标签没有旧录像带
进化策略规则手册没有新比赛
REINFORCE规则手册没有新比赛
演员-评论家两者没有新比赛
PPO两者没有(基本上是)新比赛
GRPO规则手册没有(基本上是)新比赛
AlphaZero两者新比赛
RLHP两者没有(基本上是)新比赛

表:每一种方法,都可以按它学的是什么、有没有地图、从新比赛还是旧录像带里学,来打上分类标签。

Q-learning 会填满一整张价值表。进化策略抖动整个大脑,留下最好的。REINFORCE 让高分跑动里出现过的动作更常被选中。演员-评论家这个方法看的是「优势」:实际表现比评论家的预期好多少,而不是直接看原始得分。PPO 给改变的幅度夹上了夹子,好让新策略别离旧策略太远。GRPO 拿一个小组的平均分,直接顶替评论家的位置。AlphaZero 靠着自我对弈、树搜索和专家迭代,给快速直觉升了级。RLHF 拿人类的反馈,先训练出一个奖励模型,再来训练聊天的策略。

它长什么样

这 8 种方法,远远不是全部。以此为正业的人,手里的法子要多得多,名字和窍门也远远超出了这篇文章的边界。还有一大串难题,我没有亮出来给你看:得分很少的时候怎么学,没有地图的时候怎么规划,怎么和同类大脑分享比赛,怎么失败才安全。

可不管花样怎么翻,它的心脏,始终是那同一个三拍子的词儿:

  1. 尝试
  2. 得分
  3. 改变

这也是看待天地间一切生命的一种眼光。

打从有生命开始,这个循环就一直转着。最早的细胞,就这么转着。鱼、肺、骨头、手、脑子,也这么转着。每一种生命,都是一次尝试。世界还给它们的得分就是:这个物种活下来,繁衍下去了吗,还是没有?赢了的物种,就生出了更多自己的同类。输了的,便没有。慢啊,慢啊,慢得不行——但就是这个循环,建造了地球上的每一种生命,包括你,包括我,也包括其他一切生命。

大脑也跑着同样的循环,只不过,它的时钟快得多。一个孩子,用一年学会走路。一条狗,用一天学会叼东西。一个会聊天的大脑,用几个小时就能学会一种新风格。还是那同样的三个词,只是不在细胞里跑,而在芯片上跑。

一旦你真正看清了这个循环,你就会在生命的每一个角落里瞧见它。一个娃娃站起来,摔倒,再爬起来,就这么站得越来越稳。一只鸟儿听见同类在唱,就试试自己的调子,听着觉得还不够好,便再试上一遍。一个孩子做了道数学题,受到了夸奖,于是做更多的题,就这么越做越好。一家铺子挂出个价格,人们或是买,或是走开,价格就随之一变。一个故事被讲出来,有些人接着往下讲,有些人由着它消散。一个词流行了起来,或是悄悄褪了色。一部法律管用了,或是行不通了,于是法律就被修改。

得分这东西,并不总是明智的。它可以是错的、虚的、甚至残忍的。正因如此,我们挑选得分的时候,非得格外小心不可。一个糟糕的得分,会造出一个糟糕的世界。一个好的得分,却能滋养出技艺、风度和信任。

有句古老而朴拙的话,叫作「无尽之形最美」。这话搁在这儿,再合适不过了。凭着盲目的尝试和严酷的得分,才有了鳍,有了翅膀,有了眼睛,有了歌声,有了手,有了工具,有了笑话,有了证明,有了游戏,也有了心智。靠着芯片上飞速旋转的循环,才有了能读、能拼、能搜、能聊的网络。

这一切,没有谁从一开始就全盘规划好。没有谁手里握着那张完整的地图。有的,只是那个循环:尝试,得分,改变;尝试,得分,改变;尝试,得分,改变。

正因如此,这个领域的意义,远远超出一堆技巧。它是一面透镜。透过它望出去,世界便不再像是一件凝固的成品,而更像是一幅仍在飞驰的巨型画卷:形态被尝试,形态被打分,形态被改变,新的形态,又从旧的形态中脱胎而出。

后记

为了写这篇《给小朋友讲的强化学习》,我先为大型语言模型写作制定了一份详细的「Grow-Speech」规范,再把这份提示词,跟另一份描述教学目标的提示词,以及(为了帮思路热起来)Sutton & Barto 2018 一书的目录合在了一起。

之后,我用 5 个前沿的大语言模型生成了粗略的草稿,在 GPT-5.5 Pro 和 Claude-4.7-opus 中把这些原型揉合起来,并经过几轮轻量的批评与迭代,才打磨出最终文本。最后,我又亲手做了一遍浅层的文字编辑。

提示词以及几份候选的生成文本,可以在 2026-05-09-gwern-reinforcementlearningforgradeschoolers.txt 查看。


Thoughts Memo汉化组译制
感谢主要译者 gemini-3.1-pro、deepseek-v4-pro 校对 gpt-5.5-xhigh、Jarrett Ye
作者:GPT-5.5 Pro、Claude-4.7-opus、Gwern。
首次发表于 2026 年 5 月 7 日;2026 年 5 月 9 日更新。
原始 Markdown:gwern.net/rl-children.md

参见


专栏:无


← 返回目录