自编码器(autoencoder)
autoencoder#
简单来说 autoencoder 就是将输入复制到输出的神经网络。主要应用有降维和信息检索任务。但是为了autoencoder能学习到数据中的有效特征而不是简单的拷贝,
我们会在其中加入各种各样的约束,使得autoencoder 学习到有用的特征。
一般来讲AE有两部分组成, 假设输入为, encoder ; decoder ; 均为确定的函数。而现在的AE也将替换为了具有随机性的映射
,
AE 的发展#
AE提出的motivation用于实现dimensionality reduction和 features learning.目前,也被用于generative model(生成模型)。AE可以采用一般神经网络所采用的优化算法,例如梯度下降。
recirculation 优化算法#
AE也可以采用recirculation, 该方法对比AE在原始输入(original input)上的激活和重构(reconstructed input)输入上的激活。该方法从生物学角度有其合理性,但是在机器学习领域却很少应用。
undercomplete AE#
该方法想法较为简单,即 h 的维度要小于 x的维度,这使得AE不得不学习一些有效的特征来降低重构损失 , L一般的 MSE。
然而该方法却有很大的局限性,encoder, decoder模型容量不能过高。例如,encoder, decoder 模型容量过高,拟合能力过强,会使得即便将h维度设为一维,也即是一个整数,该整数,也并没有包含原始数据的有效特征,仅仅作为一种索引。模型容量过高的decoder仅仅依据该整数,就可以重构该样例。
Regularized AE#
Undercomplete AE约束了AE的encoder,decoder的模型容量,h的维度,RAE采用正则化的方式使得模型在学习重构输入的同时,还学习其他特性,例如 h的稀疏性, h导数较小,对于噪音和输入缺失的鲁棒性。
Sparse AE#
该方法主要通过对h施加约束,使得h稀疏化。来达到SAE模型不得不学习更多有效特征。优化目标如下
正则项可能为如下形式:
该正则并没有施加在模型参数上面,所以不能使用模型参数先验的思想进行解释。
也可以从概率角度解释上述问题。
Denoising AE#
DAE 修改了AE的优化目标
其中, 为加入部分噪音的
导数正则项/Contractive autoencoder#
Contractive autoencoder
这使得 的轻微改变不会影响
AE 表达能力与层大小和深度的关系#
即便是AE仅仅有一层隐藏层,根据通用近似定理(万能近似定理)只要有足够的隐藏单元可以任意好的拟合数据域中的恒等函数。但是单层的映射是shallow的,无法引入更多的约束,例如稀疏约束。
所以更深的AE是必要的,同前馈神经网络一致,更深的层数在表示同一个函数时可以指数级缩小计算成本和指数级减少所需的训练集数量。
deep AE的通用训练策略是训练一系列shallow的AE,然后,使用这些shallow的AE初始化 deep AE。
Stochastic encoders and decoders#
encoder:
decoder:
而隐状态模型分布 可以定义上述分布
不是采样函数,而是引入了noise, 如同被从采样一样。
Denoising AE#
DAE 引入了两个分布
定义了从原始样本生成 引入噪音样本的分布
定义了训练样例的重构损失
DAE 训练流程:
- 从训练数据中采样
- 从 生成 corrupted version of
- 优化损失函数
优化目标可以总结为如下形式:
作者:lif323
出处:https://www.cnblogs.com/lif323/p/15944523.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
欢迎与作者讨论
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