Press "Enter" to skip to content

CACTUs简介 – Unsupervised Learning via Meta-Learning

ICLR 2019 paper

 

Paper link: https://arxiv.org/abs/1810.02334

 

OpenReview link: https://openreview.net/forum?id=r1My6sR9tX

 

Project page: https://sites.google.com/view/unsupervised-via-meta

 

Github(Tensorflow): https://github.com/kylehkhsu/cactus-maml

 

这篇有非常多的实作细节,

 

有兴趣的请去看论文,

 

这篇看着看着,

 

广泛的实验、讨论,

 

真有科研的精神呢,

 

挺推荐大家去看看的。

 

简介

 

此文针对 Meta-learning 任务提出使用 Unsupervised (非监督式)的方式进行训练,

 

概念是透过 Clustering embedding 的方式来训练模型,

 

其想法是每个 Clustering 的中心点都是代表着某个重要的特徵(Representation),

 

那我们是不是可以透过使用这种学习出来的特徵来做学习呢?

 

这时候再回想起 Meta-learning 的想法是希望透过看过很多的任务,

 

学习出如何快速的学习一个任务 – Learning to learn。

 

因此带出了论文的想法,

 

首先透过 Clustering 分群,

 

再透过学习 Clustering 的特徵,

 

达成学习如何快速学习特徵。

 

透过这种方式我们可以不需要任何 label 的资料就进行训练,

 

算是切中的近年来 Meta-learning 的痛点 – 需要大量标注的资料才能训练。

 

提出的此 Clustering to automatically construct tasks for unsupervised meta-learning – CACTUs 的方法在多个任务达到了不错的成绩,

 

虽然离 Supervised 的方法準确度有一段距离,

 

但这篇论文还是挺有看的价值的,

 

整体想法相当清晰!!!

 

概念

 

透过 Unsupervised 的方式建立出大量的任务让 Meta-learning 的框架作学习,

 

搭配 MAML 以及 Protonet 做当作 Meta-learning 的框架进行探讨,

 

而此篇是着重在如何以 Unsupervised 的方式準备大量的 Task 供 Meta-learner 学习。

 

如果对 MAML 以及 Protonet 没有基础认知的话,

 

建议可以看 台大李宏毅教授的教学影片 Meta Learning – MAML (1/9)

 

 

上图是从 Project page: unsupervised-via-meta 主页的海报档撷取的,我觉得这张图比较好讲解。

 

首先第一步是将资料集的图片透过 Embedding function 将特徵(embedding) – Z 抽出,

 

之后会使用 K-means 的方式去将特徵进行分群,

 

这边特别的地方是我们会对同样的 embedding – Z 做多次的 K-means,

 

这样子会拿到不同的群心,

 

也算是可以拿到更多的任务集,

 

这边的想法是 K-means 的每个群心都有各自突出的特徵,

 

而我们 Meta-learning 的模型就是希望可以学习出如何快速学出这些特徵。

 

方法

 

 

这篇其实挺抽象的,有兴趣的去看程式码。

 

Line2 先训练 Embedding function 再将资料集 X 进行 embedding 的抽取 – z

 

Line3: 跑 P 次 k-means,这边跑 P 次可以看作是大量的抽取任务当作 Regularization 防止 Overfitting。

 

Note: 在 Omniglot 的实验中, k = 500, P = 100。

 

Line5、6: 从众多 P 挑一个,在从那一个挑 N 个类别。

 

Note: N 通常会和 Evaluation 的任务一致,举例来说 20-way, 5 shot。 N 会挑 20。

 

Line7: 抽取 R 个 z 当作每个任务的样本, R = Km-tr(Support 样本) + Q(Query 样本)。

 

这是 Meta-learning 常见的设定。

 

 

上图是使用 DeepCluster-embedding 的展示,

 

此处的 Embedding function 论文採取了不同的方法进行探讨,

 

这边有兴趣的去看论文。

 

讨论

 

我抽几点我觉得有趣的探讨,

 

 

    1. 作者认为 Unsupervised 以及 Supervised 的準确度落差会一直存在,

 

 

因为最终我们所评测的任务都是一些高阶的任务像是分类、辨识等等的,

 

并非我们使用 Unsupervised 所分出来的特徵,

 

可能这特徵相较之下还是过于简单。

 

 

    1. 在 CelebA 资料集中的实验结果中,

 

 

可以看到即便是在类别不平均的资料集,

 

该方法还是有不错的成绩。

 

之所以这样说是因为在以往的 Meta-learning 实验中的主流的资料集为 MNIST、Omniglot、miniImageNet,

 

上述的这些都是类别数平衡的资料集。

 

实验:

 

因为太过于广泛还有一堆细节,

 

我就不提了,

 

这篇如果对 Meta-learning 有兴趣的人,

 

可以自己去深入研究。

 

Oracle 指的是使用 Supervised-learning 的结果,

 

可以发现其实 Supervised-learning 的结果好。

 

 

参考资料:

 

Unsupervised Learning via Meta-Learning

 

Project page: unsupervised-via-meta

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注