Out-of-distribution-上
概述
定位:对2021年纽约大学Martin Arjovsky的PhD论文进行提炼,是一篇阅读笔记;
- 术语:Performance gap:在数据集训练的模型,在测试集表现的性能差异,因为在测试集会遇到out-of-distribution的data
- OOD的两大问题
- 有效的数据长什么样,怎么来的? What kind of data is available?
- 希望模型的泛化能力适应哪些测试数据?What do we want to generalize to ?
- OOD关注点
- 需要对数据做哪些假设,才能使其适应问题的结构
- 如何选择合适的算法进行学习,使模型的泛化能力“定向增强”?
如果数据的假设太强,就会不适应问题的结构,哪怕学习算法再好,模型的泛化性能也不强;
如果数据的假设太弱,模型泛化能力的导向性就不强,很难有什么实际的提升。
如果不对数据做任何假设,就没大意义了,想提高泛化性就不断加大训练数据的量到巨量、海量就是了,毕竟天下没有免费的午餐。
一、 量化外推泛化能力
关注方法对数据的假设,哪些假设在哪些任务是有效的,在哪些任务是无效的?
0.专业术语&核心理解(逻辑链)
符号 | 术语含义 |
---|---|
X , Y \mathcal{X,Y} X,Y | 样本空间/输入空间 (input space) 、标记空间/输出空间(label space) |
Y ^ \mathcal{\hat Y} Y^ | 预测空间 (predicted label space) |
ℓ : Y ^ × Y → R + \ell:\mathcal{\hat Y \times Y}\rightarrow \mathbb R_{+} ℓ:Y^×Y→R+ | 损失函数(loss function) |
f : X → Y ^ f:\mathcal{X\rightarrow \hat Y} f:X→Y^ | 假设空间/预测函数 (hypothesis/predictor) |
{ P e } e ∈ E ∈ X × Y \{\mathbb P^e\}_{e\in \mathcal E}\in \mathcal{X\times Y} {Pe}e∈E∈X×Y | 在input space与label space联合空间上,受环境 e ∈ E e\in \mathcal E e∈E控制的概率分布 |
( X e , Y e ) ∼ P e (\mathcal{X^e,Y^e})\sim \mathbb P^e (Xe,Ye)∼Pe | 在具体环境 e e e下,样本与label服从概率分布 P e \mathbb P^e Pe |
R e ( f ) : = E ( X e , Y e ) ∼ P e [ ℓ ( f ( X e , Y e ) ] ] R^e(f):=\mathbb E_{(X^e,Y^e)\sim \mathbb P^e}[\ell(f(X^e,Y^e)]] Re(f):=E(Xe,Ye)∼Pe[ℓ(f(Xe,Ye)]] | 衡量环境 e e e下假设或预测器 f f f的经验风险 |
Φ : X → H ^ \Phi:\mathcal {X\rightarrow \hat H} Φ:X→H^ | 特征提取器(featurizer), Φ \Phi Φ将样本空间映射到特征空间 |
w : H ^ → Y w:\mathcal{\hat H\rightarrow Y} w:H^→Y | 分类器(classifier), w w w将特征空间分类到标记空间 |
基础概念的理解特别重要。采用业务流程加深理解记忆:
- 有一个分类任务的场景需求,首先抽象出其input space X \mathcal X X和 output space Y \mathcal Y Y
- 在具体环境 e e e下(比如特定时间点,特定人群等),观察得到受环境 e e e制约的数据集 X e X^e Xe,人为标记得到 Y e Y^e Ye
- 由Keep it Simple的原则,决定采用一个End-To-End的预测器predictor f : X → Y ^ f:\mathcal{X\rightarrow \hat Y} f:X→Y^
- 根据业务理解,选择损失函数 ℓ : Y ^ × Y → R + \ell:\mathcal{\hat Y \times Y}\rightarrow \mathbb R_{+} ℓ:Y^×Y→R+, f f f的predictor结构与算法
- 最小化经验风险 R e ( f ) : = E ( X e , Y e ) ∼ P e [ ℓ ( f ( X e , Y e ) ] ] R^e(f):=\mathbb E_{(X^e,Y^e)\sim \mathbb P^e}[\ell(f(X^e,Y^e)]] Re(f):=E(Xe,Ye)∼Pe[ℓ(f(Xe,Ye)]],发现 f f f的初始效果还不错
- 于是决定,不断改进其损失函数 ℓ \ell ℓ,尝试不同的结构与算法来得到 f f f,提升了不少性能
- 进入了业务瓶颈,发现一些异常状态怎样都无法解决,抛弃简单原则,进行“定向泛化”
- 根据业务需求,魔改特征或网络学习特征,制定一个较为通用的特征提取器 Φ : X → H ^ \Phi:\mathcal {X\rightarrow \hat H} Φ:X→H^,将样本映射到特征空间
- 对异常状态归类,采用不同的分类器对特征进行分类 w : H ^ → Y w:\mathcal{\hat H\rightarrow Y} w:H^→Y
- 从而使得该系统对业务更为鲁棒,不断收集更多样的样本 X e ′ , e ′ ∈ E X^{e'},e'\in \mathcal E Xe′,e′∈E ,继续标记 Y e ′ Y^{e'} Ye′迭代
X
X
X与
Y
Y
Y之间的相关性(correlation),既有linear dependence又有non-linear dependence
重点来了:
因此,我们假设数据来源于一个受限分布
P
e
\mathbb P^e
Pe,受限分布来源于一个meta-distribution
e
∼
E
e\sim \mathcal E
e∼E。
而我们训练的数据,可能来自多个
P
e
\mathbb P^e
Pe,这多个
e
e
e的集合记为
E
t
r
a
i
n
\mathcal E_{train}
Etrain;而部署上线的系统或分类器
w
w
w,面对的数据是大概率来自于所有环境
e
e
e产生的,记为
E
a
l
l
\mathcal E_{all}
Eall; 因此,得从
E
t
r
a
i
n
\mathcal E_{train}
Etrain得到的数据中,尽量寻找到尽可能多的invariance,并能外推到
E
a
l
l
\mathcal E_{all}
Eall上,即泛化能力。
通篇有两个关键问题得铭记在心:
问题一:如何从
E
t
r
a
i
n
\mathcal E_{train}
Etrain从抽出invariance?(IRM–>IRMv1–>Representation function)
问题二:什么样的假设与理论可以保证invariance可以generalize到
E
a
l
l
\mathcal E_{all}
Eall?
1.1 值得记住的3个Examples
这四个例子,主要目的是帮助理解X与Y之间的correlation究竟是什么?会遇到什么问题?
1.1.1 Spurious Correlation
问题模式
X
1
→
Y
→
X
2
X_1\rightarrow Y\rightarrow X_2
X1→Y→X2
比如
X
e
=
(
X
1
e
,
X
2
e
)
X^e=(X_1^e,X_2^e)
Xe=(X1e,X2e)代表
e
e
e地理区域的住房需求、人口素质水平的两维特征,而
Y
e
Y^e
Ye代表房价。如果数据的生成过程如下:
X
1
→
Y
→
X
2
X_1\rightarrow Y\rightarrow X_2
X1→Y→X2
X
1
e
←
Gaussian
(
0
,
1
)
Y
e
←
X
1
e
+
Gaussian
(
0
,
1
)
X
2
e
←
β
(
e
)
Y
e
+
Gaussian
(
0
,
1
)
\begin{array}{l} X_{1}^{e} \leftarrow \operatorname{Gaussian}(0,1) \\ Y^{e} \leftarrow X_{1}^{e}+\operatorname{Gaussian}(0,1) \\ X_{2}^{e} \leftarrow \beta(e) Y^{e}+\operatorname{Gaussian}(0,1) \end{array}
X1e←Gaussian(0,1)Ye←X1e+Gaussian(0,1)X2e←β(e)Ye+Gaussian(0,1)
住房需求 X 1 X_1 X1通常决定房价 Y Y Y,而房价高低 Y Y Y又在某种程度上影响着人口素质水平 X 2 X_2 X2,不同区域 e e e的影响程度由 β ( e ) \beta(e) β(e)控制。所以在北上广深这些一线城市 e e e, β ( e ) \beta(e) β(e)可能是正的,房价越高意味着人口素质水平越高;在三四线城市这些 e ′ , β ( e ′ ) e',\beta(e') e′,β(e′)可能是负的,房价越高意味着人口素质水平越低;
通常来说,做这个任务,一般采用Empirical Risk Minimization来处理观察到的数据集 X , Y X,Y X,Y,ERM核心假设:训练样本点是i.i.d且我们对问题的meta-distribution一无所知。但如果数据集都来自于北上广深 E t r a i n \mathcal E_{train} Etrain,采用ERM学习一个预测器 f f f,你觉得它们可以“泛化”到三四线城市 E a l l \mathcal E_{all} Eall吗?
为什么?因为我们只看到数据,看不到数据生成过程,还做了一个“极其省力”的ERM假设。所以,为了提高其“外推”能力,必须得从数据中学习meta-distribution的结构,以及更换ERM这个核心假设。
术语一点:真实的关系是 Y ^ = f ( X ) = α 1 X 1 \hat Y =f(X)=\alpha_1X_1 Y^=f(X)=α1X1 ,省力用ERM假设,学习到的 f f f一般是 Y ^ = f ( X ) = α 1 X 1 + α 2 X 2 \hat Y=f(X) = \alpha_1X_1 + \alpha_2X_2 Y^=f(X)=α1X1+α2X2,因此这个例子的关注点是Spurious Correlation,这里的ERM假设太强,假设了训练与测试环境来自同一个distribution,而meta-distribution结构上由一个自由变量 β ( e ) \beta(e) β(e)控制。
1.1.2 Background Bias
问题模式: ( X 1 , X 2 ) → Y (X_1,X_2)\rightarrow Y (X1,X2)→Y
简要描述一下:从一个数据集的图片中识别牛(cow)的任务,这数据集主要从两个环境收集,比如英国和印度,比例分别为80%和20%。然后丢进一个深度网络一把梭哈,训练准确率99%,测试准确率95%,发现还不错。部署上线,测试准确率惨不忍睹,因为英国的牛大部分在草原(grass)上,印度的牛大部分在沙漠(dessert)上,所以网络学会的是分辨草原和沙漠,而不是牛(cow)本身。( X 1 X_1 X1指图像中的context, X 2 X_2 X2指图像中的landscapes)
这个问题关注点是Background Bias,样本 X X X是一张图片,维度是pixels,而控制环境 e e e的是某些离散Meta-feature(浅层的feature比如草原和沙漠的Background bias,还可以是天空与房屋,深层的feature比如是地理位置,毕竟不同区域的景观不同),人为根本没法仔细区分。
术语一点:cv任务中,input space抽象为landscapes (也可以说styles) 和 contexts,label space抽象为problem of interest (识别牛最关键的假设为轮廓shapes)。但因为各种styles的比例不均,仅仅通过ERM假设,最大似然学习准则,Cross-Entropy的loss是很难分清图像中哪些是对应problem of interest的contexts,哪些是干扰相关的因素。这个关于环境的Meta-distribution( E \mathcal E E)结构可能非常复杂,meta-feature可能是不同地理区域、不同风俗习惯等信息聚合体,但我们却只关心cow shapes,太难了= =。
1.1.3 Geometric Space
这个问题的模式是
X
→
Y
X\rightarrow Y
X→Y,特别之处是
E
a
l
l
\mathcal E_{all}
Eall在
E
t
r
a
i
n
\mathcal E_{train}
Etrain的邻域。
这个Examples对应的是对抗样本鲁棒性的任务:
对于在
E
t
r
a
i
n
\mathcal E_{train}
Etrain训练好的
f
:
X
→
Y
f:X\rightarrow Y
f:X→Y,从
E
t
r
a
i
n
\mathcal E_{train}
Etrain中取一个
X
X
X,基于某种微小的扰动
T
T
T,使得对抗样本
T
(
x
)
T(x)
T(x)能骗过
f
f
f。因此,可理解成,对抗攻击的过程就是在
P
t
r
a
i
n
\mathbb P^{train}
Ptrain附近测试的过程,即
E
a
l
l
\mathcal E_{all}
Eall。
这个问题关注点是Geometric Space,即测试的空间是和训练环境组成的空间是邻近的。但仍然用传统的ERM核心假设,即训练环境与测试环境独立同分布的话,这样就没有利用上这个Geometric Space的信息了。
1.2 Examples总结
- Example 1的问题模式 X 1 → Y → X 2 X_1\rightarrow Y\rightarrow X_2 X1→Y→X2,有因果效应的意味,对于Y而言cause是 X 1 X_1 X1,effect是 X 2 X_2 X2(如何区分cause和effect?)
- Example 2的问题模式: ( X 1 , X 2 ) → Y (X_1,X_2)\rightarrow Y (X1,X2)→Y,有相关性的意味,对于Y而言, X 1 X_1 X1是problem dominant cause, X 2 X_2 X2是correlated cause (如何从这么多cause中选出dominant?)
- Example 3的问题模式: X → Y , ∣ E t r a i n − E a l l ∣ ≤ ϵ X\rightarrow Y, |\mathcal E_{train}-\mathcal E_{all}|\leq\epsilon X→Y,∣Etrain−Eall∣≤ϵ,问题多了一个可利用的邻域几何结构(如何简化利用这个几何假设?)
为什么会出现这些Examples???因为我们为了省力呀,直接最小化经验风险损失ERM,当训练样本和测试样本真的是来自一个环境的独立同分布可还行,但如果不是i.i.d,而是多个环境的样本那就不行,所以才出现这些问题!为了鲁棒性,为了泛化性,我们不能再偷懒了。
1.3 常规解决方法
上面对三个问题模式泛泛而谈,下面就开始公式化,严肃点了。(
f
f
f还记得是predictor吧)
Ideal Goal :
R
E
R
M
(
f
)
=
∑
e
∈
E
t
r
a
i
n
R
e
(
f
)
OOD Goal :
R
O
O
D
(
f
)
=
max
e
∈
E
a
l
l
R
e
(
f
)
\begin{aligned} \text{Ideal Goal :}&\quad \mathcal R^{ERM}(f)=\sum_{e\in\mathcal E_{train}}R^e(f)\\ \text{OOD Goal :}&\quad \mathcal R^{OOD}(f) = \max_{e\in \mathcal E_{all}}R^e(f) \end{aligned}
Ideal Goal :OOD Goal :RERM(f)=e∈Etrain∑Re(f)ROOD(f)=e∈EallmaxRe(f)
Ideal Goal是我们最常用的核心假设,对训练集中包含的“环境“通通一视同仁,这样容易造成样本多的环境过拟合,样本少的环境欠拟合,训练准确率很高,但泛化性表现一般。
OOD Goal是外推问题最理想的目标,对所有环境中性能最差 R e ( f ) R^e(f) Re(f)的进行优化,从而泛化性得以保证。(可惜,实际计算都是算不了的,环境e的分布都不知道,鬼知道哪个环境最差呀。)下面列举一些OOD理想目标的常见折中、妥协的优化方法
1.3.1 Robust Optimization
Goal : R O O D ( f ) = max e ∈ E a l l R e ( f ) Method : R r o b ( f ) = max e ∈ E t r a i n R e ( f ) − r e where r e = V [ Y e ] Equiv : R r o b ( f ) = ∑ e ∈ E t r a i n λ e R e ( f ) \begin{aligned} \text{Goal :}&\quad \mathcal R^{OOD}(f) = \max_{e\in \mathcal E_{all}}R^e(f)\\ \text{Method :}&\quad\mathcal R^{rob}(f) = \max_{e\in \mathcal E_{train}} R^e(f)-r_e\quad\text{where } r_e=\mathcal V[Y^e]\\ \text{Equiv :}&\quad\mathcal R^{rob}(f) = \sum_{e\in \mathcal E_{train}}\lambda_eR^e(f) \end{aligned} Goal :Method :Equiv :ROOD(f)=e∈EallmaxRe(f)Rrob(f)=e∈EtrainmaxRe(f)−rewhere re=V[Ye]Rrob(f)=e∈Etrain∑λeRe(f)
Robust Optimization Method 的妥协点:
- 既然不知道 e ∈ E a l l e\in \mathcal E_{all} e∈Eall,那就 e ∈ E t r a i n e\in \mathcal E_{train} e∈Etrain吧
- e ∈ E t r a i n e\in \mathcal E_{train} e∈Etrain这玩意有问题,就加一些基于环境 e e e的补偿吧
- 然后假设选择 r e r_e re是 Y e Y^e Ye的方差,即最大化predictor f f f 表现最差环境的方差。(因为 f f f在这个e上表现最差,说明没学到什么,所以要加大它的方差,希望它学到点什么)
然后可以说:在训练的时候引入了robustness ( r e ) (r_e) (re),但并不保证测试的时候有robustness;
理论证明,在一定条件下,这种robust optimization method相当于是对环境加权平均的经验最小化,即:
∑ e ∈ E t r a i n λ e R e ( f ) ≈ max e ∈ E t r a i n R e ( f ) − r e \sum_{e\in \mathcal E_{train}}\lambda_e\mathcal R^e(f)\approx \max_{e\in \mathcal E_{train}} R^e(f)-r_e e∈Etrain∑λeRe(f)≈e∈EtrainmaxRe(f)−re
这相当于说,希望predictor
f
f
f对不同训练环境
e
e
e给予不同的注意力关注。(日常吐槽,前提条件,你得知道具体环境究竟是啥才行呀)
这能解决Example2的问题(因为注意力机制,所以相关性可以被衡量),然而这没办法发现Example1中的Spurious Correlation 即分不清 cause & effect(因为训练集中的
β
(
e
)
>
0
\beta(e)>0
β(e)>0,无法泛化到
β
(
e
)
<
0
\beta(e)<0
β(e)<0的测试环境)
1.3.2 Distance Measure Robustness
这里的Distance Measure主要指Wasserstein Distance和f-divergence
E t r a i n = { P t r a i n } , E a l l = { P : D f ( P t r a i n , P ) ≤ ϵ or W ( P t r a i n , P t e s t ) ≤ ϵ } \mathcal E_{train}=\{P^{train}\}, \mathcal E_{all}=\{P:D_f(P^{train},P)\le \epsilon \text{ or } W(P^{train},P^{test})\le \epsilon\} Etrain={Ptrain},Eall={P:Df(Ptrain,P)≤ϵ or W(Ptrain,Ptest)≤ϵ}
这个解决方法,主要为Example3的adversarial samples量身定制,利用了训练与测试分布之间的结构Geometric Space核心假设:因为 ∣ ∣ T ( x ) − x ∣ ∣ ≤ ϵ ||T(x)-x||\le \epsilon ∣∣T(x)−x∣∣≤ϵ,所以 W ( P t r a i n , P t e s t ) ≤ ϵ W(P^{train},P^{test})\le \epsilon W(Ptrain,Ptest)≤ϵ。
直观地说,是因为adversarial examples来源的测试集环境,与训练集比较相似,是在训练集上的样本进行微小的扰动 T ( x ) T(x) T(x)进行攻击的,所以符合训练集环境与测试集环境在基于Distance Measure的几何空间上被约束在某个范围内了。
这样的假设能解决 Example 2.3,但仍然无法解决Example2.1和Example2.2(Example1要区分cause&effect很显然不行,仔细思考一下那为什么Example2.2不行?)
1.3.4 Domain Adaptation
简要回顾Domain Adaptation:在源环境 e t r a i n e_{train} etrain收集的Data有label,但另一个环境 e t e s t e_{test} etest的Data没有label,想学习一个classfier能在 e t e s t e_{test} etest上分类(记住目的)。
- 第一步:先学习一个representation,将两个环境的data映射到特征空间,使它们的概率分布差不多,即:
在一个feature representation下 Φ : X → H ^ \Phi:X\rightarrow \hat{\mathcal H} Φ:X→H^,有:
P e t r a i n ( Φ ( X e t r a i n ) ) = P e t e s t ( Φ ( X e t e s t ) ) P^{e_{train}}(\Phi(X^{e_{{train}}}))=P^{e_{test}}(\Phi(X^{e_{test}})) Petrain(Φ(Xetrain))=Petest(Φ(Xetest)) - 第二步:然后学习一个分类器 w : H ^ → Y ^ w:\hat{\mathcal H}\rightarrow \hat{\mathcal Y} w:H^→Y^对 e t r a i n e_{train} etrain进行分类( 因为 e t r a i n e_{train} etrain有label )
Domain Adaptation的关键点是,学习到了对两个环境鲁棒的特征表示,只要对其中一个分好类,那另一个自然也就能分类了。
先下个结论:这能很好地解决Example1,但无法解决Examples2。
为什么能区分 cause & effect ?回顾一下Example1
X 1 e ← Gaussian ( 0 , 1 ) Y e ← X 1 e + Gaussian ( 0 , 1 ) X 2 e ← β ( e ) Y e + Gaussian ( 0 , 1 ) \begin{array}{l} X_{1}^{e} \leftarrow \operatorname{Gaussian}(0,1) \\ Y^{e} \leftarrow X_{1}^{e}+\operatorname{Gaussian}(0,1) \\ X_{2}^{e} \leftarrow \beta(e) Y^{e}+\operatorname{Gaussian}(0,1) \end{array} X1e←Gaussian(0,1)Ye←X1e+Gaussian(0,1)X2e←β(e)Ye+Gaussian(0,1)
对于两个环境有:
X e t r a i n = ( X 1 e t r a i n , X 2 e t r a i n = β ( e t r a i n ) X 1 e t r a i n + β ( e t r a i n ) ) X^{e_{train}}=\left(X_1^{e_{train}},X^{e_{train}}_2=\beta(e_{train})X_1^{e_{train}}+\beta(e_{train})\right) Xetrain=(X1etrain,X2etrain=β(etrain)X1etrain+β(etrain))
X e t e s t = ( X 1 e t e s t , X 2 e t e s t = β ( e t e s t ) X 1 e t e s t + β ( e t e s t ) ) X^{e_{test}}=\left(X_1^{e_{test}},X^{e_{test}}_2=\beta(e_{test})X_1^{e_{test}}+\beta(e_{test})\right) Xetest=(X1etest,X2etest=β(etest)X1etest+β(etest))
Representation ( Φ \Phi Φ)需要满足第一步的条件即 P e t r a i n ( Φ ( X e t r a i n ) ) = P e t e s t ( Φ ( X e t e s t ) ) P^{e_{train}}(\Phi(X^{e_{{train}}}))=P^{e_{test}}(\Phi(X^{e_{test}})) Petrain(Φ(Xetrain))=Petest(Φ(Xetest))
为了维持 Φ ( X e t r a i n ) 与 Φ ( X e t e s t ) \Phi(X^{e_{train}})与\Phi(X^{e_{test}}) Φ(Xetrain)与Φ(Xetest)在特征空间的不变性(invariance), Φ \Phi Φ会丢弃掉因为 β ( e t r a i n ) , β ( e t e s t ) \beta(e_{train}),\beta(e_{test}) β(etrain),β(etest)而变动的 X 2 X_2 X2,因此就捕捉到了环境的不变性特征 X 1 ∼ Gaussian ( 0 , 1 ) X_1\sim \text{Gaussian}(0,1) X1∼Gaussian(0,1)。
但对于Example2的问题模式 ( X 1 , X 2 ) → Y (X_1,X_2)\rightarrow Y (X1,X2)→Y,衡量的是相关性,即 X 1 , X 2 X_1,X_2 X1,X2谁的cause效应是dominant的,这时Domain Adaptation就不适用了,因为它捕捉的是哪些特征是不变的,而不是衡量哪些特征是dominant的。
更悲剧的是,只要稍微改动一下Example1,Domain Adaptation就fail了,就不能找到问题模式 X 1 → Y → X 2 X_1\rightarrow Y\rightarrow X_2 X1→Y→X2的cause&effect了,如下:
X 1 ← Gaussian ( μ ( e ) , 1 ) Y ← X 1 + Gaussian ( 0 , 1 ) X 2 ← β ( e ) Y + Gaussian ( 0 , 1 ) \begin{aligned} X_{1} & \leftarrow \operatorname{Gaussian}(\mu(e), 1) \\ Y & \leftarrow X_{1}+\operatorname{Gaussian}(0,1) \\ X_{2} & \leftarrow \beta(e) Y+\operatorname{Gaussian}(0,1) \end{aligned} X1YX2←Gaussian(μ(e),1)←X1+Gaussian(0,1)←β(e)Y+Gaussian(0,1)
给 X 1 X_1 X1也加个因环境而变动的量 μ ( e ) \mu(e) μ(e),Domain Adaptation fails.
1.4 方法总结&全文中心点
In particular, we will see that in many cases we can obtain out of distribution generalization by looking for features whose correlation is invariant with the label across just a few training environments
OOD最理想的优化目标:
R
O
O
D
(
f
)
=
max
e
∈
E
a
l
l
R
e
(
f
)
\mathcal R^{OOD}(f) = \max_{e\in \mathcal E_{all}}R^e(f)
ROOD(f)=e∈EallmaxRe(f)
- Robust Optimization : 本质上是对不同环境加权平均,对来自更难环境的样本给予更多注意力,因此能衡量相关性,解决Example2
- Distance Measure Matching:本质上是对训练环境与测试环境几何结构的利用,提高某种度量下邻近测试空间的鲁棒性,解决Example3
- Domain Adaptation: 本质上是从不同环境中提取不变性表示,从而filter out effect,保留下cause,能解决简单版的Example1
那如何解决Example4?
X
1
←
Gaussian
(
μ
(
e
)
,
1
)
Y
←
X
1
+
Gaussian
(
0
,
1
)
X
2
←
β
(
e
)
Y
+
Gaussian
(
0
,
1
)
\begin{aligned} X_{1} & \leftarrow \operatorname{Gaussian}(\mu(e), 1) \\ Y & \leftarrow X_{1}+\operatorname{Gaussian}(0,1) \\ X_{2} & \leftarrow \beta(e) Y+\operatorname{Gaussian}(0,1) \end{aligned}
X1YX2←Gaussian(μ(e),1)←X1+Gaussian(0,1)←β(e)Y+Gaussian(0,1)
本博士论文最关键的点来了:只需要 P e ( Y e ∣ H e ^ ) P^e(Y^e|\hat{H^e}) Pe(Ye∣He^)在不同训练环境下保持不变
二、OOD的主要理论
简要背景介绍:
- Casuality : 预测对象 Y Y Y,对Y所在的图结构 ( X , Y ) (X,Y) (X,Y)不断干预,找到Y所有cause组成的graph即因果图 Parent ( Y ) \text{Parent}(Y) Parent(Y) ( Invariance under intervention )
- Statistical Invariance : 在寻找Y的cause时,需要衡量分布差异的时候就得用到一些不变的统计特征进行比较。(Some statistical patterns are preserved across a series of distributions)
- Out-of-distribution generalization:数据量越多,多样性越丰富,就越能找到对label robust的invariance,然后希望能挖掘 E t r a i n \mathcal E_{train} Etrain与 E a l l \mathcal E_{all} Eall的问题结构(cause&effect, correlation, geometry),使得从 E t r a i n \mathcal E_{train} Etrain中提取的关于label invariance能更少耗损地通过”问题结构““定向泛化”到 E a l l \mathcal E_{all} Eall,或者说信息流动的更有效。
所以Casuality/Invariance/OOD之间的相互联系,都是围绕着这个问题“which statistical patterns are preserved across environments”
重要!:
第一个关键问题:如何从
E
t
r
a
i
n
\mathcal E_{train}
Etrain从抽出invariance?(IRM–>IRMv1–>Representation function)
第二个关键问题:什么样的假设与理论可以保证
E
t
r
a
i
n
\mathcal E_{train}
Etrain的invariance可以generalize到
E
a
l
l
\mathcal E_{all}
Eall?
论文的核心理论一:(针对第一个关键问题)
如果representation
Φ
\Phi
Φ满足:
-
条件一:Approximate invariant prediction:
D ( P e ( Y e ∣ Φ ( X e ) = h ^ ) , P e ′ ( Y e ′ ∣ Φ ( X e ′ ) = h ^ ) ) ≤ δ I N V D\left(\mathbb{P}^{e}\left(Y^{e} \mid \Phi\left(X^{e}\right)=\hat{h}\right), \mathbb{P}^{e^{\prime}}\left(Y^{e^{\prime}} \mid \Phi\left(X^{e^{\prime}}\right)=\hat{h}\right)\right) \leq \delta_{I N V} D(Pe(Ye∣Φ(Xe)=h^),Pe′(Ye′∣Φ(Xe′)=h^))≤δINV
其中 D D D为Total variation distance(TVD)。条件一意思是,这个 Φ \Phi Φ可以让不同环境的样本 X e , X e ′ X^e,X^{e'} Xe,Xe′所投射的特征空间 Φ ( X e ) , Φ ( X e ′ ) \Phi(X^e),\Phi(X^{e'}) Φ(Xe),Φ(Xe′)对label的分布,在距离度量TVD下,是approximate invariant的,invariance被限制在 δ I N V \delta_{I N V} δINV的范围内。 -
条件二:Low training error:
E Y ∼ P t r a i n ( Y ∣ Φ ( X ) = h ^ ) [ ℓ ( w ( h ^ ) , Y ) ] ≤ δ E R R ∀ h ^ ∈ H ^ \mathbb{E}_{Y \sim \mathbb{P}^{t r a i n}(Y \mid \Phi(X)=\hat{h})}[\ell(w(\hat{h}), Y)] \leq \delta_{E R R}\quad\forall \hat h \in \hat{\mathcal H} EY∼Ptrain(Y∣Φ(X)=h^)[ℓ(w(h^),Y)]≤δERR∀h^∈H^
条件二意思是,在某个fixed分类器 w w w下, Φ \Phi Φ使 E t r a i n \mathcal E_{train} Etrain的经验风险小于某个范围(能比较好地分类训练集的样本)
于是就有generalization的保证:
E ( X , Y ) ∼ P test [ ℓ ( w ( Φ ( X ) ) , Y ) ] ≤ δ E R R + C δ I N V \mathbb{E}_{(X, Y) \sim \mathbb{P}^{\text {test }}}[\ell(w(\Phi(X)), Y)] \leq \delta_{E R R}+C \delta_{I N V} E(X,Y)∼Ptest [ℓ(w(Φ(X)),Y)]≤δERR+CδINV
论文的核心理论二:(针对第二个关键问题)
- 首先得假定: E a l l \mathcal E_{all} Eall存在这样的invariance
- 其次, E t r a i n \mathcal E_{train} Etrain得有sufficient coverage,这样提取得到的invariance才能cover到 E a l l \mathcal E_{all} Eall上的invariance
可能有人问,啊?这是啥理论?这只是一种最高度的理论抽象,具体理论细节看原文。
通俗解释一下这两个前提:
如果
E
a
l
l
\mathcal E_{all}
Eall本身就没有invariance,那这个问题就无解了。只能进行实例分析,没法general;
假设
E
a
l
l
\mathcal E_{all}
Eall有invariance的话,那关键问题就是
E
t
r
a
i
n
\mathcal E_{train}
Etrain中提取到的invariance究竟能覆盖到多少?
比如数据生成过程本质由两个不变量
α
(
e
)
,
β
(
e
)
\alpha(e),\beta(e)
α(e),β(e)控制,但训练集中收集到数据只能提取到一个不变量
β
(
e
)
\beta(e)
β(e)。因此这就要求数据集有diverse environments,至少得都包含到这两个不变量吧,不然肯定没法更好地generalize。(强调diversity,“勉强理解”成invariance的维度)
其次,是样本复杂度的问题,为了提取到不变量
β
(
e
)
\beta(e)
β(e),需要的数据样本量有多少?假设满足diverse environments为
e
1
,
e
2
,
.
.
.
,
e
n
e_1,e_2,...,e_n
e1,e2,...,en,那每一个环境需要多少的样本才能较为准确地cover到真实
β
(
e
)
\beta(e)
β(e)的分布呢?(强调每个环境的样本复杂度)
但现实是,只有一个unknown environment set产生的dataset。
- 一不知道具体生成数据的环境 e 1 , e 2 . . . , e n e_1,e_2...,e_n e1,e2...,en具体是啥 ( β ( e ) \beta(e) β(e)的取值范围覆盖到了嘛?)
- 二不知道invariance具体是啥(维度自然靠猜)
- 三似乎也很难衡量怎样的数据分布才能满足diversity,每个diversity维度需要多少的样本复杂度才能准确捕捉到invariance的维度
- 四怎么量化?量化后能计算吗?
所以这些被浓缩成只要 E t r a i n \mathcal E_{train} Etrain有sufficient coverage,就能恢复不错的泛化性能。因此,需要做不同的假设。您说的假设具体是指什么?
- 对训练环境与测试环境所在空间的结构假设(使得invariance通过这个结构更容易从 E t r a i n → E a l l \mathcal E_{train}\rightarrow \mathcal E_{all} Etrain→Eall进行泛化)联合假设
- 假设训练环境invariance的结构,使得我们更能容易捕捉invariance (这假设的结构捕捉的invariance是否有利于泛化,不清楚)训练假设
- 假设测试环境invariance的结构,使得泛化过去的空间是“定向的”(限制泛化的invariance空间)测试假设
下面就是提出的具体做法:
- 针对第一个问题,给出了Invariant Risk Minimization(IRM)的算法,来提取invariance,并给出了能捕捉到linear invariance的理论保证。并且评估了一下该方法捕捉Non-linear invariance的实验效果。(linear 与 non-linear就是invariance的结构呀)
- 针对第二个问题, 具体分析了什么样的假设,需要多少"diverse environments",能让invariance从 E t r a i n → E a l l \mathcal E_{train}\rightarrow \mathcal E_{all} Etrain→Eall,给出了一堆假设下的定理(重在理解,推导看原文)。
2.1 如何学习一个好的Representation?
2.1.1 主要论点
直观的想法:这个representation在
E
t
r
a
i
n
\mathcal E_{train}
Etrain中不仅有invariance而且预测好;
公式化该想法的目标IRM(Invariant Risk Minimization):
min Φ : X → H ^ w : H ^ → Y ∑ e ∈ E train R e ( w ∘ Φ ) subject to w ∈ arg min w ˉ : H ^ → Y ^ R e ( w ˉ ∘ Φ ) ∀ e ∈ E train \begin{aligned} &\min _{\Phi: \mathcal{X} \rightarrow \hat{\mathcal{H}} \atop w: \mathcal{\hat{H}} \rightarrow \mathcal{Y}} \sum_{e \in \mathcal{E}_{\text {train }}} R^{e}(w \circ \Phi)\\ &\text { subject to } \quad w \in \underset{\bar{w}: \hat{\mathcal{H}} \rightarrow \hat{\mathcal{Y}}}{\arg \min } R^{e}(\bar{w} \circ \Phi)\quad\forall e \in \mathcal{E}_{\text {train }} \end{aligned} w:H^→YΦ:X→H^mine∈Etrain ∑Re(w∘Φ) subject to w∈wˉ:H^→Y^argminRe(wˉ∘Φ)∀e∈Etrain
解释:对于每一个具体的任务环境 e e e,学习得到的representation使得经验风险损失的总和最小,其中分类器 w w w是在当前representation( Φ \Phi Φ)中使得具体任务经验风险 R e ( w ˉ ∘ Φ ) R^e(\bar w \circ \Phi) Re(wˉ∘Φ)最小的那个。每评估一个representation,就需要在 ∣ E t r a i n ∣ = N |\mathcal E_{train}|=N ∣Etrain∣=N个环境上解一个min问题得到分类器 w 1 , w 2 , . . . , w N w_1,w_2,...,w_N w1,w2,...,wN,然后在representation space中找到使总体经验风险损失之和 ∑ e ∈ E train R e ( w ∘ Φ ) \sum_{e \in \mathcal{E}_{\text {train }}} R^{e}(w \circ \Phi) ∑e∈Etrain Re(w∘Φ)最小的那个representation。(每次评估都需要解多个min分类器,满足约束,计算复杂度高,需要优化)
所以很自然的优化想法:假设线性结构的分类器(因为线性有解析式好求解),对 w w w分类效果不好的环境 e e e提供补偿以正确评估representation的总体效果。
公式化该优化的目标IRMv1:
min
Φ
:
X
→
Y
^
∑
e
∈
E
train
R
e
(
Φ
)
+
λ
⋅
∥
∇
w
∣
w
=
1.0
R
e
(
w
⋅
Φ
)
∥
2
\min _{\Phi: \mathcal{X} \rightarrow \hat{\mathcal{Y}}} \sum_{e \in \mathcal{E}_{\text {train }}} R^{e}(\Phi)+\lambda \cdot\left\|\nabla_{w \mid w=1.0} R^{e}(w \cdot \Phi)\right\|^{2}
Φ:X→Y^mine∈Etrain ∑Re(Φ)+λ⋅∥∥∇w∣w=1.0Re(w⋅Φ)∥∥2
解释:目的是得到一个representation function( Φ \Phi Φ),在固定住分类器 w = 1.0 w=1.0 w=1.0的情况下,根据对环境的分类效果进行补偿,用 λ \lambda λ进行控制.(言简意赅:软化了IRM对分类器 w w w的硬约束,以补偿的方式进行软约束限制)
但这个软约束后的优化目标只适合去捕捉linear invariance。因此有一些没解决的理论问题:
- What are the benefits of enforcing non-linear invariances w belonging to larger hypothesis classes W?
- How can we construct invariance penalties D for non-linear invariances?
2.2 什么样的假设可以保证representation的泛化?
主要罗列个人认为主要的定理,并进行理解,具体证明见原文。
2.2.1 三个概念之间的等价性(联合假设)
定理A.1 : Causality, invariance, and out of distribution generalization are equivalent when data satisfies a causal graph
因果性Causality是基于statistical invariance,来分清cause和effect,人为构建或数据学习得到一个Causal Graph,同时Causal Graph充当了
E
t
r
a
i
n
\mathcal E_{train}
Etrain和
E
a
l
l
\mathcal E_{all}
Eall之间shared invariance的结构使其能解决Out-of-distribution generalization的问题。
如果数据没有Causal Graph的话,我认为它们是一种包含的关系Causality < Invariance < Out-of-distribution generalization.
- Causality的关注点更多的是训练数据中的 E t r a i n \mathcal E_{train} Etrain;
- Invariance关注的是 E t r a i n \mathcal E_{train} Etrain的invariance能cover到多少 E a l l \mathcal E_{all} Eall的invariance;
- Out-of-distribution generalization可以说是无解的,如果 E a l l \mathcal E_{all} Eall的invariance就是没有 E t r a i n \mathcal E_{train} Etrain中的invariance的话,就没法解这个问题了
2.2.2 对训练环境 E t r a i n \mathcal E_{train} Etrain的结构假设
重点来说 c e ( Φ ) c^e(\Phi) ce(Φ)的第一项是最优的线性分类器,第二项是某个fixed的分类器,整个表达在当前fixed分类器 w w w来说,每个representation function离最优线性分类器 w ∗ w^* w∗的差距。
理解定理的含义:
现在有
∣
E
t
r
a
i
n
∣
|\mathcal E_{train}|
∣Etrain∣个环境,每个环境
e
e
e产生维度为
d
d
d的样本
X
e
X^e
Xe,有一些representation function
Φ
\Phi
Φ将样本映射到维度为
p
p
p的特征空间,且它们的雅可比矩阵满秩
∇
x
Φ
(
x
)
\nabla_x\Phi(x)
∇xΦ(x)意味着这个映射
Φ
\Phi
Φ不会损失invariance的信息,这些可行的
Φ
\Phi
Φ可能有挺多的,隶属于一个
q
q
q维的泛函空间
F
\mathcal F
F(逻辑链条:
e
→
X
e
→
Φ
∈
F
→
h
∈
H
e\rightarrow X^e\rightarrow \Phi\in \mathcal F\rightarrow h\in \mathcal H
e→Xe→Φ∈F→h∈H,即环境产生样本,经过表征映射,到达特征空间)
而
c
e
(
Φ
)
c^e(\Phi)
ce(Φ)则是对于一个特定环境
e
e
e而言,representation function family(泛函)到
p
p
p维特征空间的映射,用来评估representation function
(
Φ
)
(\Phi)
(Φ)的好坏。(一个环境,这些
Φ
\Phi
Φ的整体评估,用一个特征向量表示)
F
(
Φ
)
F(\Phi)
F(Φ)是在
∣
E
t
r
a
i
n
∣
|\mathcal E_{train}|
∣Etrain∣个环境下,对representation function family
(
Φ
)
∈
F
(\Phi)\in \mathcal F
(Φ)∈F到特征空间的评估, 它们的雅可比矩阵
∇
Φ
F
(
Φ
)
\nabla_\Phi F(\Phi)
∇ΦF(Φ)满秩表明,这个对representation family到特征空间的评估映射不损失invariance的信息。
最后就定义,
E
t
r
a
i
n
\mathcal E_{train}
Etrain的训练环境结构为nonlinear general position,它对样本到特征空间的映射转换不损失invariance信息,它对representation function family在特征空间的整体评估映射
F
(
Φ
)
F(\Phi)
F(Φ)也不损失invariance信息。
2.2.3 E t r a i n \mathcal E_{train} Etrain泛化到 E a l l \mathcal E_{all} Eall的前提假设
![2
如果存在满足invariance即 E [ Y e ∣ Φ ∗ ( X e ) = h ^ ] = w ∗ T h ^ , ∀ e ∈ E a l l \mathbb E[Y^e|\Phi^*(X^e)=\hat h]=w_*^T\hat h,\forall e\in \mathcal E_{all} E[Ye∣Φ∗(Xe)=h^]=w∗Th^,∀e∈Eall的representation function Φ ∗ \Phi^* Φ∗和分类器 w ∗ T w_*^T w∗T(解的存在性假设),当训练环境是nonlinear general position的结构(训练结构假设)、分类器 w w w是linear的结构(线性分类器假设)、训练环境个数满足 ∣ E t r a i n > q p ∣ |\mathcal E_{train}>\frac{q}{p}| ∣Etrain>pq∣(训练环境个数的sufficient coverage),Representation function Φ \Phi Φ在 E t r a i n \mathcal E_{train} Etrain上对某个分类器 w w w不变时(说明提取到特征是合格的),那么就找到了在 E a l l \mathcal E_{all} Eall上也能维持invariance的表征提取器 Φ ∗ \Phi^* Φ∗,从而可以找到该表征 Φ ∗ \Phi^* Φ∗下的最优线性分类器 w ∗ w_* w∗,它们在 E a l l \mathcal E_{all} Eall上组成invariant predictor w ∗ ∘ Φ ∗ w_*\circ\Phi^* w∗∘Φ∗,泛化性能得以从理论上解决。
根据重点来提取出逻辑链:
- 假设解存在, E [ Y e ∣ Φ ∗ ( X e ) = h ^ ] = w ∗ T h ^ , ∀ e ∈ E a l l \mathbb E[Y^e|\Phi^*(X^e)=\hat h]=w_*^T\hat h,\forall e\in \mathcal E_{all} E[Ye∣Φ∗(Xe)=h^]=w∗Th^,∀e∈Eall(不存在就没法做了)
- 对训练环境做结构假设,更容易提取到invariance
- 对分类器结构做线性假设简化,更容易进行理论分析(非线性的话,理论一般就能给出确定的度量,最多给个bound,但怎么给这个bound好像没分析出来)
- 基于上述两个结构假设,分析出了sufficient coverage的具体量化为 q p \frac{q}{p} pq个diverse environments的条件(条件一)
- 在训练环境上,在某个fixed分类器下,找到对label不变的表示函数 Φ t r a i n \Phi_{train} Φtrain(条件二)
- 那么这个 Φ t r a i n \Phi_{train} Φtrain就是 E t r a i n \mathcal E_{train} Etrain与 E t e s t \mathcal E_{test} Etest共同share的invariant特征提取器,在这基础上找个最优线性分类器即可。
三、总结
其实这篇博士论文,最最最有用的并不是什么practical的algorithms,而是它给出的theory analysis是非常有启发性的。基本能对现在海量的paper做一个总结与归类,并抽象出了如何用Invariance来解决Out-of-distribution的启发。
尽管是初步的、线性的理论分析,但个人认为,非常经典、透彻、有启发性。对外推这个问题理解更为深入。下一篇文章,主要讲这个Out-of-distribution在具体问题上的泛化,以及具体问题具体方法是如何体现这个Invariance的,真的太妙了~