ChatGPT 人工智能 GPT4 伦理 生成式 医疗 监管 安全 机器学习 深度学习 神经网络 计算机视觉 强化学习 模型 算法 应用 开发 研究 工具 平台 框架 数据集 训练 部署 安全 合规 培训 投资 LLM,llm AI,ai,Ai 大模型 大语言模型 制图 生图 绘图 文生图 文生视频 生成式AI AGI 世界模型 sora chatGPT,chatgpt,ChatGpt claude openai Llama deepseek midjourney 红熊猫模型 Red panda,panda Stable Diffusion,StableDiffusion,stable DALL- E 3 DALL E DALL Flux,flux 扩散模型 混元大模型 文心一言 通义千问 可灵 Pika PixelDance 豆包 月之暗面 零一万物 阶跃星辰 搜索增强 MiniMax Talkie Agent prompt fastai LangChain TTS 微调 提示词 知识库 智能体
# 热门搜索 #
搜索
具身智能基础——强化学习
2848点击    2024-11-11 20:56

一、基本概念


1. 智能体与环境交互


强化学习中的核心概念是智能体(Agent)环境(Environment)之间的交互。智能体通过观察环境的状态,选择动作来改变环境,环境根据动作反馈出奖励和新的状态。智能体的目标是通过学习选择最优的策略,使得在长时间的交互过程中获得尽可能多的累积奖励。这个循环的交互过程帮助智能体通过试错来学习如何在不同的状态下做出最佳决策。



2. 马尔科夫链


马尔可夫过程是一种具有马尔可夫性质的随机过程,意味着未来的状态只与当前状态有关,而与过去状态无关。基于此,马尔可夫奖励过程引入了奖励函数和折扣因子,使得状态转移仍然保持马尔可夫性质,环境基于每个状态提供相应的奖励。序列回报考虑未来奖励的综合,通常使用时间衰减来强调近期奖励的重要性。马尔可夫决策过程(MDP)是强化学习的基础框架,描述了在部分可控和部分随机的决策过程中如何选择最佳动作。MDP通过状态集合、动作集合、状态转移概率、折扣因子和奖励函数构成五元组,动态地在当前状态中选择动作,获得奖励并随机转移到下一个状态,直到达到终止状态。占用度量用于描述给定策略下状态和动作的出现频率,最终目标是学习出能够最大化累积奖励期望的策略。


马尔可夫链假设当前状态只与前一时刻状态有关;



三个重要因素:S、A、R,即状态、动作、奖励。


(1)智能体在环境中观察到状态 S;


(2)状态 S 输入到智能体,智能体通过计算,得到执行动作 A;


(3)动作 A 使智能体进入到新的状态,并返回奖励 R 给智能体;


(4)智能体通过奖励调整策略。


3. Q 值和 V 值


• Reward(奖励):指智能体在当前这一步获得的即时奖励。


• Return(总奖励):指智能体从当前状态开始,到达终点的过程中,累积的奖励总和。


Q 值(动作价值) 评估的是在某个状态下选择某个动作后,从当前状态到最终状态,智能体所能获得的累积奖励的期望。计算 Q 值的过程类似于:从当前状态出发,假设有多个“分身”,每个分身选择不同路径前进,最终记录每个分身获得的奖励,然后计算这些分身奖励的平均值,得到 Q 值。


V 值(状态价值) 则评估的是智能体在某个状态下,从这个状态到最终状态所能获得的累积奖励的期望。计算 V 值的方式类似于:从当前状态出发,分身出来多个智能体,分身根据当前策略选择动作,走到终点后计算各自获得的总奖励,然后取这些分身的奖励平均值作为 V 值。


V 和 Q 的关系 是紧密的。V 值是所有可能动作的 Q 值的期望,而 Q 值则是从当前状态采取某个具体动作后,到达下一状态的 V 值的期望。



4. 蒙特卡洛(MC)采样   


