强化学习和有监督学习的区别
随着ChatGPT、Claude 等通用对话模型的成功,强化学习在自然语言处理领域获得了越来越多的注意力。在深度学习中,有监督学习和强化学习不同,可以用旅行方式进行更直观的对比,有监督学习和强化学习可以看做两种不同旅行方式,每种旅行都具备着自己独特的风景、规则和探索方式。
- 旅行前的准备:数据来源
- 监督学习: 这如同旅行者们拿着一本旅行指南书,其中明确标注了各个景点、餐厅和交通方式。在这里,数据来源就好比这本书,提供了清晰的问题和答案对。
- 强化学习: 旅行者们进入了一个陌生的城市,手上没有地图,没有指南。所知道的只是他们的初衷,比如找到城市中的一家餐厅或博物馆。这座未知的城市,正是强化学习中的数据来源,充满了探索的机会。
- 路途中的指引:反馈机制
- 监督学习: 在这座城市里,每当旅行者们迷路或犹豫时,都会有人告诉他们是否走对了路。这就好比每次旅行者提供一个答案,监督学习都会告诉他们是否正确。
- 强化学习: 但在另一座城市,没有人会直接告诉旅行者们如何走。只会告诉他们结果是好还是坏。比如,走进了一家餐厅,吃完后才知道这家餐厅是否合适。需要通过多次尝试,逐渐学习和调整策略。
- 旅行的终点:目的地
- 监督学习: 在这座城市的旅行目的非常明确:掌握所有的答案,就像参观完旅行指南上提及的所有景点。
- 强化学习: 在未知的城市,目标是学习如何在其中有效地行动,寻找最佳的路径,无论是寻找食物、住宿还是娱乐。
强化学习在大语言模型上的重要作用可以概括为以下几个方面:
-
强化学习比有监督学习更可以考虑整体影响:
有监督学习针对单个词元进行反馈,其目标是要求模型针对给定的输入给出的确切答案。
而强化学习是针对整个输出文本进行反馈,并不针对特定的词元。
这种反馈粒度的不同,使得强化学习更适合大语言模型,既可以兼顾表达多样性,还可以增强对微小变化的敏感性。自然语言十分灵活,可以用多种不同的方式表达相同的语义。而有监督学习很难支持上述学习方式。强化学习则可以允许模型给出不同的多样性表达。
另外一方面,有监督微调通常采用交叉熵损失做为损失函数,由于总和规则,造成这种损失对个别词元变化不敏感,如果改变个别的词元,只会对整体损失产生小的影响。但是,一个否定词可以完全改变文本的整体含义。强化学习则可以通过奖励函数达到同时兼顾多样性和微小变化敏感性两个方面。
-
强化学习更容易解决幻觉问题:用户在大语言模型时主要有三类输入:
-
文本型(Text-Grounded):用户输入相关文本和问题,让模型基于所提供的文本生成答案(例如,“本文中提到的人名和地名有哪些”);
-
(b)求知型(Knowledge-Seeking):用户仅提出问题,模型根据内在知识提供真实回答(例如,“流感的常见原因是什么”);
-
(c)创造型(Creative):用户为提供问题或说明,让模型进行创造性输出(例如,“写一个关于… 的故事”)。
有监督学习算法非常容易使得求知型查询产生幻觉。在模型并不包含或者知道答案的情况下,有监督训练仍然会促使模型给出答案。而使用强化学习方法,则可以通过定制奖励函数,将正确答案赋予非常高的分数,放弃回答的答案赋予中低分数,不正确的答案赋予非常高的负分,使得模型学会依赖内部知识选择放弃回答,从而在一定程度上缓解模型幻觉问题。
- 强化学习可以更好的解决多轮对话奖励累积问题:多轮对话能力是大语言模型重要的基础能力之一,多轮对话是否达成最终目标,需要考虑多次交互过程的整体情况,因此很难使用有监督学习方法构建。而使用强化学习方法,可以通过构建奖励函数,将当前输出考虑整个对话的背景和连贯性。