前言
Auto-encoder(一)
一、auto-encoder
Auto-encoder可以算作self-supervised learning的一种方法。
Self-supervised learning用大量没有标注的资料。用没有标注的资料训练一个模型,发明一些不需要标注资料的任务,如填空、预测下一个token等,给模型进行学习。BERT只会做填空题,GPT只能补完一句话,但是可以把他们用在下游任务中。
以影像为例子,在auto-encoder里有两个network,一个叫做encoder,一个叫做decoder。Encoder读入一个图片变为一个向量,decoder读入向量,产生一个图片。训练目标让encoder的输入和decoder输出越接近越好。这个概念和Cycle GAN一样,希望输入的图片经过两次转换后跟原来越接近越好。这个任务不需要标注资料。
原来的图片可以看做时一个很长的向量,encoder输出的向量,让这个向量变为一个低纬度的向量,低纬度向量做接下来的任务。让低纬度向量应用在下游任务是auto-encoder的常用做法。
Auto-encoder做的事情是把图片压缩再还原,但是还原为什么能还原回来。
假设图片是33(用9个数值描述一个33的图片),假设encoder输出的是2维的,如何把2个数值还原成9个数值。应为对于影像来说,并不是所有3*3的矩阵都是图片,图片的变化是有限的,可能训练时看到的图片状况只有两种,
所以可以用两个维度表示。
二、de-noising auto-encoder
Auto-encoder的一个常见变形是,de-noising auto-encoder。把原来要输给encoder的图片加入一些杂讯,通过encoder和decoder试图还原加入杂讯之前的图片。比之前的auto-encoder多了一个任务:去除杂讯。
看现在BERT也可以看做一个de-noising的auto-encoder,训练时输入盖上的部分就可以看做noise,bert的模型可以看做时encoder,bert的输出是embedding,一个linear的模型就是decoder,decoder的任务就是还原原来的句子。可以说bert就是一个de-noising的auto-encoder。
总结
学习视频地址:https://www.bilibili.com/video/BV13Z4y1P7D7/?p=22&spm_id_from=333.1007.top_right_bar_window_history.content.click&vd_source=3a369b537e1d34ff9ba8f8ab23afedec