读书笔记:Deep Learning [Ada-Computation&ML series]--chapter 14.Autoencoder

来源:互联网 发布:网络文化建设的弊端 编辑:程序博客网 时间:2024/05/27 20:11

part0.概述
1.公式:g( f(x) ) = x.
2.用途:降低维度,比同等维度的PCA的效果好;信息检索(图片或文字的),通过语意哈希

part1.欠完备autoencoder
1.定义:编码维度小于输入维度,迫使autoencoder去学习那些最显著的特征。
学习过程: 最小化损失函数 L(x, g(f(x)) )
2.与PCA的关系:如果decoder是线性的,L是mse,则欠完备的autoencoder学习的是跨度为与PCA相同的子空间。
3.欠完备autoencoder会有效,说明了如果其性能太强,则反而会学不到有效信息。

part2.正则化的autoencoder
1.目的是解决上述的性能太强的问题,但是不是依靠减小网络深度与编码大小,而是通过正则化,使得模型具有一些特性,比如稀疏性,对输入缺失或噪声的鲁棒性。即使是过完备的autoencoder通常也能学到有效信息。
2.分类:
1)sparse autoencoder:
L(x, g(f(x)) ) + Om(h), g(h)是decoder的输出,一般来说 h = f(x),是encoder的输出。
Om(h)可以看做是正则项。
与其把稀疏性的惩罚项看做对于拷贝任务的正则项,我们可以把这一套框架看做是近似求拥有隐变量的生成模型的最大似然。
假设模型有变量x,和隐变量h,且其联合分布 Pmodel(x,h) = Pmodel(h)*Pmodel(x|h)
Pmodel(h)是是模型关于h的先验分布。
因此logPmodel (x) = log(sum(Pmodel(h, x) for all h);
log Pmodel(x,h) = log Pmodel(h) + log Pmodel(x|h)
从log Pmodel(h)引入稀疏性。Pmodel(hi) = lamda/2 * e^(-lamda * |hi| )
可将其表示为- log Pmodel(h) = Om(h) + const
既稀疏项根本就是不是正则项,而是模型分布关于隐变量的结果。这样解释了为什么autoencoder学到的特征有效:因为它描述了能够解释输入的隐变量。
2)Denoising autoencoder
公式变成:L(x, g(f(x'))).x’是x的拷贝,但是被破坏了。这里同样做为过完备autoencoder可以work的一个例子。
从<x, x’> 来学习重建分布 P(x | x’);     x’采样自C(x’ | x = x)
3)对梯度的正则化:此时Om(h,x) = lamda * sum(||the derivative of hi w.r.tx  for all || ),又叫做contractive autoencoder,压缩自动编码器。

part3.score matching
在18章中细谈。

part4.流形
1.首先假设数据集中在低维的流形中。
2.流形很重要的一个特性,叫做tangent planes.按照允许局部变化的方向跨度的d个向量基。使得沿着这些方向变化后还处于流形内。
3.有前两条得知:h(x)表达只对沿着流形的方向敏感。
4.缺点:如果流形不平滑则需要大量的样本,影响泛华性能。对于可通过插值来生成的流形比较work。复杂结构能力不够,需要深度网络和表达学习。 

0 0
原创粉丝点击