学习笔记——Auto encoder


Auto encoder

简介

如下图所示,在李宏毅老师的课中是这样介绍的,auto encoder将输入通过encoder编码得到code,之后通过decoder解码得到output,最后希望达到的效果就是input和output越接近越好。为了达到这个效果,可以将encoder和decoder一起训练。
在这里插入图片描述

应用

在李宏毅老师的课中提到了几种auto encoder的应用

文本检索

vector space model的想法是把文件表示为一个向量。如图红色为要检索的文本,可以通过比较它与其他文本的余弦相似度来检索。
在这里插入图片描述

相似照片检索

如果直接从像素层面通过计算欧拉距离来查找相似的照片,效果并不是很好。所以希望通过将照片编程成code,再进行比较。
在这里插入图片描述

预训练DNN

想要为下图左边的神经网络找一组比较好的初始参数,来减少训练的复杂。就可以通过auto encoder来实现。如图右所示可以训练一个auto encoder。

在这里插入图片描述
将784维数据转化为1000维的参数W1固定下来,作为左图对应位置的初始参数。
在这里插入图片描述
使用同样的方法初始化其他的参数,最后输出层的参数随机初始化就可。然后在之后的训练过程仅需要fine tune(微调)。
在这里插入图片描述
但是随着目前pre-training方法更新,这种方法也渐渐被替代。

de-nosing auto-encoder

在这里插入图片描述

卷积的auto encoder

卷积中两个重要的概念:卷积(convolution)和池化(pooling)。在decoder中对应的变成了deconvolution和unpooling。
在这里插入图片描述

unpooling

unpooling相当于是在做pooling的逆过程。将pooled maps通过unpooling转化为原来图像。如下图左侧,将pooled maps中每个像素转化对应颜色位置的一堆像素。例如在最大池化中,为了知道pooled maps中像素是从哪个位置获得的,要记录rectified feature maps中被选为最大像素的位置之后才能还原。常用的方法有直接把pooled maps中像素填充在获得的位,其他位置填0,如下图左侧黄色图中琐事。或者直接把黄色位置都填充为layer above reconstruction黄色位置的像素。

在这里插入图片描述

deconvolution

deconvolution实质上就是convolution。 下图左抽象的是卷积操作,相当于三个像素卷积得到一个像素。第一黑框里面的操作是下图左中卷积操作的逆过程。

第一个黑框操作等价于第二个黑框操作: 第二个黑框中灰色的神经元表示的是0填充。蓝框中的像素和黄框中像素是等价的,是因为篮筐是由a绿色线+b蓝色线+c橘色线,而黄框的像素也是a绿色线+b蓝色线+c橘色线。其他output像素也同理,因此第二个黑框等价于第一个黑框中的操作。

第一个黑框中的deconvolution操作相当于第二个黑框中操作,而第二个黑框中实质是卷积操作的步骤。所以deconvolution实质上就是convolution。

在这里插入图片描述

embedding

embedding指用低维向量对物体进行编码并保留其含义;即使用一个低维的向量来代表一个对象。auto encoder就是完成embedding的一个技术。

feature disentangle

feature disentangle即特征分离。如下图,使用两个encoder可以产生不同的code,提取出不同的information

在这里插入图片描述
比如在语音上面特征分离可以用来完成变音,过程如下图所示。
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值