ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

自编码器(autoencoder)

2022-02-28 10:31:54  阅读:297  来源: 互联网

标签:编码器 AE 模型 encoder decoder autoencoder hat


autoencoder

简单来说 autoencoder 就是将输入复制到输出的神经网络。但是为了autoencoder能学习到数据中的有效特征而不是简单的拷贝,
我们会在其中加入各种各样的约束,使得autoencoder 学习到有用的特征。
一般来讲AE有两部分组成, 假设输入为\(x\), encoder \(h = f(x)\); decoder \(r = g(h)\); \(f,g\) 均为确定的函数。而现在的AE也将\(f,g\)替换为了具有随机性的映射
\(f \rightarrow p_{encoder}(h|x)\), \(g\rightarrow p_{decoder}(r|h)\)

AE 的发展

AE提出的motivation用于实现dimensionality reduction和 features learning.目前,也被用于generative model(生成模型)。AE可以采用一般神经网络所采用的优化算法,例如梯度下降。

recirculation 优化算法

AE也可以采用recirculation, 该方法对比AE在原始输入(original input)上的激活和重构(reconstructed input)输入上的激活。该方法从生物学角度有其合理性,但是在机器学习领域却很少应用。

undercomplete AE

该方法想法较为简单,即 h 的维度要小于 x的维度,这使得AE不得不学习一些有效的特征来降低重构损失 \(L(x, g(f(x)))\), L一般的 MSE。
然而该方法却有很大的局限性,encoder, decoder模型容量不能过高。例如,encoder, decoder 模型容量过高,拟合能力过强,会使得即便将h维度设为一维,也即是一个整数,该整数,也并没有包含原始数据的有效特征,仅仅作为一种索引。模型容量过高的decoder仅仅依据该整数,就可以重构该样例。

Regularized AE

Undercomplete AE约束了AE的encoder,decoder的模型容量,h的维度,RAE采用正则化的方式使得模型在学习重构输入的同时,还学习其他特性,例如 h的稀疏性, h导数较小,对于噪音和输入缺失的鲁棒性。

Sparse AE

该方法主要通过对h施加约束,使得h稀疏化。来达到SAE模型不得不学习更多有效特征。优化目标如下

\[L(x, g(f(x))) + \Omega(h) \]

正则项可能为如下形式:

\[\Omega(h) = \lambda \sum_{i} |h_{i}| \]

该正则并没有施加在模型参数上面,所以不能使用模型参数先验的思想进行解释。
也可以从概率角度解释上述问题。

Denoising AE

DAE 修改了AE的优化目标

\[L(x, g(f(\hat{x}))) \]

其中, \(\hat{x}\) 为加入部分噪音的 \(x\)

导数正则项/Contractive autoencoder

Contractive autoencoder

\[L(x, g(f(x)) + \Omega(h, x), \Omega(h, x) = \lambda \sum_{i} \Vert \Delta_{x}h_{i}\Vert \]

这使得 \(x\) 的轻微改变不会影响 \(h\)

AE 表达能力与层大小和深度的关系

即便是AE仅仅有一层隐藏层,根据通用近似定理(万能近似定理)只要有足够的隐藏单元可以任意好的拟合数据域中的恒等函数。但是单层的映射是shallow的,无法引入更多的约束,例如稀疏约束。
所以更深的AE是必要的,同前馈神经网络一致,更深的层数在表示同一个函数时可以指数级缩小计算成本和指数级减少所需的训练集数量。
deep AE的通用训练策略是训练一系列shallow的AE,然后,使用这些shallow的AE初始化 deep AE。

Stochastic encoders and decoders

encoder: $ h = p_{encoder}(h|x)$
decoder: $ r = p_{decoder}(r|h)$
而隐状态模型分布 \(p_{model}(h, x)\) 可以定义上述分布

\[p_{encoder}(h|x) = p_{model}(h|x) \]

\[p_{decoder}(x|h) = p_{model}(x|h) \]

\(p_{encoder}, p_{decoder}\)不是采样函数,而是引入了noise, 如同被从\(p_{encoder}, p_{decoder}\)采样一样。

Denoising AE

DAE 引入了两个分布
\(C(\hat{x}|x)\)定义了从原始样本生成 引入噪音样本的分布
\(p_{reconstruct}(\hat{x}|x)\)定义了训练样例\((\hat{x}, x)\)的重构损失
DAE 训练流程:

  1. 从训练数据中采样 \(x\)
  2. 从 \(C(\hat{x}|x)\) 生成 corrupted version of \(x\)
  3. 优化损失函数 \(L := p_{reconstruct}(x|\hat{x}) = p_{decoder}(x|h), h=f(\hat{x})\)
    优化目标可以总结为如下形式:

\[-\mathbb{E}_{x \sim \hat{p}_{data}(x)}\mathbb{E}_{\hat{x}\sim C(\hat{x}|x)} log p_{decoder}(x|h=f(\hat{x})) \]

标签:编码器,AE,模型,encoder,decoder,autoencoder,hat
来源: https://www.cnblogs.com/lif323/p/15944523.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有