蒙特卡洛(MC)采样是强化学习中的一种方法,用于估计当前状态到最终状态的累积奖励。智能体在 t 时刻选择动作 a 后,会在 t+1 时刻进入新的状态并获得奖励,因此我们定义 G 值为从当前状态 S 开始直到最终状态所收获的总奖励。蒙特卡洛采样的核心思想是:当前的 G 值等于当前动作获得的即时奖励 r,加上未来的 G 值乘以一个折扣率 γ。这个过程是迭代的,意味着智能体会在多次尝试中不断修正对累积奖励的估计。


折扣率 γ 的作用在于衡量时间的影响,距离当前时刻越远的奖励,对当前决策的影响越小。蒙特卡洛采样的核心特点是,它是无模型(free-model)方法的基础,即不需要知道环境的具体动态,仅通过采样来进行学习。


蒙特卡洛采样还分为同策略(on-policy)异策略(off-policy)两种方式,区别在于采样的策略不同。同策略采样使用的是智能体当前的行为策略,而异策略采样则允许智能体使用一个不同的策略来收集数据。


5. 贝尔曼公式


贝尔曼公式是强化学习中一个核心的递归公式,用来表示状态或动作的价值。贝尔曼公式通过将当前状态的价值表示为未来状态的价值加上即时奖励,从而建立了当前决策和未来决策之间的联系。这个公式在强化学习的动态规划算法和价值迭代算法中起到了重要作用。



6. 蒙特卡洛估计状态 V 值


蒙特卡洛估计状态 V 值 是通过观察智能体的实际运行轨迹,来更新每个状态的价值估计。采用的增量更新法表示每次获得新的信息后,更新的 V 值是基于当前 V 值加上一小部分调整。具体地,新平均等于旧平均加上一个比例(即学习率)乘以新信息与旧平均的差值。

蒙特卡洛估计的迭代公式为:



其中,α 是学习率,用来控制每次更新的步幅大小。Gt 是当前轨迹下状态 St 对应的累积奖励(即目标值),通过每次迭代逐步让 V(St) 更加接近 Gt。


这种方法的缺点是每个轨迹的计算需要完整运行到结束,因此每次更新可能耗时较长,尤其是在复杂环境中。


二.TD 算法


1.时序差分 TD 估计状态 V 值


时序差分(TD)估计状态V值


时序差分(TD)方法是一种在强化学习中常用的策略评估和学习方法,它结合了蒙特卡洛方法和动态规划的优点。与蒙特卡洛方法需要等到整个序列结束后才更新价值函数不同,TD方法允许在每一步进行更新,这使得学习过程更为高效和灵活。

TD的基本概念


TD方法通过对当前状态的价值估计进行更新,使用当前的奖励以及下一状态的价值来进行预测。这种更新方式可以在每一个时间步进行,使得智能体在学习时能够更快地适应环境的变化,而不是等待整个回合结束。TD误差是这一更新过程中的核心概念,它衡量了当前价值估计与实际获得的奖励和下一个状态价值之间的差距。


TD方法的优势


a.在线学习:TD方法允许智能体在每一步都进行学习,无需等到回合结束,从而加快了学习速度。


b.增量更新:通过利用当前的状态、动作和奖励进行增量更新,智能体可以及时调整其价值估计,适应环境的动态变化。


c.减少方差:与蒙特卡洛方法相比,TD方法通常具有更低的方差,因为它使用了当前状态的估计值,而不仅仅依赖于最终的奖励。


应用场景


TD学习广泛应用于许多强化学习算法中,例如Q学习和SARSA等。这些算法利用TD方法来优化策略,使得智能体能够在复杂的环境中做出更优的决策。通过TD学习,智能体能够通过不断的交互和经验积累,提高其在环境中的表现。


2.SARSA


○ SARSA 是基于 TD 的 Q 值估计方法。智能体通过输入当前状态 S 和动作 A,来学习最优策略。它的核心思想是用相同状态下产生的动作 Q 值来代替下一个状态的价值估计。SARSA 主要用于求解贝尔曼方程。


SARSA策略简介


SARSA(State-Action-Reward-State-Action)是一种在线强化学习算法,属于时序差分(Temporal Difference, TD)控制方法。该算法通过同时评估和改进当前策略,帮助智能体在动态环境中学习最佳行动策略。


