"大数据如何帮助小数据?" 主题报告速记与评述(二)

笔者按:机器学习正在走向基于“语义”的可解释模型的新时代,zero-shot learning是其中一个很有价值的方向。参见“A DARPA Perspective on AI”
其它评述链接在此。

概要

报告分三部分,并主要围绕第二部分展开讨论:

  1. 小数据(small data)从何而来?
  2. 大数据帮助小数据的三种范式:多任务学习(multi-task learning)、领域适应(domain adaptation)和零样本学习(zero-shot learning)。这三种范式的内涵十分丰富,每个展开都可以再讲一个系列课程,因此,报告只做了high-level的讨论,帮助听众抓住三种范式的核心思想。
  3. 小结与展望:归纳小数据学习问题的现实意义和内涵,提出了挑战&机遇

1. 小数据(small data)从何而来?

小数据无处不在,报告只点了几个例子,听众可以自己根据领域需求思考得出无数案例:
  1. 无人驾驶:“常常会遇到偶发的大雾、大雪等”,样本可能不足,但是却需要学习和应对这类突发情况。
  2. 金融数据:数据分布有长尾效应,但是却拿不到足够样本。
  3. 教育规划:存在短期、中期、长期的个性化需求和严苛的样本获取条件,对于个人说往往没有"二次"实验(后悔了重来)机会,依此可以类推到其它社会实验。
  4. .......

那么,现有的机器学习(ML)算法能否满足需求呢?并不能,因为:
 1. “个性化”的模型需要“个性化”的数据
 2. 数据总根本上说是永远不够的(因为需要适应的新情况不断出现),因此现有的数据都是“小数据”
 3. 现有ML算法(以深度学习为代表),需要大量的数据,往往无法用于构建和训练“个性化”模型

一句话总结:个性化和不断出现的新需求,会使得数据一直“Smaller than needed”。因此,我们需要新的范式,使得我们手头有的大数据能够帮助小数据,尽量满足我们对学习器提出的需求。

2. 大数据帮助小数据的三种范式

这是报告的重头戏,但是作为1小时的keynote,Dr.Sha也清楚不可能深入太多,但是在讲三种范式内涵时非常到位,适合初学者把握基本思想,也可以帮助专业人士反思,具体内容可参考本文结尾的参考文献列表。

2.1 多任务学习(multi-task learning)

我不喜欢上来码公式,用一句话讲思路:有一系列相关的学习任务,各自有各自的训练“小数据”,传统方法是各自训练出各自的权值。MTL的策略是:将这些“小数据”共享,组装成“大数据”

MTL-1

思想很简单,可以提高泛化能力、降低对每个任务的数据量要求、而且不管是深度学习还是别的学习器都可以用。听上去是不是很完美?但操作起来要注意很多问题,首当其冲的是:如何分析和量化多个任务的相关性

2.1.1.基本原则

如果任务间没有什么关联,MTL会表现得很糟糕,这个逻辑上也很容易理解,把一堆图像分类数据和一堆金融数据强制放一起作MTL是不会有好结果的。

2.1.2 量化分析

多个任务的选择是需要先验知识的,而先验知识建模是在最小化多任务训练cost问题中加入正则化(Regularization)项。于是,这个问题更深度学习就很有共通性了,如何设定正则化项以及它的权值?

2.1.3 正则设计自动化

报告回顾了一系列论文,采用的是人工设计,就是主要依赖人的先验知识。但是,Dr.Fei组也做了一系列有意思的工作,即自动寻找相关性高的任务,并阻止相关性低的任务间共享数据,自动将很多任务分解为任务分组(Task Groups),详见[ICML 2011. CVPR 2014]。

MTL-2

2.2 领域适应(domain adaptation)

2.2.1 存在问题

报告从“性别识别”的案例说起,回顾了监督学习的一个基本问题:训练数据、测试数据和未来实际面对的数据在特征空间中的分布会保证一样么?当然不一定。理由如下:
 1. 学习环境是非静态的。
 2. 训练、测试和实际数据经常不服从同一分布
 3. 不同分布的泛化性能经常表现不佳,学习器性能随着领域变化迅速下降。

那么,怎么办?

2.2.2 解决方案

除了领域适应的方法,另一种直接的解决办法是获取并使用尽量大的数据集,但是会有什么问题?
 1. 多种外因影响数据分布:以CV为例,视觉传感器的参数、视角和光照产生极大影响。这个问题我深有体会,所带的博士生在设计和测试基于Deep-CNN的机器人视觉SLAM时也遇到过,发现AlexNet的浅层特征对光照鲁棒,而深层特征对视角鲁棒,但是却没有哪层的特征在多样变化的实际环境中都好用。
 2. 采集“所有可能情况的”数据耗费太高:可以面向各种外因组合条件,分别采集足够的数据。这点耗费会很高好理解。但是如果可以允许机器人(不是ML算法本身)自主地采集、标注并使用数据(如半监督学习),可能部分避免上述问题。毕竟,有更多样的数据总是好事,Dr.Sha也不是说不依赖数据了。
 3. 标注数据耗费太高:我个人认为,虽然可以依赖crowd-sourcing(也参见周登勇研究员的主题报告)降低平均成本,但是从本质上说,新的外因组合总会不断出现,一旦出现的速度(或应对成本)超过了标注的速度(或标注成本),这种粗暴的解决方法不具有可扩展性。

