深度自动编码器(Deep Auto-encoder)

深度自动编码器(Deep Auto-encoder)

本文是学习B站上李宏毅老师的机器学习笔记。

Auto-encoder

它做的事情和PCA、t-SNE一样,都是要降维。只是这里用网络结构来降维,降维的网络被称为Encoder,这个Encoder就是很多个隐层网络的网络结构,输入一张图片后会输出降维以后的结果。这个结果比PCA的结果复杂是因为它不是一个线性的东西。

通用有一个Decoder也是网络结构,输入降维的图片会输出原来的图片。

由于encoder和decoder独自存在的时候无法学,所以将它们连接在一起后就可以学了。

 

PCA:

输入一个vector X,乘上一个W得到c,再乘上W的转置。

可以将PCA的过程当做网络结构来看

 

Deep Auto-encoder:

它和PCA比起来可以理解为多加了几个隐藏层网络。

 

PCA和Deep Auto-encoder的结果比较:

 

我们主要是看coder做的有多好,可以看到不同的方法降维到2维后的区别。

 

De-noising auto-encoder可以让Auto-encoder训练的更好

它会在input上面加上noise,然后进行编码和解码。还必需解码到加noise前的图片。

 

Auto-encoder被用在文字上的例子:搜索引擎上查找功能

Vector Space Model:把每一个document和query用一个vector 来描述,接下来计算每一个query和document的相似度,看query和哪个document的相似度比较高,那它就是搜索的结果。

那如何将一个document描述成一个vector呐?最常用的就是词袋(Bag-of-Word),它是将每一个句子都表示成一个列向量,列向量的维数就是现有所有词汇的个数。 如果现在世界上有10w个词,那vector的维数就是10w。这样的话一个句子中出现的词处的数值是1,其他的都是0。但是它的坏处就是没有考虑到词语的语义。

 

一个搜索引擎要想做好的话就必须考虑到语义。

现在有一个方法就是叠一个auto-encoder,假设有2000个词,将这两千个词降维到2维。也就是说每一个文章都是2维空间上的一个点。同样将一个query也降维到2维空间,然后把这些点可视化。计算query和那些点的相似度。这样就可以找到与query相同的同类文章。

每一个点代表一个新闻,不同颜色的点代表不同类别的新闻。

 

Auto-encoder也可以做影像搜寻

计算输入的图片和数据集中图片的相似度。

先学习一个encoder和decoder,进行解码和编码。

CNN来处理

使用CNN来处理更有效。

在做Pool的时候是在filter的输出中四个一组选最大的,除了选最大的以外,我们还要知道谁是最大的。在做Unpooling的时候就是把每一个像素扩展成四个像素,其实就是max pooling的相反。max Pooling取出最大所放的位置在扩展成四个像素后依然在对应的位置,对于那个max Pooling丢掉的值不知道是多少就补0。

所以Pooling会把图片变小,而Unpooling会把图片变大。

 

Convolution是把同一个filter乘上不同的input和一样的weight得到输出。

Deconvolution就反过来,原来是三个value乘上不同的weight得到一个输出,而这里则是一个输入乘上不同的weight得到三个输出。做完后会有一部分输出的位置重叠,然后再把重叠的地方加起来。

上面的Deconvolution就相当于给除了那三个输入外补上0,然后在做卷积(Convolution)

 

  • 4
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
引用: 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>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值