SARSA算法流程


在SARSA的学习过程中,智能体遵循以下步骤:


a.初始化:为每个状态-动作对初始化Q值函数。


b.选择和执行动作:在当前状态下,根据当前策略(通常使用ε-greedy策略)选择并执行一个动作。


c.观察结果:执行动作后,智能体接收环境的反馈,包括奖励和下一个状态。


d.选择下一个动作:在新的状态下,基于当前策略选择下一个动作。


e.更新Q值:根据观察到的奖励和状态转移,更新当前状态-动作对的Q值,以反映新的经验。


f.状态和动作转移:将当前状态和动作更新为新状态和新动作,重复上述过程。


在线策略控制


在SARSA的在线策略控制中,智能体在每个时间步都进行策略的评估和改进。每一步都会根据更新的Q值调整策略,从而确保在探索新策略的同时不断优化已有策略。


SARSA示例:Windy Gridworld


以Windy Gridworld为例,智能体的目标是从起点移动到目标位置。在这个环境中,智能体每步会获得一个小的负奖励,直到成功到达目标。随着训练的进行,SARSA策略会使智能体更快地达到目标位置,从而逐渐提高其学习效率和成功率。


通过SARSA,智能体能够在不断交互的过程中更新自身的知识,并学习如何在复杂的环境中做出最佳决策。


3.Q-Learning


○ Q-Learning 是强化学习中的经典方法。它通过选择最大 Q 值的动作来优化策略,通常使用一个 Q-table 来记录每个状态下各个动作的 Q 值,帮助智能体找到 S-A 的对应关系。其本质是求解贝尔曼最优方程。


Q-Learning


Q-Learning 是一种经典的强化学习算法,旨在通过学习每个状态-动作对(S-A)对应的 Q 值来优化策略。Q 值表示在某个特定状态下采取某个动作所能获得的期望总奖励,因此,智能体可以通过选择具有最高 Q 值的动作来做出决策,从而最大化未来的奖励。


Q-Learning 的基本概念


在 Q-Learning 中,智能体维护一个 Q 表,记录每个状态下每个可能动作的 Q 值。每次智能体与环境交互时,它会根据当前的策略(例如 ε-greedy 策略)选择一个动作,并根据获得的奖励和下一个状态的 Q 值来更新 Q 表。这一过程实际上是对贝尔曼最优方程的求解,旨在找到最优策略。


更新规则


Q-Learning 的核心在于其 Q 值更新公式。智能体在选择动作并获得奖励后,会使用当前状态的 Q 值、所采取的动作、获得的奖励以及下一个状态的最大 Q 值来更新 Q 表。这一更新过程使得 Q 值逐渐收敛到最优值,从而优化策略。


优势与应用


a.无模型学习:Q-Learning 是一种无模型的学习方法,即智能体不需要了解环境的状态转移和奖励函数,可以仅通过与环境的交互来学习。


b.离线学习能力:通过学习 Q 表,智能体可以在训练完成后独立地决定策略,而不再需要继续与环境交互。


c.广泛应用:Q-Learning 被广泛应用于许多领域,包括游戏 AI、机器人控制以及各种决策制定问题。


通过不断与环境交互并更新 Q 表,Q-Learning 能够有效地训练智能体,使其在给定的状态下做出最优决策。


4.DQN(深度 Q 网络)


○ DQN 通过结合深度神经网络解决了 Q-Learning 的 Q-table 局限性问题,尤其在连续空间和大状态空间中表现优异。DQN 通过神经网络拟合 Q 值,并采用 ε-greedy 策略来平衡探索与利用。Replay Buffer 技术通过保存状态转换,进行批量训练,避免过拟合。同时,它使用双 Q 网络来计算更新目标。


DQN 的关键特点


a.深度神经网络的使用: DQN 利用深度神经网络来拟合 Q 值,这意味着智能体可以处理高维和连续的状态空间。网络的输入是状态,输出是每个可能动作的 Q 值。通过训练网络,DQN 能够学习到不同状态下各个动作的价值。