说了这么多,领域适应(domain adaptation)该怎么做呢?寻找到领域无关的特征表示[CVPR 2012]:
 1. 在这个特征空间里,源领域和目标领域的边际(Marginals)相同或十分接近;
 2. 存在一个分类器,在源领域和目标领域都表现出良好性能。

DI-1

那么将原有特征的线性核函数映射(linear kernel mapping)参数化,设计Geodesic flow kernel (GFK)
 1. 将领域建模为多个子空间。
 2. 将计算差异转换为计算多个子空间之间的差别。

评述:本质上说,一般总能构建合适的流形空间,将源领域和目标领域之间的差异建模为该空间中的变换,而CVPR 2012这篇的核心就是“在格拉斯曼流形子空间(Grassmann Manifold of Subspace)里,找到了对应的GFK描述领域无关的特征”。具体参见[CVPR 2012]。

DI-2

2.3 零样本学习(zero-shot learning)

2.3.1 存在问题

  1. 实际环境中可能出现的类别不都是预先设定好的,也不一定能为每个类别提供足够大量的标签数据,即使大规模的ImageNet也是如此。
  2. 将标签空间(Labeling Space)作为先验,它可能无限制扩张下去,实际能获得的数据样本,在不断扩张的标签空间中可能变得非常稀疏。
  3. 为了填补稀疏性所需要付出的代价太大,甚至是不可行的。

2.3.2 解决方案

现实世界中的标签总是可以分为两类:见过的(Seen)没见过的(Unseen),于是新的转移(Transfer)问题来了:难道基于见过的类别能区分出没见过的类别吗?

ZSL-1

由上图看,答案是可以的。但是我们需要重新定义“标签”,核心思想来了:
 1. 标签不再是离散的数字编号,而是要关联语义(Semantic Meaning)
 2. 标签之间是可以建立联系的,于是,不同类别之间可以共享“语义空间”
 3. 语义嵌入(Semantic Embedding)可以解决“转移问题”。

具体的语义嵌入包括了CV中的不同视觉属性(Attribute),或者NLP中的不同词向量(Word Vector),在Dr.Sha的最近工作[CVPR 2016, ECCV 2016, ICCV 2017]中,都是做这个寄予厚望的子领域Synthesized classifiers for zero-shot learning,包括两个方面:
 1. 字典学习 (Dictionary learning):引入“虚拟类”(Phantom Classes)作为基底(bases),学习每个基底的语义嵌入(Semantic Embedding),同时构建出基底的模型(Models)。
 2. 基于图结构编码相关性 (Graphs structures encode “relatedness”):定义语义嵌入空间(Semantic Embedding Space)中不同类别之间的关系,并定义模型空间中的不同类别之间的关系。

ZSL-2

以上两方面的描述有些抽象了,简而言之:就是将为标签赋予“语义”,建立以语义为基底的空间,从而建立类别之间的联系,从而实现对未知新类别的语义解读

3. 小结与展望

首先我先简要总结(未必恰当)三个范式的关系:
多任务学习选择一系列相关的任务并共享数据;领域适应寻找合适两个有显著差别领域之间的变换;零样本学习是赋予标签语义,建立新的语义空间和标签间的联系,从而实现多个领域之间的迁移学习能力。

最后,报告归纳了小数据学习的现实意义和内涵,提出了挑战&机遇。
 1. 挑战:我们现在的策略还是归于用大数据修正小数据的偏差
 2. 机遇:为了提高决策能力,需要更多个性化、可执行的知识。这也将成为破解机制发现和因果关系发现的关键。

最后提一句,有意思的是,Prof. Sha还给每个范式的核心思想分别找了个俗语,可以看作将“术”的层次提高到“道”的境界:
 1. 多任务学习(multi-task learning):众人拾柴火焰高
 2. 领域适应(domain adaptation):以不变应万变
 3. 零样本学习(zero-shot learning):无中生有

很形象,也能吸引听众注意力,这是演讲的技巧。

主要参考文献

还是强调下,报告只讲思想和主要结论,想深入学习、设计和实现,还需要参考相关文献:
[ICML 2011] Learning with whom to share
[CVPR 2012] Geodesic flow kernel for unsupervised domain adaptation
[CVPR 2014] Resisting the temptation to share
[CVPR 2016] Synthesized Classifiers for Zero-Shot Learning
[ECCV 2016] An Empirical Study and Analysis of Generalized Zero-Shot Learning for Object Recognition in the Wild
[ICCV 2017] LabelBank: Revisiting Global Perspectives for Semantic Segmentation

P.S. 还没用markdown加入本地的图片,解释更新,纯文字很多事儿不好说清楚哈。
详见Slides: How big data can help small data?

你可能感兴趣的:("大数据如何帮助小数据?" 主题报告速记与评述(二))