Implicit Behavioral Cloning
- 文章概括
- 摘要
- [1 引言](#1 引言)
- [2 背景:隐式模型的训练与推理](#2 背景:隐式模型的训练与推理)
- [3 隐式模型与显式模型的有趣属性](#3 隐式模型与显式模型的有趣属性)
- [4 policy学习成果](#4 policy学习成果)
- [5 理论见解:隐式模型的通用逼近性](#5 理论见解:隐式模型的通用逼近性)
- [6 相关工作](#6 相关工作)
- [7 结论](#7 结论)
文章概括
引用:
bash
@inproceedings{florence2022implicit,
title={Implicit behavioral cloning},
author={Florence, Pete and Lynch, Corey and Zeng, Andy and Ramirez, Oscar A and Wahid, Ayzaan and Downs, Laura and Wong, Adrian and Lee, Johnny and Mordatch, Igor and Tompson, Jonathan},
booktitle={Conference on Robot Learning},
pages={158--168},
year={2022},
organization={PMLR}
}
markup
Florence, P., Lynch, C., Zeng, A., Ramirez, O.A., Wahid, A., Downs, L., Wong, A., Lee, J., Mordatch, I. and Tompson, J., 2022, January. Implicit behavioral cloning. In Conference on Robot Learning (pp. 158-168). PMLR.
原文: https://proceedings.mlr.press/v164/florence22a
代码、数据和视频: https://github.com/ACRoboT-buaa/RobotDiffuse
系列文章:
请在 《 《 《文章 》 》 》 专栏中查找
摘要
我们发现,在广泛的机器人策略学习场景中,使用隐式模型进行监督策略学习通常比常用的显式模型平均表现更好。我们对此发现进行了广泛的实验,并提供了区分隐式模型和其显式对应模型特性的直观见解和理论论证,特别是在逼近复杂的、可能不连续的、多值(集合值)函数方面。在机器人策略学习任务中,我们展示了基于能量模型(EBM)的隐式行为克隆策略通常优于常见的显式行为克隆策略(如均方误差或混合密度策略),包括在具有高维动作空间和视觉图像输入的任务中。我们发现,这些策略在D4RL基准测试套件中由人类专家提供的离线强化学习任务中,能够与最先进的离线强化学习方法竞争,甚至表现更优,尽管这些策略未使用任何奖励信息。在现实世界中,使用隐式策略的机器人可以从人类演示中学习复杂且微妙的行为,包括涉及接触丰富的任务、高组合复杂性的任务,以及需要1毫米精度的任务。
关键词:隐式模型,能量模型,模仿学习
1 引言
行为克隆(Behavioral Cloning, BC)[1] 仍然是获取机器人实际技能最简单的机器学习方法之一。BC将专家演示的模仿视为一个监督学习问题,尽管其缺点(例如误差累积 [2, 3])在实践和理论上都存在合理的担忧,但实际上它能够使机器人在复杂行为上实现向新非结构化场景的泛化,从而产生一些最引人注目的成果 [4, 5, 6]。尽管已有大量研究致力于开发新的模仿学习方法 [7, 8, 9] 以解决BC已知的局限性,但我们在此探讨了一个被广泛忽视的基本设计决策:策略本身的形式。与许多其他监督学习方法一样,BC策略通常由显式连续前馈模型表示(例如,深度网络),其形式为 a ^ = F θ ( o ) \hat{a} = F_\theta(\mathbf{o}) a^=Fθ(o),直接将输入观测 o \mathbf{o} o 映射到输出动作 a ∈ A \mathrm{a} \in \mathcal{A} a∈A。但是,如果 F θ F_\theta Fθ 不是一个合适的选择怎么办?
在本研究中,我们提出使用隐式模型重新构建BC------具体来说,使用与连续能量函数 E θ E_\theta Eθ 组合的 a r g m i n \rm{argmin} argmin 运算来表示策略 π θ \pi_\theta πθ(定义见第2节):
a ^ = arg min a ∈ A E θ ( o , a ) instead of a ^ = F θ ( o ) . \hat{\mathbf{a}} = \underset{\mathbf{a} \in \mathcal{A}}{\arg\min} \, E_\theta(\mathbf{o}, \mathbf{a}) \quad \text{instead of} \quad \hat{\mathbf{a}} = F_\theta(\mathbf{o}). a^=a∈AargminEθ(o,a)instead ofa^=Fθ(o).
这将模仿问题表述为一个条件能量模型(Conditional Energy-Based Modeling,EBM)问题 [10](如图1所示),并在推理时(给定 o \mathbf{o} o)通过采样或梯度下降 [11, 12] 优化以获得最优动作 a ^ \hat{\mathbf{a}} a^,从而执行隐式回归。尽管隐式模型已被用作各种强化学习(Reinforcement Learning,RL)方法中的部分组件(例如,价值函数)[13, 14, 15, 16],我们的工作提出了一种不同但简单的方法:使用隐式模型进行行为克隆(BC)。此外,这还开启了一个独特的案例研究,研究隐式与显式策略之间的选择,这可能为超越行为克隆的其他策略学习设置提供启发。
图1。(a)与显式策略相比,隐式策略利用参数化的能量函数,将观测(例如图像)和动作作为输入,通过优化动作以最小化能量分布图(b)。对于复杂的、闭环的、多模态视觉运动任务(例如从人类演示中学习精确的方块插入(c)和分类(d)任务),隐式策略的表现显著优于显式策略。
我们的实验表明,这一简单的改变可以在各种接触密集型任务中显著提升性能:从双手用铲子将小物体堆放入碗中,到以1毫米精度将方块精确推动到夹具中,再到按颜色分类混合方块集合。结果表明,行为克隆的隐式模型比其显式模型更擅长学习长时间跨度的闭环视觉运动任务------令人惊讶的是,这催生了一类新的行为克隆基准,其在标准模拟基准 [17] 上与最先进的离线强化学习算法具有竞争力。
为了揭示这些结果,我们提供了关于隐式模型直观特性的观察,并提出了理论上的解释,认为这对它们部分成功至关重要:它们不仅能够表示多模态分布,还能够表示不连续函数。
论文结构。在简要介绍背景(第2节)之后,为了帮助直观理解隐式模型的本质,我们展示其经验性质(第3节)。随后,我们在模拟任务和真实环境中展示策略学习的主要结果(第4节)。受这些结果的启发,我们提供理论见解(第5节),然后是相关工作(第6节)和结论(第7节)。
2 背景:隐式模型的训练与推理
我们将隐式模型定义为任意组合形式 ( a r g m i n y ∘ E θ ( x , y ) ) ({\rm argmin}{\rm{y}} \circ E\theta(\rm{x, y})) (argminy∘Eθ(x,y)),其中推理通过一些通用函数近似器 E : R m + n → R 1 E: \mathbb{R}^{m+n} \to \mathbb{R}^1 E:Rm+n→R1 解决优化问题 y ^ = a r g m i n y E θ ( x , y ) \hat{\rm{y}} = {\rm argmin}{\rm{y}} \ \ E\theta(\rm{x}, \rm{y}) y^=argminy Eθ(x,y)。我们采用能量模型(Energy-Based Model,EBM)文献中的技术对这样的模型进行训练。给定样本数据集 { x i , y i } \{\rm{x}\mathcal{i}, \rm{y}\mathcal{i}\} {xi,yi} 和回归范围 y m i n , y m a x ∈ R m \rm y_{\rm min}, \rm y_{\rm max} \in \mathbb{R}^\mathcal{m} ymin,ymax∈Rm,训练包括为批次中的每个样本 x i \rm{x}\mathcal{i} xi 生成一组负对比样本 { y ~ i j } j = 1 N n e g \{\tilde{\rm{y}}i^j\}{j=1}^{N{\rm{neg}}} {y~ij}j=1Nneg,并采用 InfoNCE 风格的损失函数 [18]。
这段话描述了一种结合对比学习(Contrastive Learning)和回归任务 的训练方法,特别是使用InfoNCE(Noise Contrastive Estimation) 风格的损失函数来优化模型。这种方法通过引入负对比样本,增强了模型对目标变量的判别能力。
负对比样本:
- 对于每个输入样本 x i \mathbf{x}i xi,我们需要生成 N neg N{\text{neg}} Nneg 个负对比样本 :
{ y ~ i j } j = 1 N neg \{\tilde{\mathbf{y}}i^j\}{j=1}^{N_{\text{neg}}} {y~ij}j=1Nneg
负对比样本的含义:
- 负对比样本 y ~ i j \tilde{\mathbf{y}}_i^j y~ij 是目标输出 y i \mathbf{y}_i yi 的"对比"值,通常是一些错误的或者虚假的目标值。
- 它们用于增强模型对真实目标 y i \mathbf{y}_i yi 的辨别能力。
生成方式:
- 负对比样本可以通过以下方式生成:
- 随机采样 :从 [ y min , y max ] [\mathbf{y}{\text{min}}, \mathbf{y}{\text{max}}] [ymin,ymax] 的范围内随机选取值。
- 扰动 :在真实目标 y i \mathbf{y}_i yi 的基础上添加一定的噪声或偏差。
- 从其他样本中选取:从其他样本的目标值中选择。
作用:
- 判别能力增强 :负样本用于训练模型,使模型能够更好地区分真实目标 y i \mathbf{y}_i yi 和错误的 y ~ i j \tilde{\mathbf{y}}_i^j y~ij,从而提升模型的判别能力。
- 避免模型过拟合:在仅有真实目标作为监督信号的情况下,模型可能过拟合到训练数据。负对比样本为模型提供了额外的信息,改善了泛化能力。
- 提升回归精度:通过对真实目标的正向优化和对负样本的排斥,模型能够更精确地拟合数据并减少预测误差。
这一损失函数等价于对条件概率密度
p θ ( y ∣ x ) = e − E θ ( x , y ) Z ( x , θ ) p_\theta(\rm{y}|\rm{x}) = \frac{\mathnormal{e}^{-\mathnormal{E}_\theta(x, y)}}{\mathnormal{Z}(x, \theta)} pθ(y∣x)=Z(x,θ)e−Eθ(x,y)
的负对数似然。
然后负对比样本用于估计 Z ( x i , θ ) Z(\text{x}_i, \theta) Z(xi,θ):
L InfoNCE = ∑ i = 1 N − log ( p ~ θ ( y i ∣ x , { y ~ i j } j = 1 N neg ) ) , \mathcal{L}{\text{InfoNCE}} = \sum{i=1}^N -\log\left(\tilde{p}\theta(\text{y}\mathcal{i}|\text{x}, \{\tilde{y}\mathcal{i}^\mathcal{j}\}{\mathcal{j}=1}^{N_{\text{neg}}})\right), LInfoNCE=i=1∑N−log(p~θ(yi∣x,{y~ij}j=1Nneg)),
p ~ θ ( y i ∣ x , { y ~ i j } j = 1 N neg ) = e − E θ ( x i , y i ) e − E θ ( x i , y i ) + ∑ j = 1 N neg e − E θ ( x i , y ~ i j ) . \tilde{p}\theta(\text{y}i|\text{x}, \{\tilde{\text{y}}i^j\}{j=1}^{N{\text{neg}}}) = \frac{e^{-E\theta(\text{x}i, \text{y}i)}}{e^{-E\theta(\text{x}i, \text{y}i)} + \sum{j=1}^{N{\text{neg}}} e^{-E\theta(\text{x}_i, \tilde{\text{y}}_i^j)}}. p~θ(yi∣x,{y~ij}j=1Nneg)=e−Eθ(xi,yi)+∑j=1Nnege−Eθ(xi,y~ij)e−Eθ(xi,yi).
通过训练的能量模型 E θ ( x , y ) E_\theta(\text{x}, \text{y}) Eθ(x,y),可以使用随机优化方法执行隐式推理,以求解 y ^ = arg min y E θ ( x , y ) \hat{\text{y}} = \arg\min_\text{y} E_\theta(\text{x}, \text{y}) y^=argminyEθ(x,y)。
在这段话中, Z ( x i , θ ) Z(\mathbf{x}_i, \theta) Z(xi,θ) 是一个配分函数(Partition Function) ,也称为规范化因子(Normalization Factor),它的作用是将未经归一化的概率分布转化为一个有效的概率分布,使得概率的总和为 1。
- 配分函数的定义
概率密度函数 p θ ( y ∣ x ) p_\theta(\mathbf{y}|\mathbf{x}) pθ(y∣x) 定义为: p θ ( y ∣ x ) = exp ( − E θ ( x , y ) ) Z ( x , θ ) p_\theta(\mathbf{y}|\mathbf{x}) = \frac{\exp(-E_\theta(\mathbf{x}, \mathbf{y}))}{Z(\mathbf{x}, \theta)} pθ(y∣x)=Z(x,θ)exp(−Eθ(x,y))
其中:
- E θ ( x , y ) E_\theta(\mathbf{x}, \mathbf{y}) Eθ(x,y):一个能量函数(Energy Function),表示输入 x \mathbf{x} x 和输出 y \mathbf{y} y 之间的某种"能量"或"得分"。
- Z ( x , θ ) Z(\mathbf{x}, \theta) Z(x,θ):配分函数,用于归一化未归一化的概率密度,使得条件概率 p θ ( y ∣ x ) p_\theta(\mathbf{y}|\mathbf{x}) pθ(y∣x) 是一个合法的概率分布。
配分函数的计算公式为: Z ( x , θ ) = ∫ y ∈ Y exp ( − E θ ( x , y ) ) d y Z(\mathbf{x}, \theta) = \int_{\mathbf{y} \in \mathcal{Y}} \exp(-E_\theta(\mathbf{x}, \mathbf{y})) \, d\mathbf{y} Z(x,θ)=∫y∈Yexp(−Eθ(x,y))dy
其中:
- Y \mathcal{Y} Y:表示 y \mathbf{y} y 的定义域(例如可能的输出空间)。
- 配分函数是 y \mathbf{y} y 上所有未归一化概率的累积和。
- 配分函数的作用
配分函数 Z ( x , θ ) Z(\mathbf{x}, \theta) Z(x,θ) 的主要作用是将能量函数的输出转化为概率分布:
- 未经归一化的概率是 exp ( − E θ ( x , y ) ) \exp(-E_\theta(\mathbf{x}, \mathbf{y})) exp(−Eθ(x,y)),它可能不是一个合法的概率分布。
- 通过配分函数 Z ( x , θ ) Z(\mathbf{x}, \theta) Z(x,θ),确保归一化后的概率密度满足: ∫ y ∈ Y p θ ( y ∣ x ) d y = 1 \int_{\mathbf{y} \in \mathcal{Y}} p_\theta(\mathbf{y}|\mathbf{x}) \, d\mathbf{y} = 1 ∫y∈Ypθ(y∣x)dy=1
- InfoNCE 损失中的配分函数
在 InfoNCE 损失的背景下,配分函数 Z ( x i , θ ) Z(\mathbf{x}i, \theta) Z(xi,θ) 的估计是通过引入负对比样本来实现的。负对比样本 { y ~ i j } j = 1 N neg \{\tilde{\mathbf{y}}i^j\}{j=1}^{N{\text{neg}}} {y~ij}j=1Nneg 的作用是近似计算配分函数。具体来说: Z ( x i , θ ) ≈ ∑ j = 1 N neg exp ( − E θ ( x i , y ~ i j ) ) Z(\mathbf{x}i, \theta) \approx \sum{j=1}^{N_{\text{neg}}} \exp(-E_\theta(\mathbf{x}_i, \tilde{\mathbf{y}}_i^j)) Z(xi,θ)≈j=1∑Nnegexp(−Eθ(xi,y~ij))
为什么需要负对比样本?
- 配分函数 Z ( x i , θ ) Z(\mathbf{x}_i, \theta) Z(xi,θ) 通常是一个对 y \mathbf{y} y 的积分(或求和),在高维空间中直接计算非常困难。
- 通过引入负对比样本 { y ~ i j } \{\tilde{\mathbf{y}}_i^j\} {y~ij},我们可以对 Z ( x i , θ ) Z(\mathbf{x}_i, \theta) Z(xi,θ) 进行近似,从而大幅减少计算复杂度。
- 配分函数的实际意义
配分函数 Z ( x i , θ ) Z(\mathbf{x}_i, \theta) Z(xi,θ) 的实际意义是:
- 它是 x i \mathbf{x}_i xi 条件下所有可能的输出 y \mathbf{y} y 的总"能量"。
- 它确保 p θ ( y ∣ x ) p_\theta(\mathbf{y}|\mathbf{x}) pθ(y∣x) 是一个合法的概率分布,使得概率密度在整个输出空间上积分为 1。
- 结合 InfoNCE 的解释
在 InfoNCE 损失中,负对比样本用于对配分函数 Z ( x i , θ ) Z(\mathbf{x}i, \theta) Z(xi,θ) 进行估计,从而避免直接计算整个输出空间上的积分。通过负对比样本,我们能够有效地将对比学习中的目标函数转化为一个可计算的优化目标。例如: L = − log exp ( − E θ ( x i , y i ) ) exp ( − E θ ( x i , y i ) ) + ∑ j = 1 N neg exp ( − E θ ( x i , y ~ i j ) ) \mathcal{L} = -\log \frac{\exp(-E\theta(\mathbf{x}i, \mathbf{y}i))}{\exp(-E\theta(\mathbf{x}i, \mathbf{y}i)) + \sum{j=1}^{N{\text{neg}}} \exp(-E\theta(\mathbf{x}_i, \tilde{\mathbf{y}}_i^j))} L=−logexp(−Eθ(xi,yi))+∑j=1Nnegexp(−Eθ(xi,y~ij))exp(−Eθ(xi,yi))
- 分子部分是正样本的得分。
- 分母部分近似 Z ( x i , θ ) Z(\mathbf{x}_i, \theta) Z(xi,θ),通过负对比样本来估计。
- 总结
分为3点:
- 配分函数 Z ( x , θ ) Z(\mathbf{x}, \theta) Z(x,θ) 是一个归一化因子,确保 p θ ( y ∣ x ) p_\theta(\mathbf{y}|\mathbf{x}) pθ(y∣x) 是一个合法的概率分布。
- 在高维空间中直接计算配分函数通常非常困难,因此使用负对比样本来进行近似。
- 这种方法结合了对比学习和概率密度估计,通过优化 InfoNCE 风格的损失函数来提高模型的表现能力。
为了展示不同方法的广泛适用性,我们在此展示了三种不同的EBM训练和推理方法,尽管对所有EBM变体进行全面比较超出了本文的范围;关于更全面的参考,请参阅[19]。我们采用以下方法之一:
a) 无导数(基于采样)的优化程序;
b) 无导数优化器的自回归变体,该方法执行坐标下降;
c) 基于梯度的Langevin采样方法[11, 12],在训练期间使用梯度惩罚[20]损失函数。
有关这些方法的描述和比较,请参阅附录。
3 隐式模型与显式模型的有趣属性
考虑一个显式模型 y = f θ ( x ) \text{y} = f_\theta(\text{x}) y=fθ(x),以及一个隐式模型 arg min y E θ ( x , y ) \arg\min_\text{y} E_\theta(\text{x}, \text{y}) argminyEθ(x,y),其中 f θ ( ⋅ ) f_\theta(·) fθ(⋅)和 E θ ( ⋅ ) E_\theta(·) Eθ(⋅)都由几乎相同的网络架构表示。在比较这两种模型时,我们研究以下几个方面:
- (i) 它们在不连续点附近的表现如何?
- (ii) 它们如何拟合多值函数?
- (iii) 它们如何进行外推?
对于 f θ f_\theta fθ和 E θ E_\theta Eθ,我们使用几乎相同的带有ReLU激活的全连接多层感知机(MLP),唯一的区别是后者(隐式模型)中多了一个 y \text{y} y作为输入。显式"MSE"模型通过均方误差(Mean Square Error, MSE)进行训练,显式"MDN"模型是混合密度网络(Mixture Density Networks, MDN)[21],隐式"EBM"模型通过 L InfoNCE \mathcal{L}_{\text{InfoNCE}} LInfoNCE进行训练,并使用无导数优化方法进行优化。
均方差(Mean Squared Error, MSE)
均方差是统计学和机器学习中一种常用的损失函数,用于评估预测值与真实值之间的偏离程度。它通过计算预测误差的平方平均值,反映了预测结果与实际值之间的差异程度。
公式
假设我们有 n n n 个样本数据集 { ( y i , y ^ i ) } i = 1 n \{(y_i, \hat{y}i)\}{i=1}^n {(yi,y^i)}i=1n,其中:
- y i y_i yi:真实值。
- y ^ i \hat{y}_i y^i:预测值。
均方差的计算公式为: MSE = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 \text{MSE} = \frac{1}{n} \sum_{i=1}^n (y_i - \hat{y}_i)^2 MSE=n1i=1∑n(yi−y^i)2
其中:
- y i − y ^ i y_i - \hat{y}_i yi−y^i:预测值与真实值的差异,称为误差(error)。
- ( y i − y ^ i ) 2 (y_i - \hat{y}_i)^2 (yi−y^i)2:误差的平方,用于消除正负误差的抵消问题,同时对大误差进行更显著的惩罚。
混合密度网络(Mixture Density Networks, MDN)混合密度网络(Mixture Density Networks, MDN)是一种结合了神经网络和概率模型的技术,用于解决复杂的不确定性问题。它特别适合用于建模输出的多模态分布 (即输出可能有多个峰值)。MDN通过使用混合高斯分布或其他概率分布来描述输出变量的条件概率分布,而不是简单地拟合单值输出。这种方法能够有效处理一对多的映射关系(例如,给定输入可能对应多个不同的输出)。
- MDN 的工作原理
MDN 的目标是对条件概率密度 p ( y ∣ x ) p(y | x) p(y∣x) 进行建模,其中:
- x x x 是输入变量;
- y y y 是目标输出变量。
MDN 使用一个神经网络将输入 x x x 映射到混合模型参数(如高斯分布的均值、方差和权重),然后利用这些参数生成输出分布。
- 模型结构
分成4个部分:
输入层:
- 接受输入特征 x x x。
隐藏层:
- 使用神经网络的隐藏层提取输入 x x x 的特征。
输出层:
- 输出混合分布的参数(例如高斯分布的参数):
- 每个分量的均值 μ k \mu_k μk;
- 每个分量的标准差 σ k \sigma_k σk;
- 每个分量的权重 π k \pi_k πk(满足 ∑ k π k = 1 \sum_k \pi_k = 1 ∑kπk=1)。
- 如果混合分布有 K K K 个分量,神经网络的输出形状为:
{ π 1 , π 2 , ... , π K ; μ 1 , μ 2 , ... , μ K ; σ 1 , σ 2 , ... , σ K } \{\pi_1, \pi_2, \dots, \pi_K; \mu_1, \mu_2, \dots, \mu_K; \sigma_1, \sigma_2, \dots, \sigma_K\} {π1,π2,...,πK;μ1,μ2,...,μK;σ1,σ2,...,σK}概率输出:
- MDN 的输出是一个概率分布 p ( y ∣ x ) p(y | x) p(y∣x),而不是单一的点估计值。
- 对于混合高斯分布,这个概率分布可以表示为:
p ( y ∣ x ) = ∑ k = 1 K π k ( x ) N ( y ; μ k ( x ) , σ k ( x ) ) p(y | x) = \sum_{k=1}^K \pi_k(x) \mathcal{N}(y; \mu_k(x), \sigma_k(x)) p(y∣x)=k=1∑Kπk(x)N(y;μk(x),σk(x))
其中:
- π k ( x ) \pi_k(x) πk(x):第 k k k 个高斯分量的权重;
- μ k ( x ) \mu_k(x) μk(x):第 k k k 个高斯分量的均值;
- σ k ( x ) \sigma_k(x) σk(x):第 k k k 个高斯分量的标准差。
MDN 的训练目标
负对数似然损失(Negative Log-Likelihood, NLL) MDN 的训练目标是通过最大化 目标分布的似然函数 (Likelihood Function)来优化模型参数。等价于最小化负对数似然损失: L = − log p ( y ∣ x ) \mathcal{L} = -\log p(y | x) L=−logp(y∣x)
将混合高斯分布代入,具体的损失函数形式为: L = − log ( ∑ k = 1 K π k ( x ) N ( y ; μ k ( x ) , σ k ( x ) ) ) \mathcal{L} = -\log\left( \sum_{k=1}^K \pi_k(x) \mathcal{N}(y; \mu_k(x), \sigma_k(x)) \right) L=−log(k=1∑Kπk(x)N(y;μk(x),σk(x)))
训练的过程是调整神经网络的权重,使得它输出的分布参数 { π k , μ k , σ k } \{\pi_k, \mu_k, \sigma_k\} {πk,μk,σk}
能够最准确地拟合给定的样本数据 { x , y } \{x, y\} {x,y}。
MDN 的特点
有3个主要特点:
多模态输出:
- 能够捕捉多模态分布。例如,给定 x x x,输出 y y y 可能有多个值,每个值对应一个概率分布的峰值。
- 适合一对多映射的任务(如交通流量预测、语音建模等)。
不确定性估计:
- MDN 能够通过分布参数(如 σ k \sigma_k σk)自然地估计输出的不确定性。
灵活性:
- MDN 可以使用任何概率分布(如高斯分布、泊松分布等)来建模 p ( y ∣ x ) p(y | x) p(y∣x),不局限于单一的高斯分布。
MDN 的优缺点
优点
- 能够处理复杂的多模态分布。
- 提供的不仅是点估计,还能输出概率分布,反映不确定性。
- 灵活性高,可用于回归任务,也可扩展到分类任务。
缺点
- 训练过程可能比较复杂,尤其是当分布的分量数 K K K 较多时。
- 负对数似然损失的梯度可能存在数值稳定性问题。
- 需要选择合适的分布和分量数 K K K,否则可能导致过拟合或欠拟合。
一个简单的例子
假设我们有一个数据集:
- x x x 是时间;
- y y y 是温度。
在某些时间点,温度可能有多种可能值(例如,由于天气的不确定性)。MDN 的目标是学到以下的条件概率分布: p ( y ∣ x ) = π 1 N ( y ; μ 1 , σ 1 ) + π 2 N ( y ; μ 2 , σ 2 ) p(y | x) = \pi_1 \mathcal{N}(y; \mu_1, \sigma_1) + \pi_2 \mathcal{N}(y; \mu_2, \sigma_2) p(y∣x)=π1N(y;μ1,σ1)+π2N(y;μ2,σ2)这表示,给定时间 x x x,温度可能的分布由两个高斯分布的加权和表示。
总结
混合密度网络(MDN)是一种非常强大的工具,用于解决多模态分布问题。它结合神经网络的表示能力和混合概率模型的灵活性,能够处理复杂的条件概率分布。MDN 在对回归任务中需要描述多种可能输出的场景中特别有用。
如图2和图3所示,模型在若干 R 1 → R 1 \mathbb{R}^1 \to \mathbb{R}^1 R1→R1函数(图2)和多值函数(图3)上进行了训练。对于每种情况,我们研究了不连续区域、多模态特性和/或外推性能。
图2. 隐式模型与显式模型在学习一维函数 R 1 → R 1 \mathbb{R}^1 \to \mathbb{R}^1 R1→R1上的比较。
图中展示了超出训练样本范围( x = [ 0 , 1 ] x=[0,1] x=[0,1]之外)的外推行为以及在不连续点的插值行为(红色插图)的详细视图。(a,d) 表示在常量值之间的单一不连续性;(b,e) 表示具有不同 d y / d x dy/dx dy/dx的分段连续区域;(c,f) 表示未正则化模型下的随机高斯噪声行为。
图3. 多值函数的表示
展示了训练样本之外(显示的"X"训练样本范围之外)的外推表现,以及显著区域的详细视图。(a,d) 表示具有不连续性和模式数量变化的分割圆;(b,e) 表示局部连续曲线,呈现迟滞行为;(c,f) 表示具有不相交的均匀有效范围的集合函数。
图2,3描述了隐式模型 (Implicit Model)和显式模型 (Explicit Model)在学习函数映射(特别是多值函数和不连续区域)时的行为差异。重点关注了外推能力 (对训练样本范围外的推断能力)和不连续点插值性能。以下是逐步解析:
- 任务背景
目标是训练模型从输入空间 R 1 \mathbb{R}^1 R1 映射到输出空间 R 1 \mathbb{R}^1 R1 ( R 1 → R 1 \mathbb{R}^1 \to \mathbb{R}^1 R1→R1) 或多值输出函数。这里的任务包括:
- 在不连续区域进行插值;
- 对多模态特性(同一个输入对应多个可能输出)进行建模;
- 测试模型在训练样本范围之外的外推性能。
隐式模型 和显式模型的区别:
隐式模型:
- 使用能量函数 E θ ( x , y ) E_\theta(x, y) Eθ(x,y) 来建模输入 x x x 和输出 y y y 的关系,通过优化确定条件概率分布 p ( y ∣ x ) p(y|x) p(y∣x):
y ^ = arg min y E θ ( x , y ) \hat{y} = \arg\min_y E_\theta(x, y) y^=argyminEθ(x,y)- 输出是通过优化能量函数得到的,与传统直接预测方法不同。
- 能更自然地处理多模态问题。
显式模型:
- 建立直接的函数映射 y ^ = f θ ( x ) \hat{y} = f_\theta(x) y^=fθ(x)。
- 常用损失函数(如均方误差 MSE)进行训练。
- 适合单模态任务,但难以建模多模态分布。
- 图 2 和图 3 解析
图 2:学习一维函数( R 1 → R 1 \mathbb{R}^1 \to \mathbb{R}^1 R1→R1)
图 2 展示了隐式模型和显式模型在不同类型的一维函数映射上的表现,包括外推行为(超出训练数据范围的预测)和插值性能(不连续点附近的预测)。
(a) 和 (d) :单一不连续性
- 函数是一个具有单一不连续点的常量值分段函数。
例如: y = 0 when x < 0.5 y = 0 \text{ when } x < 0.5 y=0 when x<0.5 y = 1 otherwise y = 1 \text{ otherwise} y=1 otherwise- 隐式模型 (a) :
- 在不连续点附近表现更好,能够较好地捕捉分段的转变。
- 提供了平滑的密度分布,可解释性更强。
- 显式模型 (d) :
- 在不连续点处插值不准确,往往会产生不合理的过渡。
(b) 和 (e) :分段连续区域
- 函数由具有不同导数(斜率)的分段连续区域组成。
- 隐式模型 (b) :
- 更能适应斜率的突然变化,尤其是在分段点附近,模型能够保持准确的分布。
- 显式模型 (e) :
- 难以应对斜率的变化,在分段点附近可能出现异常。
(c)和 (f) :随机高斯噪声
- 函数是一个随机生成的噪声分布。
- 隐式模型(c) :
- 能够学习到噪声分布的整体特性,生成密度分布图,较好地刻画了噪声行为。
- 显式模型 (f) :
- 过拟合噪声点,表现为随机波动的曲线,难以生成稳定的分布。
图 3:学习多值函数
图 3 展示了隐式模型和显式模型在多模态函数上的表现。这些函数中,同一个输入 x x x 对应多个输出 y y y,模型需要对这种多模态关系进行建模。
(a) 和 (d) :分割圆
- 函数呈现为一个分割圆(具有明显的不连续点和模式数量的变化)。
- 隐式模型 (a) :
- 能够捕捉不连续区域,并清晰地区分不同模式,提供了可靠的密度估计。
- 显式模型 (d) :
- 难以建模不连续性和模式变化,输出的映射可能无法覆盖所有可能模式。
(b) 和 (e) :局部连续曲线(迟滞行为)
- 函数呈现为具有迟滞行为的连续曲线(即输出值依赖于路径)。
- 隐式模型 (b) :
- 模型能够清楚地表示路径依赖的行为,密度分布覆盖了多种可能性。
- 显式模型 (e) :
- 难以捕捉路径依赖行为,可能会丢失部分模式。
(c)和 (f) :集合函数
- 函数是多个独立区域的组合。
- 隐式模型(c) :
- 对每个区域的分布均有准确的估计,能够很好地捕捉到不相交的有效范围。
- 显式模型 (f) :
- 难以清晰地区分不相交的范围,可能出现错误的连接。
- 隐式模型与显式模型的对比
隐式模型
- 优势:
- 自然处理多模态分布(如图 3 中的分割圆或迟滞行为)。
- 更适合建模不连续区域(如图 2 的单一不连续性)。
- 输出的是概率密度分布,提供不确定性估计。
- 缺点:
- 训练时间较长(需要优化能量函数)。
- 可能依赖于初始值的选择,优化复杂度较高。
显式模型
- 优势:
- 简单直观,直接预测 y ^ \hat{y} y^。
- 训练效率高(例如使用 MSE 损失)。
- 缺点:
- 难以处理多模态分布(如多值输出)。
- 在不连续点或模式变化处表现较差。
- 研究目标总结
通过这些实验和可视化,作者旨在研究:
- 隐式模型和显式模型在不连续区域的表现。
- 多模态问题(如多个可能的输出模式)的建模能力。
- 在训练样本范围之外的外推能力(是否能合理预测未知输入)。
- 实际意义
这些研究结果表明,隐式模型更适合复杂任务(多模态分布、不连续区域建模、外推),而显式模型更适合单模态、连续分布任务。根据实际需求选择合适的模型类型,可以显著提高模型在特定任务上的性能。
不连续性
隐式模型能够在不引入中间伪影的情况下锐利地近似不连续性(图2a),而显式模型(图2d)因为对数据拟合的是连续函数,在训练样本之间取所有中间值。随着不连续性的频率增加,隐式模型在不连续性处的预测仍然保持锐利,同时尊重局部连续性,并在训练样本之间以分段线性外推直至某个决策边界(图2a-c)。显式模型则在每个不连续性处进行插值(图2d-f)。当训练数据是无关的(即随机噪声)且没有正则化时(图2c, 图2f),隐式模型表现出类似最近邻的行为,但在每个样本周围仍存在非零的 ∂ y ∂ x \frac{\partial y}{\partial x} ∂x∂y分段。
- 不连续性
1.1 隐式模型在不连续性上的表现
- 锐利近似不连续性 当目标函数存在不连续点时,隐式模型往往能"锐利地"逼近这些不连续处,而不会在不连续点之间引入并不存在的平滑过渡(即"伪影")。
- 分段线性外推 隐式模型对训练样本之间的插值/外推倾向于以分段线性方式进行:在某个决策边界前后,模型会近似最邻近的训练数据,而在每个局部段内保持线性形态。
- 无正则化条件下的随机噪声 如果训练数据是随机噪声且没有正则化,隐式模型会表现出近似"最近邻"的行为,但仍然在每个样本局部保持一定的斜率( ∂ y ∂ x \frac{\partial y}{\partial x} ∂x∂y 非零),而不是单纯"跳"到某个常数值。
1.2 显式模型在不连续性上的插值
在不连续点进行插值 与隐式模型相比,显式模型默认对数据进行连续化的拟合,即在训练样本间"填补"所有中间数值,所以在不连续点会产生过渡插值,从而无法精准地保持不连续的"锐利"跳变。
随着不连续的频率增加 当目标函数有更多且更密集的不连续点时,显式模型会在每个不连续点都做插值,导致模型在多个位置出现不恰当的平滑过渡。
在这里,"插值/外推"指的是模型在训练样本覆盖范围内的预测 (插值)和训练样本覆盖范围外的预测(外推)。具体来说:插值(Interpolation) :当输入 x x x 落在已有训练样本 x i x_i xi 所覆盖的区间或凸包之内时,模型对这些训练点之间的区域进行预测,这称为"插值"。也就是模型在"已知"区域内,对尚未见过的具体点做出估计。
外推(Extrapolation) :当输入 x x x 超出所有训练样本 x i x_i xi 的区间(或凸包)范围时,模型对完全未知的区域进行预测,这被称为"外推"。外推往往更具挑战性,因为模型缺乏直接相关的训练样本做参考,需要依赖对整体规律或趋势的"推断"来给出预测。
举个简单例子:
假设我们在区间 [ 0 , 1 ] [0,1] [0,1] 上收集了一些训练数据,用来学习一个函数 f ( x ) f(x) f(x)。这些训练点可能是 x = { 0 , 0.2 , 0.4 , 0.6 , 0.8 , 1.0 } x = \{0, 0.2, 0.4, 0.6, 0.8, 1.0\} x={0,0.2,0.4,0.6,0.8,1.0}以及对应的目标值 f ( x i ) f(x_i) f(xi)。
插值(Interpolation) 当我们想预测某个新点 x = 0.5 x = 0.5 x=0.5(它落在已知训练点 0.4 和 0.6 之间),我们称这个预测过程为"插值",因为这个点位于已有训练点的范围内。模型可以参照附近训练点的信息(比如 0.4 和 0.6 的观测值)来做出相对可靠的推断。
外推(Extrapolation) 如果我们想预测 x = 1.2 x = 1.2 x=1.2(它超出了 所有训练样本所覆盖的区间 [ 0 , 1 ] [0,1] [0,1]),则称这为"外推",因为这个点在训练数据以外,我们没有直接的训练样本做参考,需要模型根据对整体趋势的理解来推断超出已知范围之外的值。外推往往更加不确定,容易产生较大误差。
在这句话中,"无正则化条件下 "表示在训练模型时,没有使用任何惩罚模型过度拟合的手段(或其他形式的先验约束);而"正则化 "通常指的是在训练过程中增加某种约束或惩罚项,以防止模型过度拟合或出现不合理的极端参数。下面详细解释:
- 什么是正则化
正则化(Regularization) 是在模型训练中给损失函数添加一个额外的惩罚项(或其他先验约束),以限制模型参数的大小或复杂度,从而减少过度拟合的风险。
- 在常见的 L2 正则化 (岭回归)中,损失函数会增加 λ ∥ θ ∥ 2 \lambda \|\theta\|^2 λ∥θ∥2 项,鼓励参数 θ \theta θ 不要过大。
- 在 L1 正则化 (Lasso)中,损失函数增加 λ ∥ θ ∥ 1 \lambda \|\theta\|_1 λ∥θ∥1 项,会促进模型参数向稀疏化发展。
- 其他形式的正则化还包括数据增强、dropout、先验分布约束等。
有正则化时:
- 模型在训练时会同时最小化误差和正则化项,鼓励模型参数或函数表现尽量简洁、平滑或具有其他先验属性。
- 例如,模型在拟合随机噪声数据时,会被正则化项"拉"回来,不允许它在每个样本点都过度弯曲,从而表现出更平滑、更通用的特性。
- "无正则化"的含义
当没有正则化 时,模型只关心如何最小化对训练数据的误差,而不会受到额外的平滑约束或复杂度惩罚。
- 对于隐式模型来说,这意味着它可以任意地(或最大化地) 贴合训练数据中的每一个样本点,而不必维持"平滑"或"简单"。
- 在极端情况下,如果训练数据是纯随机噪声,模型就可能学到一种"几乎一对一"甚至"最近邻"式的映射:每个训练点周围出现一个局部最小能量(对隐式模型而言),在该局部范围内预测就紧贴这个训练点。
- 为什么隐式模型在无正则化 + 随机噪声的情况下会呈现"最近邻"式行为
以下是3点原因:
- 隐式模型 的核心是一个能量函数 E θ ( x , y ) E_\theta(x, y) Eθ(x,y),预测时通过 arg min y E θ ( x , y ) \arg\min_y E_\theta(x, y) argminyEθ(x,y) 找到最优 y y y。
- 如果数据完全是随机噪声,且没有任何"平滑"或"复杂度"约束(即无正则化),模型会趋向于对每个训练样本单独建模一个"能量盆地"(local minimum),以完全贴合该点,从而在附近的 x x x 值也会"拉"向训练点对应的输出 y y y。
- 这样,当输入 x x x 距离哪个训练样本最近,模型就容易在该训练样本输出附近形成一个极小值,就像"最近邻"插值。但隐式模型依然会在相邻训练样本之间存在一个过渡区,导致局部斜率 ∂ y ∂ x \frac{\partial y}{\partial x} ∂x∂y 并不为零(即不会简单暴力地跳到常数值)。
示例
比如有 5 个非常散乱的点 { ( x i , y i ) } \{(x_i, y_i)\} {(xi,yi)} 全是噪声,在无正则化的隐式模型中,每个 ( x i , y i ) (x_i, y_i) (xi,yi) 都可能在能量函数 E E E 里形成一个深谷。对任何 x ~ \tilde{x} x~ 进行预测时,模型会找到最近的 x i x_i xi 并给出相应的 y i y_i yi 或某个在两点之间的插值区。这类似"最近邻 + 分段插值"的效果。
- 为什么不会"跳"到常数值
以下3点原因:
- 如果没有任何正则化,模型没有理由"抹平"不同训练点间的差异,也没有惩罚它在不同局部之间做强烈的分段变化。
- 在纯随机噪声的情况下,显式模型若无正则化可能也会极度拟合每个点,但通常可能因为学习率或模型结构等因素在连续域中平滑过渡。
- 隐式模型通过能量函数在每个训练点附近挖了一个"能量坑",不需要也不想把这些"坑"合并成一个常数平台。这样既不违反训练数据,也不会形成全局平滑,因而在每个样本周围保持一个局部梯度而非简单跳变到常数。
小举例
假设我们有一维输入 x ∈ [ 0 , 1 ] x \in [0,1] x∈[0,1],以及五个样本点: { ( 0.1 , 0.7 ) , ( 0.2 , − 0.3 ) , ( 0.55 , 0.9 ) , ( 0.68 , − 1.2 ) , ( 0.9 , 0.4 ) } \{(0.1, 0.7), (0.2, -0.3), (0.55, 0.9), (0.68, -1.2), (0.9, 0.4)\} {(0.1,0.7),(0.2,−0.3),(0.55,0.9),(0.68,−1.2),(0.9,0.4)} 且这些 y i y_i yi 并没有任何内在规律,仅是随机噪声。
有正则化:
- 模型会尝试在整个区间内平衡拟合精度和函数复杂度;
- 可能会出现一条相对平滑、不过度弯曲的曲线穿过这些点或接近这些点。
无正则化(隐式模型):
- 每个点可能在能量函数中形成一个独立的极小值 "深坑",在该点附近极度贴合;
- 当 x x x 在不同点之间时,模型会以某种分段或局部方式衔接,呈现出"最近邻式"阶梯或分段线性。
这样,模型就"不会跳到某个常数",因为那样会对某些点产生巨大的误差,对模型没有好处(模型更倾向于精确拟合每个训练点)。
- 总结
- 正则化:在损失函数或模型结构中增加约束或惩罚项,防止过度贴合训练数据(过拟合),使模型保持一定的平滑性或简单性。
- 无正则化:模型完全追求对训练样本的拟合,没有任何额外的平滑或复杂度约束,容易在随机噪声数据上出现极度贴合或"最近邻"式的分段插值。
- 在隐式模型中,这会体现为每个样本点附近形成一个"能量深坑",保持局部梯度,而非直接跳到某个常数值。
在隐式模型(能量模型) 的语境下,所谓的"能量深坑"指的是:当我们在训练过程中让模型对某些 ( x i , y i ) (x_i, y_i) (xi,yi)样本的能量 E θ ( x i , y i ) E_\theta(x_i, y_i) Eθ(xi,yi) 显著降低时,模型会在 ( x i , y i ) (x_i, y_i) (xi,yi)附近形成一个局部极小值(或"深坑"),从而使得预测时 arg min y E θ ( x i , y ) \arg\min_{y} E_\theta(x_i, y) argminyEθ(xi,y)会贴合该样本的输出值 y i y_i yi。如果训练样本足够少或者没有正则化,模型就可能对每个训练点都"挖"一个独立的坑来紧贴数据,从而在整体上呈现"最近邻"式的近似。
一、概念性示例
假设我们有若干训练样本 : { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ... , ( x n , y n ) } \bigl\{(x_1, y_1), (x_2, y_2), \dots, (x_n, y_n)\bigr\} {(x1,y1),(x2,y2),...,(xn,yn)} 其中 x i ∈ R x_i \in \mathbb{R} xi∈R(或更高维), y i ∈ R y_i \in \mathbb{R} yi∈R(或更高维)。
能量函数 E θ ( x , y ) E_\theta(x, y) Eθ(x,y) 的目标 : 训练时,我们希望对于正确样本 ( x i , y i ) (x_i, y_i) (xi,yi), E θ ( x i , y i ) E_\theta(x_i, y_i) Eθ(xi,yi) 变得很小(越小越好);而对错误的 ( x i , y ~ ) (x_i, \tilde{y}) (xi,y~)( y ~ ≠ y i \tilde{y} \neq y_i y~=yi),能量相对较大,从而让模型在预测时更倾向选择 y i y_i yi。
"挖坑"原理:
- 当我们在训练中不断降低 E θ ( x i , y i ) E_\theta(x_i, y_i) Eθ(xi,yi) 的值,就相当于在 ( x i , y i ) (x_i, y_i) (xi,yi)这个点上挖了一个能量低谷,使得能量函数在这里显著低于周围其它地方。
- 如果没有正则化约束,模型不必在不同样本之间"平滑"过渡,从而可以在每个训练点都挖出相对独立的"深坑"。在这些点附近,能量迅速下降到一个极小值。
预测阶段:
- 对一个新的输入 x new x_{\text{new}} xnew,隐式模型通过 y ^ = arg min y E θ ( x new , y ) \hat{y} = \arg\min_{y} E_\theta(x_{\text{new}}, y) y^=argminyEθ(xnew,y) 来决定输出。
- 如果 x new x_{\text{new}} xnew 更接近 x i x_i xi,那么它就很可能在 ( x i , y i ) (x_i, y_i) (xi,yi) 那个坑周围找到最低能量,从而输出 y i y_i yi(类似最近邻效果)。
因此,"能量深坑" 就是在能量函数里针对每个训练样本形成的局部极小值区域。没有正则化时,为了完美贴合随机噪声数据,模型倾向对每个样本挖独立的深坑而不是做统一的光滑近似。
二、简化数学示例
为直观说明,我们可以构造一个非常简单的能量函数:
训练样本 :假设只有两条数据 ( x 1 , y 1 ) (x_1, y_1) (x1,y1) 和 ( x 2 , y 2 ) (x_2, y_2) (x2,y2),其中 x 1 < x 2 x_1 < x_2 x1<x2, y 1 , y 2 ∈ R y_1, y_2 \in \mathbb{R} y1,y2∈R。
定义能量函数 : E θ ( x , y ) = min ( α ⋅ [ ( x − x 1 ) 2 + ( y − y 1 ) 2 ] , α ⋅ [ ( x − x 2 ) 2 + ( y − y 2 ) 2 ] ) , E_\theta(x, y) \;=\; \min\Bigl(\alpha \cdot\bigl[(x - x_1)^2 + (y - y_1)^2 \bigr], \;\alpha \cdot\bigl[(x - x_2)^2 + (y - y_2)^2\bigr]\Bigr), Eθ(x,y)=min(α⋅[(x−x1)2+(y−y1)2],α⋅[(x−x2)2+(y−y2)2]), 其中 α > 0 \alpha>0 α>0是一些缩放系数。
- 这意味着:在 ( x 1 , y 1 ) (x_1, y_1) (x1,y1)和 ( x 2 , y 2 ) (x_2, y_2) (x2,y2)两个地方,都设了一个能量低谷;函数会取其中更小的那个作为最终能量。
- 这样一来,对每个 ( x i , y i ) (x_i, y_i) (xi,yi) 都能挖"坑":当 x ≈ x 1 , y ≈ y 1 x\approx x_1, y\approx y_1 x≈x1,y≈y1 时,第一项非常小;当 x ≈ x 2 , y ≈ y 2 x\approx x_2, y\approx y_2 x≈x2,y≈y2 时,第二项非常小。
无正则化:
- 在这个示例里,没有任何约束要求能量函数在 ( x 1 , y 1 ) (x_1, y_1) (x1,y1) 与 ( x 2 , y 2 ) (x_2, y_2) (x2,y2) 之间做平滑连接。
- 结果是,这个能量函数在两个训练点各自形成了一个独立低谷("深坑"),它不会在 ( x 1 , y 1 ) (x_1, y_1) (x1,y1) 与 ( x 2 , y 2 ) (x_2, y_2) (x2,y2) 之间费力去构造平滑过渡,因为没有被正则化惩罚。
预测:
- 给定新输入 x new x_{\text{new}} xnew,寻找 y ^ = arg min y E θ ( x new , y ) \hat{y} = \arg\min_y E_\theta(x_{\text{new}}, y) y^=argminyEθ(xnew,y)。关于这里的 y y y, 我们是通过在所有可能的输出 y y y 中搜索(或优化)那一个能量最小值来确定最终预测结果。 对于新输入 x new x_{\text{new}} xnew,我们需要在输出空间(可能是 R m \mathbb{R}^m Rm 等)中遍历或搜索所有 y y y,找到能量值最小的那个 y y y。
- 因为是 min { ... , ... } \min\{\dots,\dots\} min{...,...} 形式,新输入如果更接近 ( x 1 , y 1 ) (x_1, y_1) (x1,y1) 那个坑,就会选 y ≈ y 1 y \approx y_1 y≈y1;如果更接近 ( x 2 , y 2 ) (x_2, y_2) (x2,y2) 就选 y ≈ y 2 y \approx y_2 y≈y2------类似"最近邻"分类。
这个简单的示例表明,在无正则化时,可以直观地构建一个"每个训练点都有自己的低谷"的能量函数,来呈现"最近邻"式的决策行为。
三、为什么不跳到某个常数值
- 若模型想在所有训练样本点都同时保持低能量并且中间区域能量也低,则对随机噪声数据而言往往没有一个"单一常数值"可以让所有点满意。
- 在无正则化条件下,模型不必为中间区域做平滑或均衡,因此便可以在每个 ( x i , y i ) (x_i, y_i) (xi,yi) 附近各自挖"坑",让 E θ E_\theta Eθ 局部极小。当 x x x 不在训练点附近时,模型也不会简单跳到某常数;它可能在每对相邻样本之间进行某种分段过渡甚至瞬间跃迁。
因此,在整个输入空间中,能量函数会是一片"山峦起伏"、到处是局部低谷的形态,而非一个平坦的常数区。
四、总结
- "能量深坑" 是指隐式模型在训练样本 ( x i , y i ) (x_i,y_i) (xi,yi) 处形成的局部极小值,使得预测时易于选择训练样本对应输出。
- 无正则化意味着模型不会被强制维持平滑或较小的梯度,因此可以对每个样本独立"挖坑"并实现对随机噪声的过度拟合(即"最近邻"式)。
- 如果使用适当的正则化(如平滑先验、梯度惩罚等),就可以避免在每个随机点都形成极端局部极小值,从而得到更平滑、更具泛化性的能量函数。
外推
对于训练数据凸包之外的外推(图2a-f),即使在不连续或多值函数的情况下,隐式模型通常会对靠近训练数据域边缘的模型部分进行分段线性外推。最近的研究[22]表明显式模型倾向于进行线性外推,但这一分析假设了真实函数是连续的。
- 外推(Extrapolation)
2.1 隐式模型的外推行为
- 分段线性外推 当输入超出训练数据的凸包(convex hull)范围之外,隐式模型往往在"离数据最近"的边缘点形成一个近似决策边界,然后在该边界之外采用局部的分段线性外推。这意味着隐式模型能较好地进行有边界的外推,甚至在函数存在不连续或多值情况时仍能保持一致。
2.2 显式模型的外推行为
- 倾向于线性外推(但易出错) 前人研究[22]指出,显式模型倾向于做线性外推,但前提是假设真实函数是连续的。一旦真实函数存在不连续或多模态特性,显式模型的外推结果经常会失真,或者不合理地在边缘区平滑。
在这里,"近似决策边界"可以理解为隐式模型在没有数据支撑的区域和已有训练数据支撑的区域之间所划分出的一个"分界点(或分界线),用来决定在训练数据覆盖之外如何进行外推。下面用一个具体例子来说明:
- 何为"近似决策边界"?
直观含义 当输入超出训练数据所覆盖的凸包(convex hull)范围时,模型没有任何实际观测数据来指导其输出。隐式模型(如基于能量函数的模型)往往会根据最近的已知数据"推断"出一个边界(或边缘区域)。这个边界并非是事先人工规定的,而是模型从训练数据中学到的,一种 "在这里之后,我要切换到另外一种外推方式" 的自然分界。
"近似"一词的原因 :由于模型并没有真正看到边界外部的真实数据,这个决策边界是在有限样本的基础上推断出的。因此只能说是"近似的",并不一定与真实函数的外延边界吻合。
- 举个例子
假设我们有一个一维输入 x x x,训练数据只覆盖了区间 [ 0 , 1 ] [0, 1] [0,1],而测试数据可能落在 x > 1 x > 1 x>1(也就是超出了训练数据的凸包)。在隐式模型中,可能出现以下情况:
在 0 ≤ x ≤ 1 0 \leq x \leq 1 0≤x≤1 的区域:
- 模型通过能量函数或其它机制学习了函数在 [ 0 , 1 ] [0,1] [0,1] 区间内的映射关系,包含不连续性或多值等结构。
当 x > 1 x > 1 x>1 或 x < 0 x < 0 x<0 时:
- 模型没有直接的训练数据,但会根据"离 x x x 最近的已知数据点"(例如 x = 1 x=1 x=1 或 x = 0 x = 0 x=0 处的一些信息),推断出一个"我该如何继续外推"的策略。
- 隐式模型就会把 x = 1 x=1 x=1 或 x = 0 x = 0 x=0 附近视为一个近似决策边界,在此边界之外,它会采取"分段线性"或类似策略进行外推。
- 例如,如果隐式模型在 x = 1 x=1 x=1 或 x = 0 x = 0 x=0 时已经掌握到一个局部线性趋势,那么当 x > 1 x > 1 x>1 或 x < 0 x < 0 x<0 时,就延续这个趋势,形成一条延展的直线(分段线性外推)。
这时," x = 1 x=1 x=1 或 x = 0 x = 0 x=0" 就充当了一个分割已知与未知区域的"决策边界",因为模型在这里切换到"无真实数据可参考"的外推模式。这种边界其实并非有人手动定义,而是模型从训练过程自动学到"我在这个点之后没有数据,需采用线性延伸或其他外推方式"。
为什么隐式模型能做这样的"近似决策边界"?
能量函数或距离度量
- 在隐式模型中,每个输入 x x x 和输出 y y y 都有相应的能量(或得分) E θ ( x , y ) E_\theta(x,y) Eθ(x,y)。当输入超出可观测范围时,模型会自然寻找最低能量解(最合理的猜测)并在局部保持连续或线性。
- 由于距离已知训练数据最近的地方往往贡献了主导信息,这些地方就相当于形成了一个"边界",过了边界能量函数逼迫模型更倾向于延续先前的趋势。
保持局部连续/线性
- 隐式模型倾向于在已学到的局部区域内保存其特征,包括不连续也好、分段线性也好,一旦超出数据域,就把最近的局部结构"搬运"出去。这就形成为所谓的分段线性外推。
- 总结
- "近似决策边界" 指的是隐式模型在没有训练数据支撑的区域和已有数据覆盖的区域之间,基于"最近邻"或能量优化策略所划分出的一个边界。
- 在此边界之外,模型会进行分段线性或其他局部一致的外推。
- 这种外推方式往往比显式模型更为稳定,尤其是在存在不连续或多模态情况下,因为隐式模型天然可以为不同数据段"贴上"决策边界并独立处理。
因此,这句话的核心是:隐式模型在超出训练域时会识别到"我已经没数据可参考",便在最近的数据边缘形成一个"决策边界",进而用分段线性的方式外推,保证预测过程在不同区域独立又相对平滑地衔接,即使函数有不连续或多值也能保持一致性。
多值函数
隐式模型的 arg min \argmin argmin操作可以返回一组值,而不是确定单一的最优值。这组值可以被概率性地解释为从分布中采样可能的值,或者在优化中解释为最小值集合( arg min \argmin argmin是集合值)。图3对比了通过混合密度网络(MDN)训练的ReLU-MLP和EBM在三个多值函数示例中的表现。
- 多值函数
3.1 隐式模型在多值问题中的优势
- arg min \argmin argmin操作返回值集: 对于多值函数(同一输入对应多个输出),隐式模型通过能量函数 E θ ( x , y ) E_\theta(x,y) Eθ(x,y) 并执行 arg min y E θ ( x , y ) \argmin_y E_\theta(x,y) argminyEθ(x,y) 来确定最优输出时,可以返回一个集合而非单一值。
- 可解释为概率或最小值集 这些多重解可以:
- 概率解释:将其视为分布采样,隐式模型能自然呈现一对多关系。
- 优化角度:最小值集合(multi-minima)意味着多个同样好的解。
3.2 显式模型在多值函数上的局限
- 混合密度网络(MDN)也可部分实现 若显式模型采用 MDN(在输出层预测混合分布),也能一定程度解决多值问题,但与隐式能量模型相比,MDN 仍然在不连续或外推表现上有局限。
当我们说"隐式模型通过 arg min y E θ ( x , y ) \argmin_y E_\theta(x,y) argminyEθ(x,y) 可以返回多个值或一个'解的集合'"时,核心原因在于:同一个输入 x x x 下,能量函数 E θ ( x , y ) E_\theta(x,y) Eθ(x,y) 可能在不同的 y y y 值处都能达到相同或相近的最小能量 。于是,相对于显式模型只给出一个唯一映射 y = f θ ( x ) y = f_\theta(x) y=fθ(x),隐式模型会根据能量最小化出现不止一个"最优点"。
- 为什么会返回多个值?
如果能量函数 E θ ( x , y ) E_\theta(x, y) Eθ(x,y)在某个给定的 x x x 下有多个局部最小值 ,那么做: y ^ = arg min y E θ ( x , y ) \hat{y} = \argmin_y E_\theta(x,y) y^=yargminEθ(x,y)
就会得到一个多值解 (multi-minima),即 y ^ \hat{y} y^是一个解的集合而非单个值。
1.1 数学层面
- 设想一个能量函数在 y y y-轴方向上呈现出多个凹槽或波峰波谷,同一个 x x x 对应多个"谷底",这些谷底的能量都相同或十分接近,它们都符合 arg min \argmin argmin 的条件。
- 因此,模型在做预测时,可能出现多个等价的最优 y y y 值。
1.2 物理或应用层面
- 对于一对多映射 的真实场景:一个输入 x x x 可能导致多个可能输出 y y y。举例:同样的初始条件下,系统可能沿着不同路径演化,产生多种结果。能量函数就会在这些不同结果处均呈现低能量,从而产生多个最小值。
- 举个简单例子
2.1 二维情形:
x \sqrt{x} x 曲线 假设我们想用能量函数 E θ ( x , y ) E_\theta(x,y) Eθ(x,y) 来隐式建模满足 y = ± x y = \pm \sqrt{x} y=±x 的关系。 一个可能的能量形式示例: E θ ( x , y ) = ( y − x ) 2 × ( y + x ) 2 E_\theta(x,y) = (y - \sqrt{x})^2 \times (y + \sqrt{x})^2 Eθ(x,y)=(y−x )2×(y+x )2
- 当 y = x y = \sqrt{x} y=x 时,第一项 ( y − x ) 2 = 0 (y - \sqrt{x})^2=0 (y−x )2=0,整个乘积为0,能量达到最小。
- 当 y = − x y = -\sqrt{x} y=−x 时,第二项 ( y + x ) 2 = 0 (y + \sqrt{x})^2=0 (y+x )2=0,同样能量为0。
- 因此,对任意 x ≥ 0 x \ge 0 x≥0,都有两个 同样好的最小能量解: y = x y = \sqrt{x} y=x 或 y = − x y = -\sqrt{x} y=−x 。 换言之, arg min y E θ ( x , y ) \argmin_y E_\theta(x,y) argminyEθ(x,y) 返回的会是 { x , − x } \{\sqrt{x}, -\sqrt{x}\} {x ,−x }。
2.2 解释:
- 若这是一个多值函数:同一个 x x x 可能对应两个真实值(正根和负根)。
- 显式模型 只能给出单值 y ^ \hat{y} y^,要么学成上半分支,要么学成下半分支,要么插值得到某种不准确的折中。
- 隐式模型 通过能量函数,让这两个分支都成为能量最低点,从而在推理时能发现同一个 x x x 下存在多解。
"可解释为概率或最小值集" 的含义
概率解释
- 在能量模型(EBM)中,如果我们把 e − E θ ( x , y ) e^{-E_\theta(x,y)} e−Eθ(x,y) 视作未归一化的似然,那么这个分布可能在多个点取得相似的高值。于是从分布角度看,我们有多个"峰",即多模态分布。
- 在推断时,我们可以"采样"多个 y y y 值,符合"一对多"的可能性。
优化角度
- 如果不从概率出发,而是单纯地做最小化 arg min \argmin argmin,则因为多个局部/全局谷底都能满足 E θ E_\theta Eθ 的最优值,所以结果是一个"最小值集合"(multi-minima)。
- 此时,模型并不是只输出 y best y_{\text{best}} ybest,而是承认可能存在若干个同等"好"的解。
- 总结
隐式模型的 arg min \argmin argmin 操作能返回多个值的原因在于其能量函数对同一输入 x x x 可能存在多个等效最小能量点。
- 示例 : ± x \pm\sqrt{x} ±x 对称结构,或多模态函数,如圆形、分段、不连续、迟滞现象等。
- 解释 :
- 概率上:分布多峰;
- 优化上:多局部/全局最小值集合。
从而,隐式模型天然支持"多值函数"或"一对多映射"的任务,而显式模型通常只能拟合出单一映射,难以覆盖多值分支。
视觉泛化
对于学习视觉运动政策(visuomotor policies)特别相关的是,我们还发现,在将高维图像输入转换为连续输出的外推能力上存在显著差异。图4展示了在一个简单的视觉坐标回归任务中,这对于卷积网络来说是一个众所周知的困难问题[23]。使用CoordConv[23]的通过均方误差(MSE)训练的Conv-MLP模型[24]在训练数据的凸包之外的外推表现不佳。这与[5, 25]中的发现一致。另一方面,通过延迟融合(late fusion)训练为EBM的Conv-MLP(图4b),即使在只有少量训练数据样本的情况下,也能很好地进行外推,并在低数据情况下的测试集误差降低了2到3个数量级(图4d)。这一点进一步证明了隐式模型与显式模型在多模态性之外的显著差异,而多模态性在本实验中是缺失的。
- 视觉泛化(High-dimensional Visual Input)
4.1 卷积网络下的外推能力
显式模型 + 坐标回归困难 在视觉坐标回归任务中(如坐标点的定位),有研究[23]表明普通的卷积网络+MSE 训练经常在训练数据范围之外外推不佳,这是因为显式模型往往缺少对坐标信息的明确感知。
CoordConv[23] 的缺点 即使使用 CoordConv 技术来让网络更好地学习坐标映射,也只能在训练数据范围内有较好表现,一旦需要外推到凸包之外,往往泛化效果不佳。
4.2 隐式模型(EBM)在视觉回归中的优势
- 延迟融合为 EBM 将卷积网络的特征与能量模型相结合,实现隐式建模,可使网络在高维输入下进行更稳定的外推,从而提升性能。
- 低数据情况下表现更佳 即便训练数据很少,隐式模型仍能保持低误差。这与显式模型相比,能显著提升外推性能,并在实验中可达"2 到 3 个数量级"的误差降低。
当我们说"通过均方误差(MSE)训练的 Conv-MLP 模型"时,主要包含以下两层含义:
Conv-MLP 模型(ConvNet + MLP)
- ConvNet(卷积网络,Convolutional Neural Network)通常用于从图像等高维输入中提取特征。它通过卷积核在图像上滑动,学习到局部特征以及在通道维度上的组合特性。
- MLP(多层感知器,多层全连接网络,Multi-Layer Perceptron)会接收卷积网络输出的特征向量或特征图,对其进行进一步的映射,输出所需的目标值(如坐标、分类概率等)。
因此,Conv-MLP 模型可以理解为将卷积网络和多层感知器串联起来:卷积网络负责初步特征抽取,MLP则将这些特征映射到目标输出空间。
举例 :假设我们想做一个"图像到2D坐标"的回归任务(如图像中某个目标点的 ( u , v ) (u, v) (u,v) 坐标)。模型结构可能是:
- ConvNet (卷积层 + 池化层 + 若干激活函数),将输入的图像(如 R W × H × C \mathbb{R}^{W \times H \times C} RW×H×C)编码到一个特征向量。
- MLP 接收卷积网络输出的特征向量,最后输出一个二维向量 ( u , v ) (u,v) (u,v)。
通过均方误差(MSE)训练
- 在回归任务中,均方误差(Mean Squared Error, MSE) 是最常见的损失函数之一。它通过衡量预测值与真实值之间的平方差来评估模型的误差,并通过反向传播将误差信号传递回模型的参数,进而进行更新。
- 损失函数的形式为:
MSE = 1 N ∑ i = 1 N ( y ^ i − y i ) 2 \text{MSE} = \frac{1}{N} \sum_{i=1}^N ( \hat{y}_i - y_i )^2 MSE=N1i=1∑N(y^i−yi)2
其中 y ^ i \hat{y}_i y^i 是模型的预测输出, y i y_i yi 是真实标签或真实值, N N N 是样本数量。- 通过最小化 MSE,模型在训练时会调整参数(包括卷积层和 MLP 的权重),使得预测的输出值尽量接近真实值。
综上所述:
- "通过均方误差(MSE)训练的Conv-MLP模型" :
该模型前半部分是卷积网络,用于从输入(通常是图像)中提取特征;后半部分是多层感知器(MLP),将提取到的特征映射到需要预测的输出(如坐标)。
整个模型通过均方误差损失来训练,也就是说,对每个训练样本,都用预测值和真实值之间的平方差作为度量指标,所有样本的平均就是 MSE。
MSE 的大小会被反向传播用来更新网络参数,逐步使模型输出更接近真实值,从而实现图像到目标输出(例如 2D 坐标)的回归。
举例:
任务 :给一张 64×64 的彩色图像,想预测图中一个特定点的 ( u , v ) (u,v) (u,v) 坐标。
模型结构:
- ConvNet:若干卷积层 + 池化层,对输入图像进行特征编码,得到一个特征向量。
- MLP :接收特征向量,最终输出 ( u ^ , v ^ ) (\hat{u}, \hat{v}) (u^,v^)。
损失函数 :MSE。若训练集中第 i i i 张图片的真实坐标是 ( u i , v i ) (u_i,v_i) (ui,vi),预测是 ( u ^ i , v ^ i ) (\hat{u}_i, \hat{v}_i) (u^i,v^i),则单样本误差为: ( u i − u ^ i ) 2 + ( v i − v ^ i ) 2 (u_i - \hat{u}_i)^2 + (v_i - \hat{v}_i)^2 (ui−u^i)2+(vi−v^i)2 所有样本误差的平均值就是 MSE。
训练过程:
- 从训练集中取出若干样本,输入模型得到预测坐标。
- 计算预测值与真实值之间的 MSE,作为本批次的损失。
- 用反向传播更新参数,使得预测误差逐渐减小。
- 不断迭代,直到模型收敛,或者达到预期的精度。
这样,一个"通过 MSE 训练的 Conv-MLP 模型"就完成了从图像到坐标的回归任务。
在理解"延迟融合(late fusion)训练为 EBM 的 Conv-MLP"这句话之前,我们先拆解以下几个概念:
Conv-MLP:
- "Conv" 指的是卷积网络(Convolutional Neural Network, CNN),常用于从图像等高维输入中提取特征。
- "MLP" 指多层感知器(Multi-Layer Perceptron),通常用于进一步将特征映射到最终输出(如坐标、分类分数等)。
- 因此,Conv-MLP 是把"卷积网络 + MLP" 串联起来的混合架构。
EBM(Energy-Based Model):
- 能量模型(Energy-Based Model)是一种隐式模型,通过定义一个能量函数 E θ ( x , y ) E_\theta(x,y) Eθ(x,y) 来表示输入 x x x 和输出 y y y 的关系,而不是直接输出一个固定的预测值。
- 当我们想得到预测结果时,通常通过 y ^ = arg min y E θ ( x , y ) \hat{y} = \arg\min_y E_\theta(x, y) y^=argminyEθ(x,y) 来寻找能量最小的 y y y,也就是让模型"选择"哪一个输出最适合当前输入 x x x。
延迟融合(late fusion):
- "融合"(fusion)在深度学习中常指如何将不同来源或不同阶段的信息组合起来。
- 早期融合(early fusion) 指的是在网络输入端就把多种信息(例如图像特征、文本特征)拼接到一起,然后送进同一个网络;
- 中间融合(middle fusion) 会在网络中层进行特征的交互;
- 延迟融合(late fusion) 则指的是在网络后期(通常是输出端或接近输出端的层)才将不同信息或不同分支的结果组合起来。
在本段话中,"延迟融合训练为 EBM 的 Conv-MLP"可以理解为:
延迟融合(late fusion):
- 对图像输入进行特征提取时,ConvNet 先独立地对图像进行卷积操作,得到一个特征表示;
- 直到模型的后期阶段,才将这些特征与能量模型(MLP)进行"融合",即在最后一两个层或输出层才将卷积特征合并到 EBM 的网络中,从而形成能量函数。
训练为 EBM:
- 整个网络是以"能量模型"的方式进行训练。也就是说,在训练过程中,我们不会直接最小化 MSE 或交叉熵等普通显式损失,而是定义或学习一个能量函数 E θ ( conv_feat , y ) E_\theta(\text{conv\_feat}, y) Eθ(conv_feat,y),通过一定的损失形式(如对比学习、负对数似然等)来让正确的输出 y y y 获得更低的能量、错误的 y y y 获得更高的能量。
举个例子:
- 任务 :将输入图像映射到某个输出(如坐标位置 ( u , v ) (u,v) (u,v))。
- 网络结构 :
- 卷积网络(ConvNet) :输入图像后,提取到一个特征向量 z \mathbf{z} z。
- 延迟融合 :在网络的最后阶段(可能是全连接层之前或能量函数的输入处),才将 z \mathbf{z} z 和输出变量 y y y 进行结合。也就是说, z \mathbf{z} z
并不会在中间就被合并到显式输出中,而是一直保持独立,直到能量模型这一步才一起输入能量函数:
E θ ( z , y ) E_\theta(\mathbf{z}, y) Eθ(z,y)
这个能量函数由 MLP 实现,用于评估给定特征 z \mathbf{z} z 和候选输出 y y y 的"匹配度"。- 训练过程 :
- 对于每个输入图像,ConvNet 提取特征 z \mathbf{z} z( 一般是一个向量。具体维度取决于模型设计,如 (batch_size, feature_dim) 的二维张量(一批图像得到一批特征向量))。
- 通过某种对比学习或能量最小化方法,让正确的 ( z , y true ) (\mathbf{z}, y_\text{true}) (z,ytrue) 对应的能量 E θ ( z , y true ) E_\theta(\mathbf{z}, y_\text{true}) Eθ(z,ytrue) 越低越好,让错误的 ( z , y neg ) (\mathbf{z}, y_\text{neg}) (z,yneg) 能量越高越好。
- 这样,网络学会了对正确输出赋予低能量,对错误输出赋予高能量的能力。
通过这种方式,Conv-MLP 模型 在后端使用能量模型(EBM)的形式,并且在融合图像特征(ConvNet提供)与输出( ( u , v ) (u,v) (u,v))之间时采用延迟融合(late fusion) 的策略,从而获得更好的泛化性能(特别是在数据较少或需要外推的情况下)。
总结:
"延迟融合(late fusion)训练为 EBM 的Conv-MLP" 意思是:
- 模型在图像输入中先使用卷积网络提取特征;
- 直到网络后期(输出端)才将特征与候选输出 ( u , v ) (u,v) (u,v) 一起输入到能量函数(EBM)当中;
- 以能量模型的方式训练整个网络,而不是直接预测数值。
这种方法好处在于:
- 对图像特征提取与输出分布建模分离更彻底;
- 通过隐式模型(EBM)在最后一步来处理坐标或多模态输出问题;
- 训练过程中,延迟融合能保持特征的独立性,使得模型可以更灵活地捕捉高维图像输入和低维输出之间的复杂关系。
图4. 在简单坐标回归任务上的隐式与显式ConvMLP模型的比较
(a) 将输入从 R W × H × C \mathbb{R}^{W \times H \times C} RW×H×C映射到 R 2 \mathbb{R}^2 R2的任务示意图。图(b)所示的架构在图像上进行训练(如(a)中的示例),用于回归绿色几像素点的 ( u , v ) (u, v) (u,v)坐标。空间泛化图©显示了训练数据的凸包(灰色虚线)。可以看到,在只有10个训练样本的情况下,MSE训练的模型在泛化方面表现不佳,尤其是在凸包之外(c,左侧)。相比之下,ConvMLP-EBM(c,右侧)即使在数据较少的情况下也表现良好,在低数据情境下测试集的MSE损失降低了2到3个数量级(d)。当数据充足并进行密集采样时,两种模型均表现良好,达到亚像素级误差(d)。
这幅图(图4)展示了在图像坐标回归任务中,显式模型 (ConvMLP-MSE)与隐式模型 (ConvMLP-EBM)之间的比较。具体来说,给定一张图像( R W × H × C \mathbb{R}^{W \times H \times C} RW×H×C),模型需要输出目标像素点在图像中的 ( u , v ) (u, v) (u,v) 坐标。
- 任务概述
- 图4(a) :一个简单示例,绿色点表示要预测的像素位置( ( u , v ) (u, v) (u,v))。
- 模型输入:图像 ∈ R W × H × C \in \mathbb{R}^{W \times H \times C} ∈RW×H×C。
- 模型输出:坐标 ( u , v ) ∈ R 2 (u,v) \in \mathbb{R}^2 (u,v)∈R2。
- 模型架构对比
图4(b) 对比了两种方法:
ConvMLP-MSE(显式模型)
- 先用卷积网络(ConvNet)提取图像特征,再用多层感知器(MLP)直接输出 ( u , v ) (u,v) (u,v)。
- 训练使用 MSE 损失(均方误差)。
- y ^ = f θ ( image ) \hat{y} = f_\theta(\text{image}) y^=fθ(image),其中 y ^ = ( u , v ) \hat{y} = (u,v) y^=(u,v)。
ConvMLP-EBM(隐式模型)
- 同样先用卷积网络提取特征,但后端使用能量函数(Energy-Based Model, EBM)来建模并通过 arg min \arg\min argmin 操作得到 ( u , v ) (u,v) (u,v)。
- 不直接预测 ( u , v ) (u,v) (u,v),而是优化能量函数 E θ ( x , y ) E_\theta(\mathbf{x}, y) Eθ(x,y),在测试时通过 arg min y E θ ( x , y ) \arg\min_y E_\theta(\mathbf{x}, y) argminyEθ(x,y) 找到坐标。
- 在图中示意为"ConvNet → \to → MLP (EBM)"的结构。
这里 arg min y E θ ( x , y ) \arg\min_{y} E_\theta(\mathbf{x}, y) argminyEθ(x,y) 中的 y y y 就对应要预测的坐标 ( u , v ) (u,v) (u,v)。在这个图像坐标回归任务里:
- x \mathbf{x} x 表示输入的图像(或图像特征)。
- y y y 则是模型要输出的那个坐标值,即 ( u , v ) (u,v) (u,v)。
所以当我们说"隐式模型通过 arg min y E θ ( x , y ) \arg\min_{y} E_\theta(\mathbf{x}, y) argminyEθ(x,y) 来得到 ( u , v ) (u,v) (u,v)",实际上就是在能量函数 E θ E_\theta Eθ 的输出维度上,把 y y y 当作坐标 ( u , v ) (u,v) (u,v) 来进行搜索或优化。换句话说, ( u , v ) (u,v) (u,v) 只是符号上的展开形式,而公式里的 y y y 则是用来泛指"模型输出变量(坐标)"的记号。
- 空间泛化性能
图4(c)展示了只有 10 个训练样本时,模型在图像坐标平面中的预测表现,以及训练数据所覆盖的凸包(灰色虚线)。
MSE(显式模型,左)
- 在凸包外(灰色虚线之外)出现大范围错误(红色点)。
- 说明当训练数据稀少且分布有限时,显式模型在凸包外推上很容易失真或退化。
EBM(隐式模型,右)
- 即使只有 10 个训练样本,依然能够在凸包外做出合理的预测(蓝色点分布良好)。
- 说明隐式模型在数据极少的情况下,仍能学习到更通用的外推方式。
- 低数据情境下的误差对比
图4(d) 对比了测试集上的 MSE 随着训练样本数量增加而变化的情况:
当训练数据非常少(10 个左右)
- ConvMLP-MSE 的测试误差很高;
- ConvMLP-EBM 能将误差降低 2~3 个数量级之多。
当数据充足时(密集采样)
- 两种模型均能达到非常低的误差,达到亚像素级别的精度,说明在足够数据下显式模型也能学得很好。
总结
显式模型(MSE 训练)
- 优点:实现简单、对常规问题高效。
- 缺点:在稀疏数据和外推到凸包之外时容易失败。
隐式模型(EBM 训练)
- 优点:即使数据量很少,也能更稳健地外推到未见区域;对不连续或多值情况也适用。
- 缺点:实现和训练更复杂,通常需要能量优化步骤。
本实验表明:在图像坐标回归这种高维输入映射到低维坐标的任务上,隐式模型在极少数据和外推需求强的条件下,往往能比显式模型取得大幅提升的性能和泛化能力。
在隐式模型(使用能量函数EBM)中,即使训练样本很少,模型也通常具备更好的外推能力并能处理不连续或多值情况,主要原因可以从以下几个角度来理解:
能量函数的整体性
- 在 EBM 中,模型并不直接输出一个"点对点"的函数映射 y = f θ ( x ) y=f_\theta(x) y=fθ(x),而是通过对 x \mathbf{x} x与 y \mathbf{y} y共同定义的能量函数 E θ ( x , y ) E_\theta(\mathbf{x}, \mathbf{y}) Eθ(x,y) 进行全局或局部最小化来找到预测值。
- 这意味着模型在整个 ( x , y ) (x, y) (x,y) 空间都保留了一个能量结构:当训练数据不足时,能量函数在"看不到"的区域会延续已学到的能量形状,而不必强行插值出一个带"连续光滑"倾向的映射。结果是,EBM对未知区域的"外推"具有更灵活的形态,能够避免显式映射中那种强制性平滑或多余的插值。
arg min \arg \min argmin 机制的多解性
- 在隐式模型里,输出值是 arg min y E θ ( x , y ) \arg \min_y E_\theta(\mathbf{x}, y) argminyEθ(x,y)。当能量函数在某些区域对 y y y 具有多个局部最小值或不连续跃变时,模型可以"自然"地保持这种分段或不连续结构,从而适应多值或不连续映射。
- 对于训练集之外的 x \mathbf{x} x,如果能量函数被学到的结构是分段式或有局部平滑区,那么在没有训练数据约束时,EBM 也会倾向沿着这些"能量形状"延伸,从而形成"分段线性"或相对稳定的外推。
不依赖强假设的分布建模
- 显式模型常常内在地假设了"输入到输出"的单值且连续的函数关系(例如多层感知器 + MSE),一旦遇到不连续或多模态场景,就需要插值或被动地平滑过渡。
- 相比之下,EBM 不直接假设一个单值的函数映射,而是"让能量函数自己去适配数据"。在数据不足的环境下,这种方式更容易保留不连续、局部线性或多模态特性,而不会被强制"填补"成一个单一、平滑的映射。
局部最优与最近邻近似
- 由于能量函数在训练样本附近会形成较低的能量区,EBM 在新的 x \mathbf{x} x (不在训练域内)进行 arg min \arg \min argmin时,往往"倾向"于寻找距离最近的已知低能量区,从而产生类似"最近邻"的外推行为。
- 这种机制可以避免显式模型在凸包外推时出现的大幅偏移,因为显式模型会对整个实数域进行单一连续函数拟合,很容易在未知区域做错误的外推。
对小数据更为鲁棒
- 在小数据场景下,显式模型由于要学一个全局函数映射,往往容易过拟合已知样本并在边缘产生不合理插值;
- EBM 则只需在训练样本附近明确地学习能量分布,对未见区域保持能量势场的"延续形态",故更能避免过度插值而导致的外推失效。
小结 综上,隐式模型(EBM)之所以在数据较少、存在不连续或多值输出时具备更好外推能力,根本原因在于:它没有将"输入 → \to → 输出"硬性绑定成一个光滑单值映射,而是通过一个能量函数去适配数据分布,从而在未见区域仍能保留分段、局部平滑或多模态特性,避免显式模型的过度平滑或插值误差。
5. 总结
- 不连续性 :隐式模型能锐利捕捉 不连续,而显式模型会在不连续点进行错误插值。
- 外推能力 :隐式模型在训练数据凸包之外倾向于分段线性或保持一致性,而显式模型对真实函数有强连续性假设,故外推容易失真。
- 多值函数 :隐式模型可以自然地表示一对多关系, arg min \argmin argmin 操作产出的解可视为多个候选或概率分布。显式模型往往只预测单值,除非用一些专门的混合分布技术。
- 视觉任务泛化:在图像作为输入且输出坐标的任务中,显式模型往往在数据域外泛化不佳;隐式模型(如能量模型 EBM)则能显著改进外推性能。
综上所述,这些实验和结果说明了显式模型和隐式模型在学习不连续函数、多值函数,以及高维输入下的外推能力 等方面有着本质不同。隐式模型因其能量函数和 arg min \argmin argmin 解的机制,更能处理不连续场景、多模态输出,并在数据稀少时外推能力更强;而显式模型虽然直观易用,但在处理复杂多模态或不连续情况时显得力不从心。
4 policy学习成果
图5. 隐式和显式策略在6个不同模拟和真实领域的比较(见表1)
包括在D4RL人类专家任务上的作者报告基准。完整实验协议见附录。标准差见表2、表3、表4、表5和表6。
我们对隐式模型在各种机器人任务领域中学习行为克隆(BC)策略的表现进行了评估(如图5所示)。实验的目标有三方面:(i) 比较在相同策略表示为隐式模型或显式模型时的性能差异;(ii) 测试我们模型(包括隐式和显式模型)与作者报告的基准在一组标准任务上的表现;(iii) 展示隐式模型能够通过人类演示和视觉观测在真实机器人上学习有效策略。以下结果和讨论按任务领域组织------每个领域评估策略学习的一组特定期望特性(见表1)。所有任务都具有不连续性,并在一定程度上需要推广(例如外推)。
D4RL [17] 是一个最近发布的离线强化学习基准测试。我们在提供人类演示离线数据集的任务子集上评估了我们的隐式模型(EBM)和显式模型(MSE)策略,这些任务可以说是最困难的一组任务。令人惊讶的是,我们的隐式和显式策略实现显著优于基准测试中报告的BC基线,并在某些情况下与目前报道的最先进的离线强化学习结果(如CQL [26] 和 S4RL [27])具有竞争力。
通过引入可能是最简单的利用奖励信息的方法------如果我们优先选择排名靠前的50%演示数据(按其回报排序),类似于奖励加权回归(RWR)[28],这种方式通常会显著提升隐式策略性能,而对显式模型的提升相对较小。这表明隐式BC策略比显式BC策略更重视数据质量。
一个简单的最近邻基线(见附录)在这些任务上的表现超出了预期,但总体上不如隐式BC表现优异。虽然许多D4RL任务具有复杂的高维动作空间(高达30维),但它们并未涵盖我们感兴趣的任务属性全谱(见表1)。以下任务孤立了其他属性或引入了新的属性,例如高度随机的动力学(例如单点接触的推块任务)、复杂的多物体交互(大量小颗粒)以及组合复杂性。
N维粒子积分器是一个具有线性动力学的简单环境,但用于生成训练演示的Oracle策略是不连续的:一旦进入目标位置附近(图5,展示了N=2的情况),策略必须切换到第二个目标。
研究此环境的好处有两个方面:(i) 它不具备表1中列出的复杂属性,因此可以单独研究不连续性;(ii) 我们可以将此简单环境定义为N维。在将N从1变化到32维,但保持演示数量不变的情况下,我们发现隐式策略能够在高达16维时实现95%的成功率,而显式(MSE)策略在相同成功率下仅能应对8维任务。同时,最近邻基线无法实现泛化,仅在1维任务上表现良好(更多分析请见附录)。
模拟推送任务包括一个在PyBullet [29] 中模拟的6自由度机器人xArm6,其末端执行器是一个小型圆柱体。任务要求将一个方块推送到目标区域,目标区域在桌面上标记为绿色方框。我们研究了两种变体:(a) 将单个方块推送到一个目标区域;(b) 将方块推送到第二个目标区域(多阶段任务)。我们对隐式(EBM)和显式(MSE和MDN [30, 31])策略在这两种变体上的表现进行了评估,这些策略是从由2000次演示组成的数据集中训练得到的。这些演示基于一个脚本策略,能够在方块从末端执行器滑脱时调整推送方向。
表3的结果显示,所有学习方法在单目标任务上表现良好,而MSE在稍长的任务时间跨度上表现出困难。对于基于图像的任务,EBM的表现优于MDN和MSE。最近邻基线仅有0-4%的成功率,这表明该任务需要较强的泛化能力。
平面清扫任务 [32] 是一个二维环境,任务包括一个代理(以蓝色棍状体的形式)将50至100个随机分布的粒子推入绿色目标区域。代理具有三个自由度(2个用于位置,1个用于方向)。我们从50次人类遥操作演示中训练隐式(EBM)和显式(MSE)策略,并在未见过的粒子配置的情节上进行测试。
对于基于图像的输入,我们还测试了两种不同形式的降维编码器:空间软(arg)最大化和密集特征的平均池化(架构描述详见附录)。对于基于状态的输入,由于每个情节中粒子的数量不同,我们将粒子的位姿展平并使用零填充向量,以匹配最大粒子数量时向量的大小。
表4中的结果(经过3次不同随机种子训练的平均值)表明,基于图像的EBM比表现最好的MSE架构高出7%。有趣的是,基于图像的EBM似乎与用于降维的空间软(arg)最大化配合良好,而MSE显式策略则在池化操作中表现最佳。在这两种情况下,使用状态观察作为输入的性能都不如使用图像像素输入。这可能是因为粒子在图像空间中具有对称性,而在以位姿向量表示时不具备对称性。
模拟双臂清扫任务包括两个配备铲状末端执行器的KUKA IIWA机械臂。任务是从0.4平方米的工作区域中收集随机配置的粒子,并将其运送到两个碗中,要求两个碗的填充量尽可能均等。成功完成任务需要双臂的精确协调(例如,在将粒子运送到碗的过程中粒子不会掉落)。动作空间为12个自由度(每个机械臂6个自由度的笛卡尔坐标),每个情节包含700步,以10Hz的频率记录。使用来自模拟相机的透视RGB图像作为视觉输入,同时使用当前末端执行器的位姿作为状态输入。该任务具有多种模式变化和不连续性(如从铲取到提升、从提升到运输,以及决定运送到哪个碗)。在该任务中,EBM和MSE策略使用了平面清扫任务中对应的最佳图像编码器。如表5所示,结果表明EBM的性能比MSE高出14%。
真实机器人操控任务:使用xArm6机器人上的圆柱形末端执行器(图9a),我们在4个真实世界的操控推送任务中评估了隐式行为克隆(BC)和显式行为克隆(BC)策略。这些任务包括:
- 将红色方块和绿色方块推入指定的目标固定装置。
- 将红色方块和绿色方块推入任意一个目标固定装置,顺序不限。
- 精确地推动并插入蓝色方块至一个容差为1毫米的紧密目标固定装置。
- 对4个蓝色方块和4个黄色方块进行分类,并推入不同的目标位置。
观察输入仅为5Hz的原始透视RGB图像,任务时长最长可达60秒,训练数据来自遥操作示范。
5 理论见解:隐式模型的通用逼近性
在前面的章节中,我们已经通过实验证明了隐式模型处理不连续性(第3节)的能力,并假设这是隐式行为克隆(BC)策略表现强劲的原因之一(第4节)。现在我们提出两个理论问题:(一)是否有一个可证明的概念,即在给定某些分析型 E ( ⋅ ) E(\cdot) E(⋅)的情况下,可以通过隐式模型表示哪类函数;(二)鉴于从数据中学习的能量函数可能总是预期有非零的错误来近似任何函数,当结合 arg min \argmin argmin和 E ( ⋅ ) E(\cdot) E(⋅)中的假峰时,是否存在大的行为变化的推理风险?
最近的工作[33]表明,一个大类函数(即,由有限多个多项式不等式定义的函数)可以通过使用SOS多项式表示 g ( ⋅ ) g(\cdot) g(⋅)的方式,隐式地由 arg min y g ( x , y ) \argmin_\mathbf{y} g(\mathbf{x},\mathbf{y}) argminyg(x,y)近似。在这里,我们展示了对于用任何连续函数近似器(如深度ReLU-MLP网络)表示的 g θ g_\theta gθ的隐式模型, arg min y g θ ( x , y ) \argmin_\mathbf{y} g_{\theta}(\mathbf{x},\mathbf{y}) argminygθ(x,y)可以表示更大的函数集,包括多值函数和不连续函数(定理1),并达到任意精度(定理2)。这些结果在下文中正式陈述;证明在附录中。
定理1: 对于任何集合值函数 F ( x ) : x ∈ R m → P ( R n ) ∖ { ∅ } F(\mathbf{x}): \mathbf{x} \in \mathbb{R}^m \to {P}(\mathbb{R}^n) \setminus \{\emptyset\} F(x):x∈Rm→P(Rn)∖{∅},其中 F F F的图像是闭集,存在一个连续函数 g ( x , y ) : R m + n → R 1 g(\mathbf{x}, \mathbf{y}): \mathbb{R}^{m+n} \to \mathbb{R}^1 g(x,y):Rm+n→R1,使得对于所有 x \mathbf{x} x,有 arg min y g ( x , y ) = F ( x ) \argmin_\mathbf{y} g(\mathbf{x}, \mathbf{y}) = F(\mathbf{x}) argminyg(x,y)=F(x)。
定理2: 对于任何集合值函数 F ( x ) : x ∈ R m → P ( R n ) ∖ { ∅ } F(\mathbf{x}): \mathbf{x} \in \mathbb{R}^m \to {P}(\mathbb{R}^n) \setminus \{\emptyset\} F(x):x∈Rm→P(Rn)∖{∅},存在一个函数 g ( ⋅ ) g(\cdot) g(⋅),可以被某个连续函数逼近器 g θ ( ⋅ ) g_\theta(\cdot) gθ(⋅)以任意小的有界误差 ϵ \epsilon ϵ逼近,使得 y ^ = arg min y g θ ( x , y ) \hat{\mathbf{y}} = \arg\min_\mathbf{y} g_\theta(\mathbf{x}, \mathbf{y}) y^=argminygθ(x,y)保证 ( x , y ^ ) (\mathbf{x}, \hat{\mathbf{y}}) (x,y^)到 F F F的图像的距离小于 ϵ \epsilon ϵ。
需要注意的是,具有任意小或大的Lipschitz常数的显式函数(定理1和定理2中的 F ( x ) F(\mathbf{x}) F(x))可以通过具有有界Lipschitz常数的隐式函数进行逼近(详见附录中的更多讨论)。这意味着隐式函数可以逼近陡峭或不连续的显式函数,而不会在函数逼近器中引入大的梯度,从而避免可能导致泛化问题的风险。然而,对于显式的连续函数逼近器来说,它们必须匹配被逼近函数的大梯度。在多值特性和不连续处理方面,隐式模型的逼近能力明显优于显式模型。视觉直观参见图10,更多讨论详见附录。
图10. 对定理1和定理2中结果的可视化解释,展示了如何构造连续函数 g ( x , y ) g(x, y) g(x,y),使得 arg min y g ( x , y ) \argmin_y g(x,y) argminyg(x,y)产生 f ( x ) = { { 1 , 0 } , 如果 x = 1 ; 1 , 如果 x > 1 ; 0 , 其他情况 } f(x) = \{\{1,0\}, \text{如果} \, x = 1; 1, \text{如果} \, x > 1; 0, \text{其他情况}\} f(x)={{1,0},如果x=1;1,如果x>1;0,其他情况}。函数 g ( ⋅ ) g(·) g(⋅)(图b)是到 f ( ) f() f()图形的最小距离,例如一组锥体的下确界(图a)。逼近保证(定理2)可以通过 g ( ⋅ ) g(·) g(⋅)的等值集(图b,c)以及 g ( ⋅ ) g(·) g(⋅)的切片(图d)进行可视化。更多解释详见附录。
- 背景与目标
在讨论这两个定理之前,我们先明确一下场景:
- 隐式模型 通过一个连续函数 g ( x , y ) g(\mathbf{x}, \mathbf{y}) g(x,y) 定义输入 x \mathbf{x} x 和输出 y \mathbf{y} y 之间的关系,具体输出由 arg min y g ( x , y ) \arg\min_{\mathbf{y}} g(\mathbf{x}, \mathbf{y}) argminyg(x,y)给出。
- 多值或不连续函数 指的是,同一个输入 x \mathbf{x} x 可以对应一个或者多个可能的 y \mathbf{y} y,而且在不同 x \mathbf{x} x 之间有时会出现不连续跳变。
在这里所说的"在不同 x \mathbf{x} x 之间有时会出现不连续跳变"指的是,随着输入 x \mathbf{x} x 的变化,输出 y \mathbf{y} y 会在某些点发生"瞬间跳变",而不是平滑地过渡。也就是说,函数值在这些位置有一个"断点"或者"跳跃",看起来像是在某些输入值处突然换成了另一个输出
举个简单例子例:分段常数函数(Step function) f ( x ) = { 0 , x < 0.5 1 , x ≥ 0.5 f(x) = \begin{cases} 0, & x < 0.5 \\ 1, & x \ge 0.5 \end{cases} f(x)={0,1,x<0.5x≥0.5
- 当 x < 0.5 x < 0.5 x<0.5 时,输出总是 0。
- 当 x ≥ 0.5 x \ge 0.5 x≥0.5 时,输出却突然切换为 1。
这里的函数在 x = 0.5 x = 0.5 x=0.5 这个点不连续 ,因为在 x x x 逼近 0.5 0.5 0.5 左侧时,输出仍是 0,而在 x x x 稍大于 0.5 0.5 0.5 时,输出立刻跳到 1,没有"中间过渡值"。从图像上看,这就像是一条横线忽然在某个位置向上跃升到另一条横线,形成一个跳变点。
我们关心的是:
- 隐式模型能否表达任何类型的多值或不连续函数?(定理1)
- 如果我们的能量函数 g ( x , y ) g(\mathbf{x},\mathbf{y}) g(x,y) 不能完美地学到(有近似误差),是否还能逼近那些多值或不连续函数?(定理2)
- 定理1:关于可表示性
定理1 说:只要给定的多值函数 F ( x ) F(\mathbf{x}) F(x) 的"图像"是闭集(后面解释什么是闭集),那么就能构造一个连续函数 g ( x , y ) g(\mathbf{x},\mathbf{y}) g(x,y),使得:
arg min y g ( x , y ) = F ( x ) . \arg\min_{\mathbf{y}}\,g(\mathbf{x}, \mathbf{y}) \;=\; F(\mathbf{x}). argyming(x,y)=F(x).2.1 直观案例示例
示例 A:分段常数函数
- 比如 f ( x ) = 0 f(x) = 0 f(x)=0 当 x < 0.5 x<0.5 x<0.5, f ( x ) = 1 f(x)=1 f(x)=1 当 x ≥ 0.5 x\ge 0.5 x≥0.5。这是个不连续的函数。
- 若想用隐式形式表示:我们希望有某个 g ( x , y ) g(\mathbf{x},\mathbf{y}) g(x,y) 连续,但对 x < 0.5 \mathbf{x}<0.5 x<0.5时,最优 arg min y \arg\min_\mathbf{y} argminy 是 y = 0 \mathbf{y}=0 y=0,对 x ≥ 0.5 \mathbf{x}\ge0.5 x≥0.5时, arg min y \arg\min_\mathbf{y} argminy 是 y = 1 \mathbf{y}=1 y=1。
- 定理1说:这样一个 g ( x , y ) g(x,y) g(x,y) 一定是可以构造的。例如,你可以想象在 ( x < 0.5 , y = 0 ) (x<0.5,y=0) (x<0.5,y=0) 这片区域把 g ( x , y ) g(x,y) g(x,y) 做得更低,而在 ( x ≥ 0.5 , y = 1 ) (x\ge 0.5,y=1) (x≥0.5,y=1) 的区域也做得很低,并且让其他位置能量都更高,这就能保证 arg min \arg\min argmin落在你想要的位置上。这意味着隐式模型就自然能表示出那个具有不连续跳变的函数。
示例 B:多值函数
- 假设在 x = 0 x=0 x=0 时输出有两个可能值: y = 0 y=0 y=0 或 y = 1 y=1 y=1。定理1说明:可以设计 g ( x , y ) g(x,y) g(x,y) 让它在 ( x = 0 , y = 0 ) (x=0,y=0) (x=0,y=0) 和 ( x = 0 , y = 1 ) (x=0,y=1) (x=0,y=1) 区域的能量都同样低------于是 arg min \arg\min argmin 会包含两点,从而得到一个多值函数。
为什么要 "图像是闭集"?
- 在这些例子中, { ( x , y ) ∣ y = f ( x ) } \{(x,y)\mid y=f(x)\} {(x,y)∣y=f(x)} 其实是一个封闭集合(例如分段常数图形是一条水平线段+跳变点,也是闭的)。
- 如果这个图像不是闭的,就可能无法保证能量函数在那个集合外完全高、而在集合内完全低时还能保持连续性(大致可以这样理解)。
- 闭集 (Closed Set)简单说就是不包含"缺口"或"敞开端点"的集合:如果序列在集合内收敛,那么它的极限点仍然在集合内。这让构造 g g g 时更容易确保 arg min \arg\min argmin 恰好对应该集合。
什么是"图像是闭集"?
2.1.2 定义回顾
给定一个集合值函数 F ( x ) : x ∈ R m → P ( R n ) ∖ { ∅ } , F(\mathbf{x}): \mathbf{x} \in \mathbb{R}^m \;\to\; \mathcal{P}(\mathbb{R}^n) \setminus \{\emptyset\}, F(x):x∈Rm→P(Rn)∖{∅},
它的"图像"(Graph)可以写作: g r a p h ( F ) = { ( x , y ) ∣ y ∈ F ( x ) } . \mathrm{graph}(F) \;=\; \bigl\{\, (\mathbf{x}, \mathbf{y}) \,\mid\, \mathbf{y}\in F(\mathbf{x}) \bigr\}. graph(F)={(x,y)∣y∈F(x)}.
"图像是闭集" 即表示这个 g r a p h ( F ) \mathrm{graph}(F) graph(F) 作为一个位于 R m + n \mathbb{R}^{m+n} Rm+n 的集合是闭的,也就是说,如果有一个序列 ( x k , y k ) (\mathbf{x}k,\mathbf{y}k) (xk,yk) 一直在 g r a p h ( F ) \mathrm{graph}(F) graph(F) 里,并且收敛到某个点 ( x ∞ , y ∞ ) (\mathbf{x}\infty,\mathbf{y}\infty) (x∞,y∞),那这个极限点也仍然在 g r a p h ( F ) \mathrm{graph}(F) graph(F) 里。"如果有一个序列 ( x k , y k ) (\mathbf{x}_k,\mathbf{y}_k) (xk,yk) 一直在 g r a p h ( F ) \mathrm{graph}(F) graph(F) 里"是什么意思?
序列 ( x k , y k ) (\mathbf{x}_k,\mathbf{y}_k) (xk,yk)
- 在数学分析里,"序列"是指一系列点 ( x 1 , y 1 ) , ( x 2 , y 2 ) , ... (\mathbf{x}_1,\mathbf{y}_1), (\mathbf{x}_2,\mathbf{y}_2), \dots (x1,y1),(x2,y2),...,每个点都在同一个空间(这里是 R m + n \mathbb{R}^{m+n} Rm+n )里。
- 说"这串点一直在 g r a p h ( F ) \mathrm{graph}(F) graph(F) 里"表示:对所有 k k k, ( x k , y k ) ∈ g r a p h ( F ) (\mathbf{x}_k,\mathbf{y}_k)\in \mathrm{graph}(F) (xk,yk)∈graph(F)。换句话说,每一个元素的 x k \mathbf{x}_k xk 和 y k \mathbf{y}_k yk 之间满足 y k ∈ F ( x k ) \mathbf{y}_k\in F(\mathbf{x}_k) yk∈F(xk)。
g r a p h ( F ) \mathrm{graph}(F) graph(F) 的定义 g r a p h ( F ) = { ( x , y ) ∣ y ∈ F ( x ) } \mathrm{graph}(F) \;=\; \{(\mathbf{x}, \mathbf{y})\mid \mathbf{y}\in F(\mathbf{x})\} graph(F)={(x,y)∣y∈F(x)} 代表了所有合法 的 ( x , y ) (\mathbf{x}, \mathbf{y}) (x,y) 对儿。
为什么要提"序列"?
闭集的定义里常用到"序列收敛",用以检测一个集合是否包含它所有极限点。如果我们拿到一个集合中的序列,并且它极限在集合外,那就说明这个集合不是闭的;反之如果极限点还在集合里,就说明它"闭合"。
"并且收敛到某个点 ( x ∞ , y ∞ ) (\mathbf{x}\infty,\mathbf{y}\infty) (x∞,y∞),那这个极限点也仍然在 g r a p h ( F ) \mathrm{graph}(F) graph(F) 里。"是什么意思?
收敛到某个点:收敛 指的是,当序列 k → ∞ k\to \infty k→∞ 时, ( x k , y k ) (\mathbf{x}k,\mathbf{y}k) (xk,yk) 越来越靠近某个固定点 ( x ∞ , y ∞ ) (\mathbf{x}\infty,\mathbf{y}\infty) (x∞,y∞)。
- 形式上: ∥ x k − x ∞ ∥ → 0 \|\mathbf{x}k - \mathbf{x}\infty\|\to 0 ∥xk−x∞∥→0 且 ∥ y k − y ∞ ∥ → 0 \|\mathbf{y}k - \mathbf{y}\infty\|\to 0 ∥yk−y∞∥→0。
闭集的要求: " g r a p h ( F ) \mathrm{graph}(F) graph(F)是闭集"就意味着: 如果你拿任何 在 g r a p h ( F ) \mathrm{graph}(F) graph(F) 内的序列,并且它收敛到一个极限点 ( x ∞ , y ∞ ) (\mathbf{x}\infty,\mathbf{y}\infty) (x∞,y∞),那么该极限点也必须在 g r a p h ( F ) \mathrm{graph}(F) graph(F) 里。
直白地说:
- 你不可能在图形 g r a p h ( F ) \mathrm{graph}(F) graph(F) 里面走啊走,结果最后走到一个点,却发现它不属于这幅图形。
- 如果出现了这样的点,就说明图形不是闭的。
具体解释:
- 由于每个 ( x k , y k ) (\mathbf{x}_k,\mathbf{y}_k) (xk,yk) 都在图形里,则 y k ∈ F ( x k ) \mathbf{y}_k \in F(\mathbf{x}_k) yk∈F(xk)。
- 如果它的极限是 ( x ∞ , y ∞ ) (\mathbf{x}\infty,\mathbf{y}\infty) (x∞,y∞),闭集就要求 y ∞ ∈ F ( x ∞ ) \mathbf{y}\infty \in F(\mathbf{x}\infty) y∞∈F(x∞)。这意味着极限并没有"跑到外边"去。
2.1.2 例子
- 分段常数 : f ( x ) = 0 f(x) = 0 f(x)=0( x < 0.5 x<0.5 x<0.5) 或 1 1 1( x ≥ 0.5 x\ge0.5 x≥0.5) 的图形是闭的:因为序列不可能收敛到图形之外。
- 多值函数 :只要对于每个 x x x 给出的 { y } \{y\} {y} 都是闭合的(没有缺口)并且当 x x x 变化时不会产生"敞开"式跳变,就能保证整体 g r a p h ( F ) \mathrm{graph}(F) graph(F) 闭合。
"只要对于每个 (x) 给出的 ({y}) 都是闭合的(没有缺口)"是什么意思?
我们先看一下"集合值函数"的含义: F ( x ) ⊂ R n F(\mathbf{x}) \subset \mathbb{R}^n F(x)⊂Rn
表示:对每个输入 x ∈ R m \mathbf{x}\in \mathbb{R}^m x∈Rm,函数 F F F 返回一个"子集" { y } ⊂ R n \{y\}\subset \mathbb{R}^n {y}⊂Rn。这就是"多值函数"或"集合值函数"------同一个 x x x 可能对应多个 y y y。
" { y } \{y\} {y} 都是闭合" : 对于每一个固定的 x x x,我们得到一个子集 F ( x ) ⊂ R n F(\mathbf{x}) \subset \mathbb{R}^n F(x)⊂Rn。所谓"闭合"就是说这些子集不含"打开的缺口"或"漏掉的点"------如果有一条通向集合边缘的序列,总能保证它的极限在集合里。
- 举个小例子:如果对某个 x x x, F ( x ) F(x) F(x) 是区间 [ 0 , 1 ] [0,1] [0,1],它就是闭区间,没有缺口;但如果它是区间 ( 0 , 1 ) (0,1) (0,1)(开区间),就有"缺口"------即边界0和1不包含在里面,这时它就不是闭合的。
换句话说,"没有缺口"可以理解成:当你在子集里"走来走去",如果快到边缘了(极限点),那个边缘点也属于这个子集,不会莫名其妙地把你"抛出"集合外。
- 注意不连续并不意味着图形开口,如分段跳变一样依旧是闭的,每段和跳变点都包含在内。
若函数的图像不是闭集,可能出现"极限点不在集合内"的情况,会使得构造 arg min g \arg\min g argming 时出现技术性障碍:它可能无法"把"能量函数在极限点附近保持一致的连续低值 。
举例 : F ( x ) F(x) F(x) 是下面这样一个分段常数函数: F ( x ) = { { 0 } , x < 0.5 , { 1 } , x ≥ 0.5. F(x) = \begin{cases} \{0\}, & x<0.5,\\ \{1\}, & x\ge 0.5. \end{cases} F(x)={{0},{1},x<0.5,x≥0.5.
- 它的图形 g r a p h ( F ) \mathrm{graph}(F) graph(F) 在 R 2 \mathbb{R}^2 R2 中看起来是两段水平线:一段在 x < 0.5 x<0.5 x<0.5 区域对应 y = 0 y=0 y=0,另一段在 x ≥ 0.5 x\ge 0.5 x≥0.5 区域对应 y = 1 y=1 y=1。
- 这是一个不连续函数(在 x = 0.5 x=0.5 x=0.5 跳变),但依然是闭集 :如果你在这两段线段里走动形成一个序列,并且收敛到某个点 ( x ∞ , y ∞ ) (x_\infty, y_\infty) (x∞,y∞),你会发现在极限处,要么 x ∞ < 0.5 x_\infty <0.5 x∞<0.5 于是 y ∞ = 0 y_\infty=0 y∞=0,要么 x ∞ > 0.5 x_\infty>0.5 x∞>0.5 则 y ∞ = 1 y_\infty=1 y∞=1,或者 x ∞ = 0.5 x_\infty=0.5 x∞=0.5 但 y ∞ y_\infty y∞ 可能是0或1,都在图形之内。
如果图形是开集 ,就相当于说"某些边缘点并不包含在内"。比如,假如我们把上面那段线改成"当 x < 0.5 x<0.5 x<0.5 时输出 y = 0 y=0 y=0,但那个 x = 0.5 x=0.5 x=0.5 点本身没有包含在图里",那么这部分就不是闭的,因为序列可能逼近 x = 0.5 x=0.5 x=0.5 却没有包含那个端点,从而极限点不在图里面。
总体结论:
- 对集合值函数 F F F " g r a p h ( F ) \mathrm{graph}(F) graph(F)是闭集"就意味着,如果有一个 ( x , y ) (\mathbf{x},\mathbf{y}) (x,y)序列总是在图形里,并且它收敛到某个 ( x ∞ , y ∞ ) (\mathbf{x}\infty,\mathbf{y}\infty) (x∞,y∞),那么极限点也不会"溜出"这个图形,仍然满足 y ∞ ∈ F ( x ∞ ) \mathbf{y}\infty \in F(\mathbf{x}\infty) y∞∈F(x∞)。
- 没有缺口 (闭口)的直白含义:在不同 x \mathbf{x} x 取到的 y \mathbf{y} y 集合上,如果是闭合,就意味着没有"少包含"边界端点那种情况;从而保证对 arg min \arg\min argmin 这样操作时,不会出现极限点遗漏在外的情形。
- 定理2:关于逼近
定理2 在定理1的基础上进一步说:不但存在一个理想的 g ( x , y ) g(\mathbf{x},\mathbf{y}) g(x,y) 完全实现 arg min = F ( x ) \arg\min=F(\mathbf{x}) argmin=F(x),而且我们还能用一个可微逼近器 (如ReLU-MLP)来逼近这个 g g g,使其达到任意小的误差 ϵ \epsilon ϵ;并且只要这个误差小, arg min \arg\min argmin的结果也会和原本的目标函数 F ( x ) F(\mathbf{x}) F(x) 非常接近。
3.1 直观案例示例
示例 C:叠加微小扰动
- 想象你已经设计了一个完美的 g ∗ ( x , y ) g^*(x,y) g∗(x,y) 实现了不连续分段函数。现在如果你用神经网络 g θ ( x , y ) g_\theta(x,y) gθ(x,y) 去拟合它,但可能因为训练不够好或者容量有限,最后只能达到 ∥ g θ − g ∗ ∥ ≤ ϵ \|g_\theta - g^*\|\le\epsilon ∥gθ−g∗∥≤ϵ的水平。
- 定理2说明:只要 ϵ \epsilon ϵ足够小,你做 arg min y g θ ( x , y ) \arg\min_y\,g_\theta(x,y) argminygθ(x,y) 得到的那个输出 y ^ \hat{y} y^和真正的 F ( x ) F(x) F(x) 之间距离也不会大。换句话说, arg min \arg\min argmin操作对 ϵ \epsilon ϵ扰动是"稳健"的。
示例 D:多值输出逼近
- 设想原函数在某些 x x x 下有多个输出(比如 2 个值)。即使我们的神经网络逼近得到的 g θ g_\theta gθ 在这些 ( x , y ) (x,y) (x,y) 区域不是精确 最低,但只要它把那两个值附近的能量都做得相对较低,而其他位置都高,那么 arg min \arg\min argmin 会依然包含那两个值。
归纳理解
定理1 :可以把它理解成一个"可表示性"结论:任何只要图像是闭合的多值/不连续函数,都能通过隐式模型 arg min g \arg\min g argming 来表示。
定理2 :则是一个"可逼近性"结论:就算我们只能学到"近似"的 g θ g_\theta gθ,只要这种逼近足够好,最终的 arg min \arg\min argmin 解依旧接近我们想要的多值/不连续函数。
- 一个更贴近实际的例子
假设在机器人控制中,我们有一个多分段的控制策略:
- "当传感器读数小于0.3时,让舵机输出 0.0;当传感器读数介于[0.3, 0.6]时,让舵机输出 0.5;当>0.6时输出1.0。"
这是一个不连续、多段式的映射。定理1告诉我们:可以用某个连续函数 g ( x , y ) g(\mathbf{x},\mathbf{y}) g(x,y) 设计成:
- 在 ( x < 0.3 , y = 0.0 ) (x<0.3, y=0.0) (x<0.3,y=0.0) 区域能量最低;
- 在 ( 0.3 ≤ x < 0.6 , y = 0.5 ) (0.3 \le x <0.6, y=0.5) (0.3≤x<0.6,y=0.5) 区域最低;
- 在 ( x > 0.6 , y = 1.0 ) (x>0.6, y=1.0) (x>0.6,y=1.0) 区域最低;
- 其他地方能量较高;并保证 arg min y g \arg\min_y g argminyg 正好是这种"分段常数"策略。
然后根据定理2,如果我们无法完美建出这个 g g g,只要网络逼近还不错,就能让最终 arg min \arg\min argmin 只在小范围内偏差。
- 小结
为什么隐式模型能表示多值或不连续函数? 因为 arg min \arg\min argmin可以同时包含多个最小值,也能在不同 x \mathbf{x} x下产生跳变,从而满足"多值"和"不连续"的需求。
逼近性又是什么意思? 就是说实际用可微神经网络去学习一个 g θ g_\theta gθ,只要 θ \theta θ训练得足够好,那么 arg min g θ \arg\min g_\theta argmingθ就能无限接近理想的多值/不连续函数。
闭集条件 它是为了在数学上确保你想要的函数图形不会"裂开"或含有缺口。这样才能保证连续函数 g g g的构造与 arg min \arg\min argmin运算是可行和稳定的。
这样,我们就理解了定理1和定理2背后的核心思想:
- 可以设计一个连续的能量函数 g g g,让 arg min \arg\min argmin得到想要的多值/不连续映射(定理1)。
- 实际训练时,如神经网络只能做到有误差的近似,但只要误差可控, arg min \arg\min argmin的解依旧接近原函数(定理2)。
- "图像是闭集"是一个必要的数学条件,保证在 arg min \arg\min argmin的集合不会出现"意外缺失",从而使得表示和逼近都能成立。
6 相关工作
能量模型与隐式学习
关于能量模型的综述可参考LeCun等人[10]和Song & Kingma[19]的研究。Du和Mordatch[12]提出使用Langevin MCMC[11]采样进行训练和隐式推理,并论述了隐式生成的几个优势,包括组合性、对分布外数据的泛化能力,以及在长时序预测中的经验性结果。[34]提出了一个用于行为学习的能量模型的通用框架。在应用领域,能量模型近年来在多个领域取得了最先进的成果,包括各种计算机视觉任务[35, 36]以及图像和文本生成等生成建模任务[12, 37, 38]。许多其他研究探讨了在学习中使用隐式函数的概念,包括研究隐式层的工作[39, 40, 41, 42, 43]。在几何表示学习中,隐式表示也受到广泛关注[44, 45, 46, 47]。在机器人领域,隐式模型已被用于建模不连续接触动力学[48]。
能量模型在策略学习中的应用
在强化学习中,[13]使用能量模型(EBM)公式作为策略表示。近期其他研究[14]将EBM用于基于模型的规划框架,或者在模仿学习中使用EBM[49],但采用的是基于策略的算法。最近的强化学习工作中,EBM常作为整体算法的一部分,例如[15, 16]。此外,critic-only Q学习[50]同样隐式定义了动作映射,但使用的是强化学习而非监督学习。
通过模仿学习进行策略学习
除了行为克隆(BC)[1]外,机器学习和机器人社区还探索了许多额外的模仿学习方法[51, 52, 53],这些方法通常需要额外的信息。一种途径是收集已学习策略的基于策略的数据,并可能通过标注奖励来执行基于策略的强化学习(RL)[54, 55, 56],或者通过专家标注动作[2]。像GAIL[7]这样的分布匹配算法无需标注,但可能需要数百万次基于策略的环境交互。虽然ValueDice[57]等算法在样本高效的基于策略外环境中实现了分布匹配,但尚未证明其在图像观测或高自由度动作空间中的有效性。另一种利用超越BC的信息的途径是为基于策略外的数据标注奖励,这也是离线RL社区的研究重点[17]。所有这些方向都是不错的想法。然而,一个或许未被完全认识到的发现是,在某些情况下,即使是最简单形式的BC也能取得惊人的好结果。在离线RL基准测试中,之前的工作已表明BC在离线RL算法中具有相当的竞争力[17, 58]。在真实世界的机器人研究中,BC已广泛用于策略学习[4, 30, 5, 25]。BC的成功可能来自于其简单性:它对数据收集的要求最低(不需要奖励标注或基于策略的数据),数据效率高[5, 25],而且其实现最简单,调参也最容易(超参数比基于RL的方法少)。
不连续函数的近似
Cybenko[59]等人关于神经网络通用近似性的基础性结果对机器学习研究和应用具有深远影响。各种方法被开发出来用于近似不连续函数[60, 61, 62, 63],但通常不使用神经网络。此外,[64]受机器人建模现象的应用启发,开发了使用神经网络近似不连续函数的理论,但该方法需要先验的关于不连续位置的知识。我们的工作建立在连续神经网络的广泛应用结果之上,通过与 arg min \argmin argmin的组合,提供了一种即使对于不连续的集合值函数也具有通用近似性的概念。
7 结论
本文展示了将监督模仿学习重新表述为条件能量模型问题,并在推理阶段使用隐式回归的方法,通常显著优于传统显式策略基线。这包括在高维动作空间(例如D4RL人类专家任务中的30维动作空间)、视觉观测以及实际场景中的任务。在局限性方面,与显式模型相比,隐式模型通常需要更多的计算资源,无论是在训练还是推理阶段(见附录中的比较)。然而,我们已展示出隐式策略可以在真实场景中用于基于视觉的实时控制,并且其算法复杂度与离线强化学习算法相比更为简单。
为进一步论证隐式模型的应用价值,我们提供了对能量模型特性的直观分析,强调了若干潜在优势------据我们所知,这些优势尚未在文献中讨论,例如隐式模型准确建模不连续性的能力。最后,为理论支撑我们的结果,我们提出了隐式模型的通用逼近概念,这一概念与显式模型的通用逼近性不同。