b.ε-greedy 策略: 为了在探索新策略与利用已有知识之间取得平衡,DQN 通常采用 ε-greedy 策略。智能体以一定概率(ε)随机选择一个动作,以便探索新的策略;而在其他情况下,则选择当前 Q 值最大的动作,从而利用已有的知识。


c.Replay Buffer: DQN 使用 Replay Buffer 技术来存储智能体与环境交互中获得的状态转移数据。通过批量训练的方式,DQN 可以从这些存储的数据中随机抽取样本进行训练,降低了数据之间的相关性,从而有效地避免过拟合。这种方法使得智能体能够更稳定地学习。


d.双 Q 网络: DQN 还引入了双 Q 网络的概念,以进一步提升训练的稳定性。具体而言,它使用两个 Q 网络来分别计算当前动作的 Q 值和目标 Q 值,从而减少因过估计而导致的训练不稳定性。这一设计使得 DQN 在更新目标时更加精确。


应用与成就


DQN 在许多复杂任务中表现出色,尤其是在一些具有挑战性的游戏中(如 Atari 游戏),它通过自我对弈的方式训练,取得了超越人类专家的表现。由于其强大的学习能力,DQN 被广泛应用于机器人控制、智能游戏代理以及自动驾驶等领域,展示了深度强化学习的巨大潜力。


5.DQN 改进算法


a.Double DQN


▪ 解决 DQN 中 Q 值偏大的问题,通过两个网络计算标签时选择较小的 Q 值,防止自己监督自己。


b.Dueling DQN


▪ 将 Q 值分解为状态价值 V 和动作优势 A,增强模型的状态价值判断能力。


c.Prioritized Experience Replay


▪ 增强对困难样本的训练,TD-Error 较大的样本更有可能被采样。


d.Multi-steps


▪ 在时序差分与蒙特卡洛之间平衡,增强探索性。


e.Distributed Q Function


▪ 引入动作分布,不仅仅考虑期望值,进一步提升 Q 值估计的精细度。


f.Rainbow


▪ 集成多种优化方法,提升 DQN 性能。


g.Continuous actions


▪ 解决连续动作空间问题,通过采样多个动作、梯度上升和神经网络设计来处理。


三、策略梯度(Policy Gradient)方法


1.策略梯度方法简介    


策略梯度方法直接优化策略,通过调整智能体在每个状态下选择动作的概率分布来提升整体表现。与基于价值的算法不同,策略梯度方法不需要明确估计 Q 值或 V 值,而是直接优化策略,使其能够在环境中做出更优决策。智能体通过采样轨迹,不断学习并改进自己选择动作的策略。


• PG:训练一个神经网络,输入状态 state,直接输出动作 action,不再计算 Q;


• DQN:TD+神经网络


• PG:蒙特卡洛+神经网络


选择更好行为的概率更高。


1.训练过程训练过程中,智能体首先与环境交互,收集一系列状态、动作和奖励信息。这些数据用于计算当前策略的表现,智能体根据这些反馈信息调整策略。整个过程通过多次迭代,逐渐优化策略,使得智能体在相同的状态下能够选择更加有利的动作。



2.改进方法


• Baseline:因为 R 都是正的,采样具有随机性,对于学习不利,因此减去一个 baseline,一般为均值。



• Suitable Credit(合适的信用分配):之前,在一个完整轨迹中,所有(s,a)具有同样的 reward,但是,一个完整轨迹不好,不 代表所有动作都不好,很可能只是几个动作不好,因此所有(s,a)具有同样的 reward 是 不合理的,解决:



一定程度上考虑 reward 与是回合序列关系,但需要等回合结束才能通过回溯方式计算求得。


2.策略值函数估计


