机器学习基本分为监督学习、无监督学习、强化学习,而自编码器则是无监督学习的一种,不过它比较自觉,别人不监督它但它自己监督自己,对输入样本 xxx 进行训练,得出结果后再与 xxx 进行对比。

通过这一特性,自编码器可以随机生成与训练数据类似的数据,比如对图片进行重建。


AE的结构

无监督学习的数据没有额外的标注信息,只有数据 xxx 本身。

利用数据 xxx 本身作为监督信号来指导网络的训练,即希望神经网络能够学习到映射 fθ:x→xf_{\theta}:x\to xfθ​:x→x。我们把网络 fθf_{\theta}fθ​ 切分为两个部分,前面的子网络尝试学习映射关系 gθ1:x→zg_{\theta 1}:x\to zgθ1​:x→z,后面的子网络学习映射关系 hθ2:z→xh_{\theta 2}:z\to xhθ2​:z→x

我们把 gθ1g_{\theta 1}gθ1​ 看成一个数据编码(Encode)过程,把高维度的输入 xxx 编码成低维度的隐变量 zzz,称为 Encoder 网络(编码器);把 hθ2h_{\theta 2}hθ2​ 看成数据解码(Decode)的过程,把编码过后的的输入 zzz 解码为搞维度的 xxx,称为 Decoder 网络(解码器)。

编码器和解码器共同完成了输入数据 xxx 的编码和解码过程,因此整个网络 fθf_{\theta}fθ​ 自编码器(Auto-Encoder)。


运算流程

最好的状态就是解码器的输出能够完美地或者近似恢复出原来的输入,即 x‾≈x\overline{x}\approx xx≈x,因此其优化目标写为:
MinimizeL=dist(x,x‾)x‾=hθ2(gθ1(x))Minimize L = dist(x,\overline{x})\\ \overline{x}=h_{\theta 2}(g_{\theta 1}(x))MinimizeL=dist(x,x)x=hθ2​(gθ1​(x))

其中 dist(x,x‾)dist(x,\overline{x})dist(x,x) 表示 xxx 和 x‾\overline{x}x 的距离度量。


AE的变种网络

为了尝试让自编码器学习到数据的真实分布,产生了一系列的自编码器变种网络。

去噪自编码器(Denoising Auto-Encoder)

给输入数据添加随机的噪声扰动,如给输入xxx 添加采样自高斯分布的噪声 ε\varepsilonε:
x~=x+ε,ε−N(0,var)\widetilde{x}=x + \varepsilon,\varepsilon -N(0,var)x=x+ε,ε−N(0,var)

添加噪声后,网络需要从 x~\widetilde{x}x 学习到数据的真实隐藏变量 zzz,并还原出原始的输入 xxx,模型的优化目标:
θ∗=argmin⏟θdist(hθ2(gθ1(x~)),x)\theta^*=\underbrace{argmin}_\theta dist(h_{\theta 2}(g_{\theta 1}(\widetilde{x})),x)θ∗=θargmin​​dist(hθ2​(gθ1​(x)),x)

稀疏自编码器(Dropout Auto-Encoder)

通过随机断开网络的连接来减少网络的表达能力,防止过拟合。

根据输入数据选择性地激活网络区域,限制网络记忆输入数据的容量,而不限制网络从数据中提取特征的能力。这让我们单独考虑网络的潜在状态的表征和正则化分开,这样我们就可以根据给定数据上下文的意义选择潜在状态表征(即编码维度),同时通过稀疏性约束施加正则化。

压缩自编码器(Compression Auto-Encoder)

人们会期望对于非常相似的输入,学习的编码也会非常相似。可以为此训练模型,以便通过要求隐藏层激活的导数相对于输入而言很小。换句话说,对于输入比较小的改动,我们仍然应该保持一个非常类似的编码状态。这与降噪自编码器相似,因为输入的小扰动本质上被认为是噪声,并且希望模型对噪声具有很强的鲁棒性。

降噪自编码器使重构函数(解码器)抵抗输入有限小的扰动,而压缩自编码器使特征提取函数(编码器)抵抗输入无限小的扰动。

明确地鼓励模型学习一种编码,在这种编码中,类似的输入有类似的编码。基本上是迫使模型学习如何将输入的临近区域收缩到较小的输出临近区域。注意重构数据的斜率(即微分)对于输入数据的局部邻域来说基本为零。

可以通过构造一个损失项来实现这一点,该项对输入训练样例中的大量的衍生进行惩罚,本质上是惩罚那些在输入中有微小变化导致编码空间发生巨大变化的实例。

变分自编码器(Variational Auto-Encoder)

基本的自编码器本质上是学习输入 xxx 和隐藏变量 zzz 之间映射关系,它是一个判别模型,是否能将其调整为生成模型呢。

给定隐藏变量的分布 P(z)P(z)P(z),如果可以学习到条件概率分布 P(x∣z)P(x|z)P(x∣z),则通过对联合概率分布 P(x,z)=P(x∣z)P(z)P(x,z) = P(x|z)P(z)P(x,z)=P(x∣z)P(z) 进行采样,生成不同的样本。

从神经网络的角度来看,VAE 相对于自编码器模型,同样具有编码器和解码器两个子网络。解码器接受输入 xxx,输出为隐变量 zzz;解码器负责将隐变量 zzz 解码为重建的 x‾\overline{x}x。不同的是,VAE 模型对隐变量 zzz 的分布有显式地约束,希望隐变量 zzz 符合预设的先验分布 P(z)P(z)P(z)。因此,在损失函数的设计上,除了原有的重建误差项外,还添加了隐变量 zzz 分布的约束项。

