(1)自编码模型

基本概念:给定一个Input(vector),通过Encoder(neural network),得到code(vector)的过程(通常情况下code的维度小于input的维度)

如何训练:可以将code,连接Decoder(neural network),得到Output(与input相同),通过训练input和output之间的损失函数最小,达到最优效果。

【Deep Learning】自编码模型Auto-Encoder1

与PCA对比:

PCA实际上是通过矩阵变换,将input达到降维的目的

【Deep Learning】自编码模型Auto-Encoder1

当然,Auto-encoder也可以是一个深层的网络,两边的参数可以是一样的,可以节省训练的参数,但是也可以不一样,因为没有理由说明这是必要的。

【Deep Learning】自编码模型Auto-Encoder1 

从下图可以看出,Deep Auto-encoder的结果比PCA更好

【Deep Learning】自编码模型Auto-Encoder1        【Deep Learning】自编码模型Auto-Encoder1

(2)基本应用

1 文本挖掘(Text Retrieval)

通常用词袋模型(one-hot编码)来将文本表示成一个向量空间模型(VSM),但是这种表示方法维度较高,同时没有考虑到语义信息,通过自编码方式则可以将高维向量映射到低维空间。如下图,可以将2000维的文章映射到2维空间,图中的类别边界清晰,相比于LSA模型效果更好(主题聚类模型LDA)

【Deep Learning】自编码模型Auto-Encoder1         【Deep Learning】自编码模型Auto-Encoder1

2 搜寻相似图像(Similar Image Search)

在搜寻某个图像的相似图像时,若用pixel(32×32=8192)维来比较相似度时,则结果可能很不可靠,但是若先进行训练自编码器,然后将每个图像都得到code,再通过比较code的相似度来搜寻相似的图像,这样得到的结果更加可靠。

【Deep Learning】自编码模型Auto-Encoder1【Deep Learning】自编码模型Auto-Encoder1

3 DNN的预训练(参数初始化 Pre-training DNN)

当label的数据较少,并且存在大量的unlabel标签时,则可以考虑用自编码模型来预训练模型的参数,若有足够的数据用来训练,则不必通过这种方式来预训练。

预训练时需要一层一层的训练,将每一层都当做是一个Auto-encoder,每训练完一层hidden layer,则得到该层的参数,直到训练完所有的层,最后通过BP作一次微调即可。

注意:一般情况下code的维数要小于input,因此若hidden layer的维数如下图所示(1000>784),此时则需要考虑regularization,保证只有少许的神经元有参数,若不加正则化,模型则很可能未经训练,直接按1:1的方式输出。

【Deep Learning】自编码模型Auto-Encoder1【Deep Learning】自编码模型Auto-Encoder1【Deep Learning】自编码模型Auto-Encoder1【Deep Learning】自编码模型Auto-Encoder1

4 Auto-encoder for CNN

【Deep Learning】自编码模型Auto-Encoder1【Deep Learning】自编码模型Auto-Encoder1

【Deep Learning】自编码模型Auto-Encoder1

相关文章:

  • 2021-08-12
  • 2021-08-08
  • 2021-12-18
  • 2021-08-22
  • 2021-10-18
  • 2021-04-07
  • 2022-12-23
猜你喜欢
  • 2021-12-31
  • 2021-11-26
  • 2022-01-29
  • 2021-11-08
  • 2021-10-20
  • 2021-05-21
  • 2021-05-13
相关资源
相似解决方案