策略值函数估计是通过给定环境中的马尔可夫决策过程(MDP)和策略π来评估状态的价值和动作的价值。具体而言,状态价值函数表示在某一状态下,按照该策略所能获得的期望回报,而动作价值函数则进一步考虑在某一状态下采取特定动作后的期望回报。策略提升是指在某一状态下,如果新的策略π′的价值超过了原策略π,那么就可以认为π′是对π的提升。根据策略提升定理,当新的策略在某些状态下的回报高于原策略时,就可以确保新策略的价值也高于原策略。通过价值评估,我们能够指导策略的提升,最终实现更优的决策。ɛ-Greedy策略提升则强调在多个动作选择中,利用小概率选择高价值动作的方式进行策略改进。整体而言,这些方法通过动态规划的框架,为优化决策过程提供了系统的理论支持。


策略值函数估计是强化学习中的一个核心概念,它主要用于评估给定策略在特定环境中的表现。这个过程通过计算每个状态的价值函数来完成,价值函数反映了在特定状态下,执行策略所能获得的期望累积奖励。


1.状态价值和动作价值


• 状态价值函数是指在某个状态下,执行该策略所能获得的期望奖励。这可以看作是当前状态的“价值”。


• 动作价值函数则是指在某个状态下采取特定动作所能获得的期望奖励。


2.策略的目标


强化学习的目标是通过选择合适的动作来最大化累积奖励的期望值。通过折扣因子,模型可以对即时奖励给予更多重视,相较于未来的奖励更倾向于选择当前能带来较高奖励的动作。


3.策略迭代与价值迭代


• 策略迭代是通过交替评估当前策略的价值函数并更新策略来找到最优策略的过程。每次更新都通过计算状态的最大价值来改善策略。


• 价值迭代则是直接更新状态价值函数,直到收敛。这个方法通常在状态和动作空间较大的情况下效率更高。


4.收敛与效率


策略迭代在状态空间较小的情况下通常能快速收敛,因为它逐步改善策略。而价值迭代则更适合处理较大状态空间的MDP(马尔可夫决策过程),因为它在计算效率上更具优势。


5.最优价值函数与最优策略


最优价值函数是所有可能策略中可获得的最大期望奖励,而最优策略则是能够实现这一最大期望奖励的具体策略


3.价值迭代vs.策略迭代


价值迭代与策略迭代概述


在强化学习中,价值迭代和策略迭代是两种常用的求解最优策略的方法。价值迭代主要通过贪心更新方式来迭代每个状态的价值函数,直到达到收敛。在这一过程中,对每个状态的价值进行更新,旨在通过最大化当前价值函数来逼近最优价值。这种方法适用于没有状态转移循环的情况,通常在处理大规模的马尔可夫决策过程(MDP)时效率较高。


相较之下,策略迭代则采用不同的思路。它首先随机初始化一个策略,然后通过交替的方式评估该策略的价值并改进策略。具体而言,策略迭代先计算出在当前策略下每个状态的价值,接着利用这些价值信息更新策略。这一过程持续进行,直到策略不再改变为止。策略迭代在状态空间较小的情况下往往收敛较快,因为它能更精确地评估和提升策略。


收敛速度与计算复杂度


在收敛速度方面,策略迭代通常能在小规模MDP中更快达到最优策略,因为它在每一步中都有明确的评估和改进过程。然而,在大规模MDP中,策略迭代的计算复杂度会显著增加,特别是在需要频繁更新价值函数时。这使得价值迭代成为更具吸引力的选择,尤其是在状态空间较大的情况下,因为它通常能在较少的迭代中找到接近最优的价值函数。


此外,价值迭代的贪心更新方法使其在面对复杂问题时能够快速调整并逼近最优解。尽管策略迭代在每一步都进行更为详尽的计算,但它的复杂性可能会导致在较大的问题上变得低效。因此,根据具体问题的规模和特性,选择合适的迭代方法是至关重要的。


总结


总的来说,价值迭代和策略迭代各有优缺点。在小规模MDP中,策略迭代因其较快的收敛速度而显得更为优越;而在大规模MDP中,价值迭代的计算效率和简单性使其更具实用性。根据实际问题的复杂性和计算资源的限制,合理选择适当的迭代方法将有助于更有效地找到最优策略。


四.Actor-critic


1. 优势函数(advantage Function)


