机器学习中的外推问题(OOD上,硬核慎点)
Out-of-distribution-上 概述 一、 量化外推泛化能力 0.专业术语&核心理解(逻辑链) 1.1 值得记住的3个Examples 1.1.1 Spurious Correlation 1.1.2 Background Bias 1.1

Out-of-distribution-上
概述
一、 量化外推泛化能力
0.专业术语&核心理解(逻辑链)
1.1 值得记住的3个Examples
1.1.1 Spurious Correlation
1.1.2 Background Bias
1.1.3 Geometric Space
1.2 Examples总结
1.3 常规解决方法
1.3.1 Robust Optimization
1.3.2 Distance Measure Robustness
1.3.4 Domain Adaptation
1.4 方法总结&全文中心点
二、OOD的主要理论
2.1 如何学习一个好的Representation?
2.1.1 主要论点
2.2 什么样的假设可以保证representation的泛化?
2.2.1 三个概念之间的等价性(联合假设)
2.2.2 对训练环境 E t r a i n \mathcal E_{train} Etrain的结构假设
2.2.3 E t r a i n \mathcal E_{train} Etrain泛化到 E a l l \mathcal E_{all} Eall的前提假设
三、总结
概述
定位:对2021年纽约大学Martin Arjovsky的PhD论文进行提炼,是一篇阅读笔记;
参考文献:Out of Distribution Generalization in Machine Learning
术语: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+