一、强化学习问题的主要求解方法
在将强化学习问题表示为马尔可夫决策过程后,我们讨论如何进行求解。
对于无模型的强化学习求解方法(不对环境进行函数映射建模),有“基于Bellman方程的Q值函数方法”与“策略梯度方法”两大类。在此简要介绍这两类方法最基本的求解过程。
Q值函数方法
Q值函数方法以贪婪的动作选取机制, 通过Bellman方程的方式迭代优化, 求得MDP问题中最优策略下每个状态-动作对的累计回报值的函数, 每个状态下, Q值最大的动作即选择的最优动作。主要通过以下Bellman方程进行优化。
Q值函数方法的求解流程大致为:
1)根据当前状态s,以概率贪心的方式选择动作a。
2)观测状态变化为s'并获得回报奖励r,将经验(s,s',a,r)存入经验池中
3)在经验池中进行采样,以Bellman方程优化动作价值函数Q
4)持续环境交互与采样优化过程,直至动作价值函数Q收敛。
策略梯度方法
策略梯度方法以当前动作策略\pi与环境交互,获取从环境的初始状态 S_1 开始到结束状态 S_T 为止, 智能体与环境交互一个回合后得到的轨迹,增加高回报奖励对应的动作选择概率。训练目标为最大化 L(\theta)
所以, 策略梯度方法主要通过如下两步进行不断循环迭代更新.
目前,价值函数方法与策略梯度方法基于两个不同的方向解决强化学习问题,在实际运用中各有优劣。
价值函数方法计算所有状态-动作对与动作价值的映射,可以使用经验池中非当前策略采集的经验,所以有着更高的样本效率,在有限的交互次数中,有着更好的训练效果,但需要维护和保存经验池,灵活性较差。
策略梯度方法直接计算当前策略网络在累计回报值上的梯度方向,不需要维护经验池,可以随时中断、启动训练或进行不同任务间迁移,消耗的计算量较小,但需要更多的环境交互步数且有灾难性经验遗忘的问题。
虽然在街机游戏、机械臂控制等实验环境中价值函数方法更具优势,考虑到实际任务中的复杂性与灵活性,在现实的复杂任务应用中,策略梯度方法往往成为首选,其中,近端策略优化算法(PPO)作为策略梯度方法之一,有着最为广泛的应用。
二、强化学习在实际任务应用中的难点
目前,强化学习方法已经日趋成熟,如PPO、TRPO、TD3、SAC都能在游戏类与物理引擎模拟类任务上获得显著效果。但在现实环境的应用中,算法选择只是决定训练效果的关键因素之一,考虑到现实任务的复杂性,以下的几个问题也将对训练效果起到至关重要的作用:
(1)状态与动作的表示方法
智能体需要在状态-动作空间以试错的方式进行采样和学习,对于动作选择策略网络,输入状态与输出动作的维度将直接影响模型的复杂度。所以,在像素输入的任务中,需要使用卷积神经网络进行特征提取,在棋牌类任务中,如何将棋牌状态映射到实数域中并保证数值相近的状态实际也有较高的相关性成为了决定性因素。依据经验,目前将状态维度控制在数百,动作维度控制在十维左右,能够获得较好训练效果。
(2)回报值的设定
环境的奖励回报值作为激励智能体优化训练的知识来源,往往需要更加慎重的选取。我们可能都遇到过一些由于奖励回报值设置不合理导致智能体训练效果不理想的情况。比如:在模拟狼群捕猎的任务中,考虑到体力的消耗,根据每次运动消耗的体力值反馈一个负向的奖励,导致狼群陷入到原理不动或撞死在围栏上的局部最优解;在模拟帆船航行的任务中,为路径添加可以获得正向奖励的检查点,导致帆船为获取奖励而循环航行多次重复途径检查点。所以,如何能够给出一个合理且密集的奖励函数将尤为重要,但尝试为环境设定一个最优的奖励回报函数与求解整个强化学习相同困难,通常根据任务环境特性选取较为合适的回报函数。
在物理仿真环境中,根据前进的速度或距离设定回报值,能够给出一个奖励密集型回报函数,在Atari街机游戏任务中,游戏设计者需要通过奖励值来引导玩家进行决策,并控制难度让玩家有持续的热情,需要以专家经验给出合适的回报函数,所以也更符合对AI智能体进行训练的需求。在真实任务中,比如自动驾驶问题,达到完成任务虽然是智能体训练的终极目标,但更需要考虑能源的消耗、时间开销,以及如何给出合理的密集阶段性目标。
(3)超参数的设置
目前的主流算法PPO、TRPO、TD3、SAC具有十个左右需要调节的超参数,由于训练过程具有随机性,评估参数优劣需要多次实验取平均值,单次实验的耗时较高,如何选择合适的超参数成为强化学习算法由实验环境转向真实任务的一大阻碍。在实验环境中,主要的实验方案为在MuJoCo物理仿真模拟环境的5-8个基准任务或在Atari街机游戏的数十个游戏任务中进行性能测试,已经具有一套接近成熟的超参数设置范围。但在其他任务中,将耗费大量的成本进行超参数调节。
目前,进化强化学习、分层强化学习、以及最新的深度强化学习算法,虽然在测试任务中有着更强的性能,但往往也引入了更多的模块与超参数,为算法的实际应用带来了负担。所以,在实际应用领域,如,腾讯公司开发王者荣耀觉悟AI打败人类职业选手,也仅仅选用PPO作为强化学习模块的基础算法。
三、强化学习在大模型场景下的应用方向
3.1 已经成熟的方向:RLHF在线强化学习进行模型的微调
RLHF(Reinforcement Learning from Human Feedback)即基于人类反馈的强化学习方法。
在此之前,传统的语言模型通常只能生成符合语法规则的句子,但往往无法理解用户意图,导致生成的输出与用户期望不符。为了解决这个问题,所以希望引入一种使用人类反馈微调语言模型的方法,以更好地对齐用户意图。通过使用人类反馈来微调模型,使其能够更好地遵循各种书面指令,并生成更准确、更有逻辑连贯性和可读性的输出。
RLHF在大模型中的应用框架如图所示:
主要分为三个部分:
1)由人类给出对生成文本的偏好排名。使用排名的方式替代直接评分,避免人类评分标准的不统一
2)构建RM(Reward Model)。RM模型的输入为LLM生成的文本,输出未偏好排名,优化目标为输出排名与人类给出的偏好排名相对应。以此构建的RM作为强化学习中的奖励评判标准函数,能够给出人类未进行排名的文本输出。
3)微调LLM模型。可以从两个角度进行LLM模型的微调:<1>将RM的奖励函数引入LLM模型的训练损失中,作为偏置项参与原模型梯度计算和优化。<2>冻结旧LLM模型大部分参数,生成新LLM模型,同时给出新旧模型的文本生成结果,利用RM模型对两个结果进行排名,新LLM模型的训练目标即为排名优于旧模型。
虽然Ghat-GPT并未完全公布技术细节,从理论方法角度分析,关键点在于:1)RM模型的准确度不够,可能给出错误的价值排名评判,尤其在人类排名数据未覆盖的生成位置,需要加入合理的约束。2)在LLM模型中进行参数冻结,仅选取部分关键参数进行微调,在大模型中如何选取参与微调的参数将成为影响调节效果的关键问题。
3.2 理论可行的方向:基于强化学习训练LLM。
从理论上讲,当大模型全面应用后,每天将有大量用户与LLM进行交互,根据用户使用情况或评价,可以给出对LLM生成结果的奖励回报值。根据模型生成流程,通过回报值进行反向梯度计算,可以调整LLM模型中的所有参数。以此修正语言模型的输出。但目前强化学习算法的有效应用指停留在数十万参数规模的策略网络生成。所以直接学习整个10B+的LLM模型参数的成本过高。
在基于强化学习的LLM训练中,可以突破在线强化学习的限制。可以使用离线学习方法,根据不同模型与用户交互得到数据(语言-评价),将数据存储在经验池中,能够更好的进行数据利用,离线强化学习的要点是对策略生成数据与经验池数据间分布距离进行约束。可以使用进化强化学习方法,利用进化计算的思想,根据多智能体的交叉遗传算子,使得训练过程更加灵活,也有着更好的跳出局部最优解的能力。