自编码器(AE)原理解析相关推荐

  1. 光电编码器的原理及应用场合_旋转式光电编码器工作原理及在视觉检测中的使用...

    一.光电编码器工作原理 光电编码器,是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器.这是目前应用最多的传感器,光电编码器是由光栅盘和光电检测装置组成.光栅盘是在一定直径的圆板上 ...

  2. 编码器类型原理知识汇总(增量式/绝对式/绝对值)

    编码器以信号原理来分,有增量式编码器(SPC)和绝对式编码器(APC). 绝对式编码器可以记录编码器在一个绝对坐标系上的位置,而增量式编码器可以输出编码器从预定义的起始位置发生的增量变化. 增量式编码 ...

  3. 增量式编码器工作原理超详细图解

    旋转编码器是由光栅盘(又叫分度码盘)和光电检测装置(又叫接收器)组成.光栅盘是在一定直径的圆板上等分地开通若干个长方形孔.由于光栅盘与电机同轴,电机旋转时,光栅盘与电机同速旋转,发光二极管垂直照射光栅 ...

  4. 深入浅出图神经网络|GNN原理解析☄学习笔记(四)表示学习

    深入浅出图神经网络|GNN原理解析☄学习笔记(四)表示学习 文章目录 深入浅出图神经网络|GNN原理解析☄学习笔记(四)表示学习 表示学习 表示学习的意义 离散表示与分布式表示 端到端学习 基于重构损 ...

  5. 人人看得懂的ChatGPT技术原理解析

    人人看得懂的ChatGPT技术原理解析 编者按:自ChatGPT面世以来,我们在热切挖掘其丰富应用的同时,也在孜孜探求其背后的工作原理. 今天我们为大家带来的文章,深入浅出地阐释了ChatGPT背后的 ...

  6. 分布式缓存系统Redis原理解析

    Redis作为内存数据库已经广泛应用于大数据领域,已经成为分布式架构下的基础组件.本文主要介绍了Redis内部的实现原理包括IO模型.内存管理.数据持久化等以及三种集群架构,旨在了解其中的实现机制. ...

  7. 增量式旋转编码器工作原理

    增量式旋转编码器工作原理 增量式旋转编码器通过内部两个光敏接受管转化其角度码盘的时序和相位关系,得到其角度码盘角度位移量增加(正方向)或减少(负方向).在接合数字电路特别是单片机后,增量式旋转编码器在 ...

  8. 【深度学习】VGGNet原理解析及实现

    [深度学习]VGGNet原理解析及实现 VGGNet由牛津大学的视觉几何组(Visual Geometry Group)和Google DeepMind公司的研究员共同提出,是ILSVRC-2014中 ...

  9. 六轴机械臂控制原理图_六轴工业机器人工作原理解析

    原标题:六轴工业机器人工作原理解析 常见的六轴关节机器人的机械结构如图1所示: 六个伺服电机直接通过谐波减速器.同步带轮等驱动六个关节轴的旋转,注意观察一.二.三.四轴的结构,关节一至关节四的驱动电机 ...

  10. spring ioc di 原理解析

    spring ioc原理(看完后大家可以自己写一个spring) 控制反转/依赖注入 其实这个Spring架构核心的概念没有这么复杂,更不像有些书上描述的那样晦涩.Java程序员都知道:java程序中 ...

最新文章

  1. 重磅!脑机接口突破登Nature封面,脑中“笔迹”转屏幕文字破纪录,准确率超99%...
  2. LInux初始学习篇:基本命令使用
  3. CSS FILTERS:CSS过滤器能够做什么?
  4. netfilter与iptables表规则建立
  5. 九十六、轻松搞定Python中的PPT办公自动化系列
  6. Nslookup 命令使用浅析
  7. php 获取每年的节假日,shell获取每年农历节日的日期
  8. 前端学习(972):swiper插件使用 参数更改
  9. 强化学习之原理与应用
  10. java 泛型 泛型接口(Generic Methods)类型形参(Type Parameters)
  11. POJ 1185 炮兵阵地(状压dp)
  12. [luogu1081] 开车旅行
  13. 用html制作发货单,使用excel制作发货单和送货单模板教程
  14. Bluedroid 函数分析:bta_dm_gattc_register
  15. Proxy-NCA Loss、Proxy Anchor Loss
  16. WorkMan学习篇:三
  17. “杜拉拉升职记”电影看后感
  18. CardsMobile携手华为安全检测,打造俄罗斯一体化支付新体验
  19. SmartUpload综合
  20. MongoDB可视化工具 Studio 3T

热门文章

  1. C#上位机与欧姆龙PLC通讯(FINS)
  2. 虚拟机使用宿主机全局代理
  3. 开发中常用的工具类(一)
  4. 神经网络(单层感知器)
  5. java中分号能代表换行吗,go语言中换行和分号那点事------理解为什么
  6. 梦幻西游手游海外服务器维护,梦幻西游手游维护 新神器任务轩辕丘之祸开启...
  7. 强者越强-效率与公平的幂律视角
  8. ByteBuf浅层复制的使用
  9. html显示tif图片,呈现HTML中的TIF文件
  10. Oracle定时任务DBMS_JOB