在策略梯度算法中,衡量一个动作是否比其他动作更有优势,通常使用 优势函数(Advantage Function)。优势函数会评估某个动作在当前状态下是否优于其他可选动作。这个过程可以帮助智能体在做出决策时,不仅考虑当前动作的潜在奖励,还与其他可能动作进行比较。

Critic 的角色就是充当这个优势函数,它在每一步都评估当前动作是否比其他动作更好。相比于直接给每个动作分配一个奖励,使用优势函数能更加高效地优化策略,帮助智能体更快找到最优行为。


2. 网络


Actor-Critic 使用两个网络,输入均为状态 S,但输出不同:一个负责输出策略,即动作,为 Actor;另一个输出每个动作的分数,即 Q 值,为 Critic



在策略梯度(PG)算法中,蒙特卡洛方法需要等到整个回合结束后才能回溯计算总奖励,这种方式效率较低。为了提高效率,Actor-Critic(AC) 算法则在每一步后立即估计当前的价值,从而加速学习进程。可以理解为,AC 算法是 PG 的一种时序差分(TD)版本。


在 AC 算法中,Critic 会估计一个状态的期望奖励,即 V 值,而 Actor 则基于该 V 值来选择动作。Critic 同时还计算出 TD 误差,衡量实际奖励与期望奖励之间的差异,用来更新策略。通过这种方式,智能体能够在每一步进行策略优化,而不必等到整个回合结束。


此外,Critic 使用 优势函数 来评估当前选择的动作与其他可能动作的相对好坏。为了稳定计算,AC 通常通过神经网络来估计状态的 Q 值和 V 值,进而指导 Actor 选择更优的动作。


3. Advantaged Actor-Cri


(1)为什么只使用一个网络?两个网络导致两倍不准确性。


(2)A2C


A2C(Advantage Actor-Critic)是 Actor-Critic 算法的一种改进版本,旨在提高策略优化的效率。


在 A2C 中,智能体包含两个主要组件:


Actor:根据状态选择动作。Actor 是负责策略的部分,它通过优化策略使得智能体在当前状态下选择最优动作。


Critic:评估当前状态的价值。Critic 通过计算 价值函数(V 值) 来评估状态的好坏,同时使用 优势函数(Advantage Function) 来衡量实际选择的动作是否优于其他可能的动作。


A2C 与标准 Actor-Critic 的区别在于,A2C 是同步的,即它会在多个环境中并行执行智能体,并等待所有环境的反馈,然后统一进行梯度更新。这种同步执行的方式可以更好地利用多核 CPU 资源,提升训练速度和稳定性,避免传统 Actor-Critic 中由于更新频繁而导致的高波动性。



(3)共享参数


以图像为例,两个网络预处理流程相同,共享特征提取网络层,更快收敛。


(4)修改 reward


对于导致回合结束动作,大幅增加负反馈,努力避免结束。


4. Asynchronous Advantaged Actor-Critic(A3C)


(1)改进思想


强化学习的一个难点在于数据的获取,因为智能体需要通过与环境的实际交互来产生数据,这与监督学习相比,数据量要少得多。为了解决这个问题,可以通过多个智能体同时与环境交互,从而加快数据收集的速度,生成更多的交互数据。这意味着多个智能体可以并行工作,每个智能体在不同的轨迹上进行探索,增加整体数据量。


(2)网络架构


在A3C(异步优势演员-评论家)算法中,存在一个全局网络(Global Network)和多个工作者网络(worker)。全局网络和每个工作者网络的结构是完全相同的,但全局网络并不会直接与环境交互,它仅用于收集并更新梯度。


工作者网络是实际与环境进行交互的部分,它们从环境中获得数据并进行学习。然后,每个工作者将计算得到的梯度传递给全局网络,由全局网络对所有工作者的梯度进行整合和更新。


通过这样的架构,多个工作者可以并行地从环境中获取数据,同时异步地将自己的学习结果传递给全局网络,从而加速强化学习的过程。



注意:DPPO 和 A3C 都是分布式的强化学习算法,但它们的区别在于,DPPO 中的工作者(worker)上传的是数据,而A3C中工作者上传的是梯度。具体流程可以总结如下:首先,每个工作者会拷贝全局网络(global Network)的参数,然后与环境进行交互,采样一些数据。


