【李宏毅2020 ML/DL】补充:Meta Learning - Metric-based Approach & Train+Test as RNN

我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的、自己不知道的东西。

本次笔记补充视频 BV1JE411g7XF 的缺失部分。在油管李老师主页即可找到。本节内容 35 分钟左右。

本节内容综述

  1. 由 Face Verification 是一个 few-shot 人物。因为我们只采样很少的数据,一张人脸。我们希望,一个网络能够吃两个图片,判断是不是一个类别。
  2. 直观地解释 Siamese Network 。
  3. 如果不是一个单纯回答 YES/NO 的问题怎么做呢?见 N-way Few / One-shot Learning 。
  4. 之后是最后一部分,Train+Test as RNN。

小细节

Face Verification

【李宏毅2020 ML/DL】补充:Meta Learning - Metric-based Approach & Train+Test as RNN
如上,我们希望,一个网络能够吃两个图片,判断是不是一个类别。

训练的是其分辨的能力,而非单纯地识别数据。

Siamese Network

【李宏毅2020 ML/DL】补充:Meta Learning - Metric-based Approach & Train+Test as RNN
这个网络的架构可以如上。

Siamese 是“孪生”的意思。

Siamese Network: Intuitive Explanation

【李宏毅2020 ML/DL】补充:Meta Learning - Metric-based Approach & Train+Test as RNN
如上,孪生网络可以看作二分类问题。
【李宏毅2020 ML/DL】补充:Meta Learning - Metric-based Approach & Train+Test as RNN
我们希望通过 CNN ,投影到特征空间中,把相同的人投影到相近的地方。

To learn more …

【李宏毅2020 ML/DL】补充:Meta Learning - Metric-based Approach & Train+Test as RNN
如上,还有其他方法,李老师不详细解释了。

N-way Few / One-shot Learning

【李宏毅2020 ML/DL】补充:Meta Learning - Metric-based Approach & Train+Test as RNN
如上,输入六个对象:五个是不同类的,网络要判断,第六个是哪一类。

Prototypical Network

【李宏毅2020 ML/DL】补充:Meta Learning - Metric-based Approach & Train+Test as RNN
如上,用被比对的数据分别与类别比较相似度。

Matching Network

【李宏毅2020 ML/DL】补充:Meta Learning - Metric-based Approach & Train+Test as RNN
与 Prototypical Network 类似,但是 Matching Network 认为类别可能有关系。因此一起处理类别的图片。

此外,Matching Network 使用了 Multiple hop 。

Relation Network

【李宏毅2020 ML/DL】补充:Meta Learning - Metric-based Approach & Train+Test as RNN
思想也与上面的方法类似,只不过,Relation Network 先抽出 embedding ,然后都与被比对数据 concat ,再输入新网络,用网络计算相似度。

Few-shot Learning for Imaginary

【李宏毅2020 ML/DL】补充:Meta Learning - Metric-based Approach & Train+Test as RNN
如上,对于人来说,看到三玖的脸,就可以想象其各种情绪的样子。
【李宏毅2020 ML/DL】补充:Meta Learning - Metric-based Approach & Train+Test as RNN
因此,我们在机器学习中,也训练一个 Generator ,用于生成数据。

Train+Test as RNN

【李宏毅2020 ML/DL】补充:Meta Learning - Metric-based Approach & Train+Test as RNN
如上,我们有种更疯狂的想法:把训练集与测试集放入神经网络,其自己分辨;并且,不用特意设计网络结构。

LSTM

【李宏毅2020 ML/DL】补充:Meta Learning - Metric-based Approach & Train+Test as RNN
如上,RNN这种结构其实可以解决这种问题。每一个类别用 one-hot 来表示。但是很难训练起来。因此提出 MANN 与 SNAIL 。

SNAIL

【李宏毅2020 ML/DL】补充:Meta Learning - Metric-based Approach & Train+Test as RNN
这个 RNN 里面有 Attention 。
【李宏毅2020 ML/DL】补充:Meta Learning - Metric-based Approach & Train+Test as RNN
其结果看起来蛮厉害的。