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是可以较好的还原图片的,否则的话,还原出来的图片和原始输入图片差异较大。
      在这里插入图片描述
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用: Auto-encoder是一种深度学习模型,用于将输入数据编码为低维表示,并尽可能地重构原始数据作为输出。在降维方面,PCA会将不同类别的数据混合在一起,而auto-encoder则可以将它们分开。除了降维之外,auto-encoder还有其他用途,比如图片搜索。 引用: 训练一个auto-encoder的过程通常会先固定一些权重参数,然后逐层训练多个自编码器,每个自编码器的输入和输出维度逐渐逼近目标维度。最后,可以使用反向传播来微调网络参数。现在也可以不进行预训练,直接训练auto-encoder。此外,auto-encoder还可以与卷积神经网络(CNN)一起使用。 引用: 特征区分技术是指在auto-encoder中,通过编码器获取的Embedding向量中,可以区分出不同输入数据的特征信息。比如,对于语音输入,可以分别提取出语音内容和说话者的特征。这就是Feature Disentangle的目标。 根据李宏毅老师的讲解,auto-encoder是一种用于降维、重构和特征提取的深度学习模型。它可以将输入数据编码为低维表示,并尽可能地重构原始数据作为输出。除了降维之外,auto-encoder还可以用于图片搜索等任务。训练auto-encoder时,可以使用预训练和微调的方法,也可以直接进行训练。此外,auto-encoder还可以与卷积神经网络(CNN)结合使用。特征区分技术可以用于auto-encoder中,用于提取不同输入数据的特征信息。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值