接下来,工作者会基于这些数据计算梯度,最终将这些梯度上传到全局网络,由全局网络进行参数更新。这种并行架构加快了数据的收集和模型的更新速度。


5. Deep deterministic policy gradient(DDPG)


(1)DQN 与 DDPG 对比


DDPG 本质上也是用于解决连续控制问题的强化学习算法。它的确定性体现在模型直接输出具体的动作,而不是动作的概率分布。与离散动作空间的 DQN 不同,DDPG 针对连续动作空间进行了改进,适合处理连续性动作的场景,因此在输出时直接给出动作值,而非动作的概率分布。



DDPG 通过神经网络代替 max 函数,也是 Actor-Critic 架构



(2)DDPG 网络架构


在 DDPG 中,Critic 网络的输入是状态 SSS 和动作 AAA,输出对应的 Q 值,损失函数为 TD-Error。DDPG 的 Critic 网络主要计算 Q 值,而不像 Actor-Critic (AC) 计算的是 V 值,因此 DDPG 并不属于传统的策略梯度方法 (PG)。


Actor 网络直接输出动作 AAA,与 AC 不同的是,DDPG 的 Actor 网络输出的动作会被输入到 Critic 网络中,以最大化 Q 值。Actor 网络的更新方式也有区别,DDPG 通过梯度上升来最大化 Q 值,而不是像 PG 中通过带权重的梯度下降来优化策略。


由于参数变化频繁,直接更新会导致训练不稳定。因此,和 DQN 类似,DDPG 采用了固定网络(fixed network)的方式来稳定训练过程。


在实际应用中,DDPG 需要四个网络:Actor 网络、Critic 网络及其对应的两个目标网络,用于帮助稳定训练。



(3)正太分布抽样    


为了在选取动作时保持一定的随机性,DQN 采用的是 epsilon-greedy 策略,而 DDPG 使用正态分布进行采样来选择动作。


(4)TD3 优化 DDPG


TD3 的全称是 Twin Delayed DDPG(双延迟深度确定性策略网络),它旨在解决 DDPG 中 Q 值被高估的问题。TD3 的主要改进是使用两个 Critic 网络,并选择较小的 Q 值作为评估标准,从而减小高估带来的误差。


(5)Delayed Actor update


在 TD3 中,Actor 网络的更新速度较慢。Critic 网络相当于给 Actor 打分的老师,如果打分标准变化过快,Actor 网络的学习效果会变差,因此通过延迟 Actor 更新来提高稳定性。


五、PPO(Proximal Policy Optimization)


PPO 基于 Actor-Critic 架构;AC 架构优势:解决了连续动作空间问题;


1. AC 输出连续动作


离散动作:状态空间有限;连续动作:状态空间无限。



2. On-policy 和 Off-Policy


(1)为什么策略梯度(PG)是On-Policy?


PG方法需要使用当前策略生成的数据进行更新,因此数据采样与策略更新是同一个策略,称为On-Policy。


(2)如何将PG方法变为Off-Policy?


Off-Policy允许采样策略和更新策略不同。为此,需要通过挑选或者调整采样的数据来匹配更新的策略,从而使用历史数据或其他策略生成的样本进行训练。


(3)什么是重要性采样?


重要性采样是通过调整权重,将一个分布的采样数据转换为另一个分布的估计,从而允许在不同策略下使用数据进行策略更新。


(4)PG中如何使用重要性采样?


在PG中,通过为每个样本加权,衡量其对策略更新的重要性,更符合目标策略的样本对更新的影响更大,从而实现Off-Policy训练。


3. 增加约束


(1)增加约束的必要性


在重要性采样中,虽然可以保证两个分布的期望相近,但无法控制它们的方差。因此,为了防止两个分布之间的差异过大,从而放大方差的影响,通常需要增加约束。


(2)PPO(Proximal Policy Optimization)


