Auto-Encoder学习笔记

写在前面

  • 本篇博客是本人在学习李宏毅老师的《机器学习》课程 中的Auto-Encoder时,记录的相关笔记,由于只记录了我认为相对重要的部分,所以可能有未记录的部分。博客中的图片来自于教学视频中的截图,视频资源地址为:传送门,感兴趣的读者可以前去学习,李宏毅老师讲解的非常透彻,让人醍醐灌顶。

Auto-Encoder

Auto-Encoder可以看出是自监督的一种,在训练的时候不需要数据集提供标签,也可以说是预训练。

Auto-Encoder的结构

  • Auto-Encoder由编码器和解码器组成,都是网络,数据集可以是一些无标注的图片。

  • 编码器读入一张图片,输出一个向量,解码器读入这个向量,最后产生一张图片。Auto-Encoder的目标就是要让产生的图片和输入的图片越接近越好。

  • Encoder训练是为了捕获输入数据的关键特征 ,是对输入数据的另一种表示形式,一般比原始数据更简单。而Decoder是将这种表示重构回原始输入。将Encoder的输出用于下游任务,相当于是迁移学习或特征提取 ,在不依赖具体任务的情况下,提取输入数据的通用特征

  • Auto-Encoder可以做什么?

    • 比如一张图片组成的向量非常长,在经过Encoder之后,得到一个更低维的向量,然后用这个低维的向量去做下游任务。相当于将复杂的东西用简单的形式表示了,这样在做下游任务的时候,就不需要过多的训练资料。
  • De-noising Auto-Encoder

    • 在Encoder读入图片前,先对图片加噪声。这种结构目标是要让生成的图片和加噪声前的图片越相似越好。
  • Bert可以看成是De-noising Auto-Encoder

Auto-Decoder的应用

特征解耦(Feature Disentangle)

  • decoder输出的向量表示中,包含了不同方面的信息,比如一段声音中的内容、声音特征,这个向量的前50维代表内容,后50维代表声音特征。
  • 这种方法可以用来做语者转换:同一段内容由不同人的声音读出来。比如下图所示,此时有两段不同内容且声音不同的语音序列,通过Encoder后,可以得到相应的向量表示,这个向量包含了序列的内容和声音特征,抽取出两个向量中的内容和声音特征,将男生的内容向量和女生的声音向量组合在一起形成一个新的向量,输入给Decoder将得到新的语音序列。

文章总结

  • 我们可以训练Auto-encoder来做文章总结。具体的,Encoder读入一篇文章,输出一段文字序列,这段文字是Encoder从文章中提取的关键内容,Decoder会读入这段文字还原这篇文章,注意到Encoder和Decoder都是输入一段序列,输出一段序列,所以Encoder和Decoder都是Seq2seq模型。

  • 所以只要有大量的文章资料,就可以以无监督的学习的方式训练模型。

  • 但是这种方式训练会存在一个问题,就是Encoder和Decoder之间可能存在自己的暗号,导致Encoder总结出来的东西人看不懂,但是Decoder能看懂并还原,所以我们需要一个判别器来增强机器生成的总结的真实性,也就是将文字输入给Discriminator。这部分属于GAN的知识。

图片压缩

  • 我们知道Encoder可以提取高维图片的特征信息用低维的向量表示,所以Auto-encoder又可以用来做图片压缩。具体的,Encoder做的事情是压缩图片,得到的低维向量可以看作是压缩后的结果的向量表示 ,Decoder做的事情是解压缩,重建图像,得到与原始图像在结构上和外观上相似的图像,所以最终Decoder产生了压缩后失帧的图片

异常检测(Anomaly Detection)

  • 异常检测:给定一个训练资料集,异常检测系统需要检测一个新的输入是否和训练资料中的某个或某些资料相似。
  • 通过定义异常的标准可能不同,取决于你的数据集是什么
  • 异常检测的方法有很多中,使用Auto-Anomaly来做异常检测是一种可行的方法。

    • 在训练时,和标准的训练Auto-encoder的方式一样,目的就是要让生成的图片和原始图片越相似越好。
    • 在测试时,输入图片给Auto-encoder,计算Auto-encoder输出的图片和原始输入的图片的差异,如果差异较小,说明这张图片是正常图片,如果差异较大,说明这张图片可能是异常图片。这是因为在训练Auto-encoder的时候,Auto-encoder学习到了还原类似训练集中的图片的能力,如果新的图片和训练资料中的图片相似,那么Auto-encoder是可以较好的还原图片的,否则的话,还原出来的图片和原始输入图片差异较大。
相关推荐
uncle_ll8 分钟前
PyTorch图像预处理:计算均值和方差以实现标准化
图像处理·人工智能·pytorch·均值算法·标准化
宋138102797208 分钟前
Manus Xsens Metagloves虚拟现实手套
人工智能·机器人·vr·动作捕捉
SEVEN-YEARS12 分钟前
深入理解TensorFlow中的形状处理函数
人工智能·python·tensorflow
世优科技虚拟人15 分钟前
AI、VR与空间计算:教育和文旅领域的数字转型力量
人工智能·vr·空间计算
cloud studio AI应用21 分钟前
腾讯云 AI 代码助手:产品研发过程的思考和方法论
人工智能·云计算·腾讯云
Suyuoa28 分钟前
附录2-pytorch yolov5目标检测
python·深度学习·yolo
禁默32 分钟前
第六届机器人、智能控制与人工智能国际学术会议(RICAI 2024)
人工智能·机器人·智能控制
Robot25140 分钟前
浅谈,华为切入具身智能赛道
人工智能
只怕自己不够好1 小时前
OpenCV 图像运算全解析:加法、位运算(与、异或)在图像处理中的奇妙应用
图像处理·人工智能·opencv
余生H2 小时前
transformer.js(三):底层架构及性能优化指南
javascript·深度学习·架构·transformer