
Self-supervised Learning Framework

不用标注数据就能学习的任务,比如Bert之类的。但最早的方法是Auto-encoder。
Outline

Auto-encoder

encoder输出的向量,被decoder还原的图片,让输出的图片与输入的图片越接近越好。
将原始的高维向量变成低维向量,将该新的特征用于下游任务。

相关的类似方法:
- PCA: youtu.be/iwh5o_M4BNU
- t-SNE: youtu.be/GBUEjkpoxXc

图片的变化是有限的:
- 3x3的图,可能只需要用两个维度表示就行


auto-encoder 不是一个新的想法, 2006年提出。


Bert也是一个加噪声的auto-encoder
Feature Disentanglement

Disentanglement 把纠缠的特征解开。


embedding的哪些维度代表了哪些信息。比如前50维表示内容信息,后50维表示说话人的信息。

应用变身器。

在过去需要读相同的句子才能进行转换,现在只需要给声音就行,不需要同样的内容就可以进行声音转换。




不同语种都可以,只是分拆内容和说话人特征然后再混合decoder输出
Discrete Represention

binary的好处,每一个维度表示这个地方特征是否存在,便于解释embedding。

如果是one-hot的话,可以做到无监督分类。

codebook一排向量,然后用中间算出的embedding与这一排向量算相似度,谁的相似度最大就把那个向量拿出来,然后丢到decoder中。

文字中的embedding用字符串表示,是不是就是摘要那?模型是seq2seq。
这样生成的中间内容不懂,是暗号类的那种文章,此时借鉴于GAN的思想,加一个鉴别器:

用RL硬训练,有点像cycleGAN


更多应用

生成

压缩

异常检测



cancer细胞检测,就一类,可以使用auto-encoder算法。

使用真实人脸训练encoder-decoder,得到正常的输出
然后用假脸送进去预测,得到的重构的图比较差,说明这种人脸是模型训练没有看过的。

更多异常检测的介绍资料:



