PPO通过引入KL散度作为约束,来限制优化过程中策略之间的变化幅度。这种方法的好处在于,可以有效控制策略的更新,使得新旧策略之间的差异不至于太大,从而减少方差引起的波动。此外,PPO中的KL散度作用于策略的表现,而非参数本身,且可以根据具体情况动态调整。


(3)TRPO(Trust Region Policy Optimization)


TRPO采用了类似的思路,确保策略更新时,KL散度在一个可接受的范围内。通过这样的限制,TRPO可以有效避免策略更新带来的不稳定性,确保学习过程的稳健性。


(4)PPO2


PPO2在PPO的基础上进一步改进,通过裁剪更新范围来控制策略变化的幅度,取得了更好的效果。这样的设计使得策略在更新时更加稳健,减少了不必要的风险。


六、大语言模型中的强化学习


1. 大语言模型训练


第一阶段:预训练


模型通过大规模数据集学习基本语言结构和知识,掌握语言规律。


第二阶段:监督微调(SFT)


使用带标签的数据集对模型进行微调,提高其在特定任务上的表现。


第三阶段:基于人类反馈的强化学习(RLHF)


结合人类反馈优化模型,确保生成的内容符合人类期望和需求。


2. 监督微调


监督微调(SFT)是将预训练模型应用于特定任务的过程。模型通过带标签的数据集进行训练,以调整参数并提升在特定任务上的表现,从而在实际应用中提供更准确的输出。



3. 奖励模型训练


奖励模型训练是利用人类反馈来优化模型的过程。通过构建奖励模型,系统根据反馈信号学习为不同输出分配奖励或惩罚,从而引导模型做出更优决策。目标是提升模型在复杂环境中的表现。



4. 强化学习微调


强化学习微调(RLHF)是通过与环境互动来优化已预训练模型的过程。它利用奖励信号来调整模型的行为,从而提高其在特定任务中的表现。



5. 基于人类反馈的强化学习


基于人类反馈的强化学习(RLHF)微调旨在让模型生成更连贯的多步回答。这个过程涉及多个组件:


1.策略模型(Actor)负责生成行为或回答。


2.评论模型(Critic)评估策略模型的表现,提供反馈。


3.奖励模型通过人类反馈为不同输出分配奖励,帮助模型学习。


4.回报(Return)表示从当前状态到最终状态的累计奖励。


在RLHF中,系统分为上下两个区域:上半区的采样模型与环境交互,生成数据并存入经验池;下半区的梯度更新模型则利用这些经验来更新策略梯度。


SFT模型作为参考模型,约束了采样模型与梯度更新模型之间的分布差异,确保它们不会相差太远。通过PPO-Clip方法,重要性权重在更新时进行裁剪,以控制方差,提升训练稳定性。    


这种方法的核心在于通过



文章来自于微信公众号“求知AI”,作者“木木JS”


AITNT资源拓展
根据文章内容,系统为您匹配了更有价值的资源信息。内容由AI生成,仅供参考
1
智能体

【开源免费】AutoGPT是一个允许用户创建和运行智能体的(AI Agents)项目。用户创建的智能体能够自动执行各种任务,从而让AI有步骤的去解决实际问题。

项目地址:https://github.com/Significant-Gravitas/AutoGPT


【开源免费】MetaGPT是一个“软件开发公司”的智能体项目,只需要输入一句话的老板需求,MetaGPT即可输出用户故事 / 竞品分析 / 需求 / 数据结构 / APIs / 文件等软件开发的相关内容。MetaGPT内置了各种AI角色,包括产品经理 / 架构师 / 项目经理 / 工程师,MetaGPT提供了一个精心调配的软件公司研发全过程的SOP。

项目地址:https://github.com/geekan/MetaGPT/blob/main/docs/README_CN.md

2
微调

【开源免费】XTuner 是一个高效、灵活、全能的轻量化大模型微调工具库。它帮助开发者提供一个简单易用的平台,可以对大语言模型(LLM)和多模态图文模型(VLM)进行预训练和轻量级微调。XTuner 支持多种微调算法,如 QLoRA、LoRA 和全量参数微调。

项目地址:https://github.com/InternLM/xtuner