自编码器(Auto-Encoder)

这篇具有很好参考价值的文章主要介绍了自编码器(Auto-Encoder)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、自编码器原理

自编码器算法属于自监督学习范畴,如果算法把x作为监督信号来学习,这里算法称为自监督学习(Self-supervised Learning)


在监督学习中神经网络的功能:。是输入的特征向量长度,是网络输出的向量长度。对于分类问题,网络模型通过把长度为输入特征向量𝒙变换到长度为输出向量𝒐,这个过程可以看成是特征降维的过程,把原始的高维输入向量𝒙变换到低维的变量𝒐

特征降维(Dimensionality Reduction)在机器学习中有广泛的应用, 比如文件压缩(Compression)、 数据预处理(Preprocessing)等。 最常见的降维算法有主成分分析法(Principal components analysis, 简称 PCA),通过对协方差矩阵进行特征分解而得到数据的主要成分,但是 PCA 本质上是一种线性变换,提取特征的能力极为有限

利用神经网络的强大非线性表达能力去学习到低维的数据表示,但是训练神经网络一般需要一个显式的标签数据(或监督信号),但是无监督的数据没有额外的标注信息,只有数据𝒙本身

利用数据𝒙本身作为监督信号来指导神经网络的训练,即希望神经网络能够学习到映射: 𝒙 → 𝒙。

自编码器(Auto-Encoder)

把网络切分为两个部分,前面的子网络尝试学习映射关系:: 𝒙 → 𝒛,后面的子网络尝试学习映射关系: 𝒛 → 𝒙。 把看成一个数据编码(Encode)的过程,把高维度的输入𝒙编码成低维度的隐变量𝒛(Latent Variable,或隐藏变量),称为 Encoder 网络(编码器); 看成数据解码(Decode)的过程,把编码过后的输入𝒛解码为高维度的𝒙, 称为 Decoder 网络(解码器)

编码器和解码器共同完成了输入数据𝒙的编码和解码过程,把整个网络模型叫做自动编码器(Auto-Encoder),简称自编码器。 如果使用深层神经网络来参数化和函数, 则称为深度自编码器(Deep Auto-encoder)

 自编码器(Auto-Encoder)

自编码器能够将输入变换到隐藏向量𝒛,并通过解码器重建(Reconstruct,或恢复)出𝒙。解码器的输出能够完美地或者近似恢复出原来的输入,即𝒙 ≈ 𝒙, 自编码器的优化目标:,  dist(𝒙, 𝒙)表示 𝒙和的距离度量,称为重建误差函数。 常见的度量方法有欧氏距离的平方,计算方法如下:ℒ = ∑(𝑥𝑖 - 𝑥̅𝑖)2

它和均方误差原理上是等价的。 自编码器网络和普通的神经网络并没有本质的区别只是训练的监督信号由标签𝒚变成了自身𝒙。 借助于深层神经网络的非线性特征提取能力, 自编码器可以获得良好的数据表示,相对于 PCA 等线性方法,自编码器性能更加优秀, 甚至可以更加完美的恢复出输入𝒙

二、多种自编码器  

自编码器网络的训练较为稳定,但是由于损失函数是直接度量重建样本与真实样本的底层特征之间的距离,而不是评价重建样本的逼真度和多样性等抽象指标, 因此在某些任务上效果一般,如图片重建,容易出现重建图片边缘模糊,逼真度相对真实图片仍有不小差距。为了尝试让自编码器学习到数据的真实分布,产生了一系列的自编码器变种网络
 

1.Denoising Auto-Encoder

为了防止神经网络记忆住输入数据的底层特征, Denoising Auto-Encoders 给输入数据添加随机的噪声扰动,如给输入𝒙添加采样自高斯分布的噪声𝜀:自编码器(Auto-Encoder),添加噪声后,网络需要从学习到数据的真实隐藏变量 z,并还原出原始的输入𝒙
 

2.Dropout Auto-Encoder

Dropout Auto-Encoder 通过随机断开网络的连接来减少网络的表达能力,防止过拟合,通过在网络层,中插入 Dropout 层即可实现网络连接的随机断开
 

3.Adversarial Auto-Encoder

为了能够方便地从某个已知的先验分布中𝑝(𝒛)采样隐藏变量𝒛,利用𝑝(𝒛)来重建输入, 对抗自编码器(Adversarial Auto-Encoder)利用额外的判别器网络(Discriminator, 简称 D网络)来判定降维的隐藏变量𝒛是否采样自先验分布𝑝(𝒛), 判别器网络的输出为一个属于[0,1]区间的变量,表征隐藏向量是否采样自先验分布𝑝(𝒛):所有采样自先验分布𝑝(𝒛)的𝒛标注为真, 采样自编码器的条件概率𝑞(𝒛|𝒙)的𝒛标注为假。通过这种方式训练,除了可以重建样本,还可以约束条件概率分布𝑞(𝒛|𝒙)逼近先验分布𝑝(𝒛)。

自编码器(Auto-Encoder)

 对抗自编码器由生成对抗网络算法衍生而来

4.Variational AutoEncoders

 基本的自编码器本质上是学习输入𝒙和隐藏变量𝒛之间映射关系, 它是一个判别模型(Discriminative model),并不是生成模型(Generative model)。

变分自编码器(Variational AutoEncoders,VAE):给定隐藏变量的分布P(𝒛), 如果可以学习到条件概率分布P(𝒙|𝒛), 则通过对联合概率分布P(𝒙, 𝒛) = P(𝒙|𝒛)P(𝒛)进行采样, 生成不同的样本
自编码器(Auto-Encoder)

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

从概率的角度,假设数据集都采样自某个分布𝑝(𝒙|𝒛), 𝒛是隐藏变量,代表了某种内部特征, 比如手写数字的图片𝒙, 𝒛可以表示字体的大小、 书写风格、 加粗、斜体等设定,它符合某个先验分布𝑝(𝒛),在给定具体隐藏变量𝒛的情况下,可以从学到了分布𝑝(𝒙|𝒛)中采样一系列的生成样本,这些样本都具有𝒛所表示的共性
 

通常假设𝑝(𝒛)符合已知的分布𝒩(0,1)。 在𝑝(𝒛)已知的条件下, 希望能学会生成概率模型𝑝(𝒙|𝒛)。这里可以采用最大似然估计(Maximum Likelihood Estimation)方法: 一个好的模型,应该拥有很大的概率生成真实的样本𝒙 ∈ 𝔻。 如果生成模型𝑝(𝒙|𝒛)是用𝜃来参数化, 那么的神经网络的优化目标是:,由于z是连续变量,这个积分不能转换为离散形式,不能直接优化。

利用变分推断,再经过一系列化简VAE模型优化目标:自编码器(Auto-Encoder),可以用编码器网络参数化𝑞 (𝒛|𝒙)函数,解码器网络参数化𝑝𝜃(𝒙|𝒛)函数,通过计算解码器的输出分布𝑞 (𝒛|𝒙)与先验分布𝑝(𝒛)之间的 KL 散度,以及解码器的似然概率log 𝑝𝜃(𝒙|𝒛)构成的损失函数,即可优化ℒ(𝜃, 𝜙)目标。

优化函数转换为:和,该项可以基于自编码器中的重建误差函数实现
其中,当𝑞 (z |𝑥)和𝑝(z )都假设为正态分布时:自编码器(Auto-Encoder)

当𝑞 ( |𝑥)为正态分布𝒩(𝜇1, 𝜎1), 𝑝( )为正态分布𝒩(0,1)时,即𝜇2 = 0, 𝜎2 =1,此时
自编码器(Auto-Encoder)

第一项优化目标可以理解为约束隐变量𝒛的分布,第二项优化目标理解为提高网络的重建效果

隐变量采样自编码器的输出𝑞 ( |𝑥),当𝑞(z|𝑥)和𝑝(z )都假设为正态分布时, 编码器输出正态分布的均值𝜇和方差𝜎2,解码器的输入采样自𝒩(𝜇, 𝜎2)。由于采样操作的存在,导致梯度传播是不连续的,无法通过梯度下降算法端到端式地训练 VAE 网络

自编码器(Auto-Encoder)

 Reparameterization Trick(重新参数化技巧):

 自编码器(Auto-Encoder)

它通过自编码器(Auto-Encoder)方式采样隐变量z,和是连续可导的,从而将梯度传播连接起来文章来源地址https://www.toymoban.com/news/detail-404324.html

到了这里,关于自编码器(Auto-Encoder)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 深入理解深度学习——Transformer:编码器(Encoder)部分

    分类目录:《深入理解深度学习》总目录 相关文章: ·注意力机制(AttentionMechanism):基础知识 ·注意力机制(AttentionMechanism):注意力汇聚与Nadaraya-Watson核回归 ·注意力机制(AttentionMechanism):注意力评分函数(AttentionScoringFunction) ·注意力机制(AttentionMechanism):Bahda

    2024年02月08日
    浏览(53)
  • 【FPGA】Verilog 实践:优先级编码器 | Priority encoder

    0x00 优先级编码器(Priority encoder) \\\"能将多个二进制输入压缩成更少数目输出的电路或算法的编码器\\\" 优先级编码器是一种编码器,它考虑了两个或更多输入位同时变为 1 但没有收到输入的情况。当输入进来时,优先级编码器会按照优先级顺序进行处理。 通常,它按升序或降

    2024年01月18日
    浏览(44)
  • SSR-Encoder:用于主题驱动生成的通用编码器详解_AIGC-图片生成视频系列

    本文介绍了SSR-Encoder,一种用于主题驱动生成的通用编码器,能够根据文本提示或掩码查询生成图像,无需额外的测试时间微调。文章详细解释了SSR-Encoder的贡献概述、方法详解以及综合结果,展示了其在图像生成和视频生成方面的有效性。

    2024年02月02日
    浏览(102)
  • STM32(HAL)--使用定时器TIM的Encoder Mode来读取旋钮编码器的脉冲数

    目录 一 旋钮编码器相关知识 二 STM32CubeMx配置 三 程序编写 3.1 相关函数介绍 3.2 程序编写 四 实验结果 旋转编码器是一种位置传感器,输出脉冲信号可以用来确定编码器的旋转角度和旋转方向。 编码器中有两个开关,当旋钮旋转后,开关会依次导通,开关结构图如下图所示

    2024年02月15日
    浏览(39)
  • (四) timer+pit(定时器中断)+encoder(编码器)-逐飞TC264库学习(对比STM32 HAL库)

    PIT , 是programmable interval timer 可编程间隔定时器 DSC中的器件 的缩写,所以就是定时器中断,有点像32里的timer(TIMx) 目前看来一共能用通道的有四个 typedef enum // 枚举通道号 {     CCU60_CH0,     CCU60_CH1,     CCU61_CH0,     CCU61_CH1, }pit_index_enum; 因为涉及到中断,为方便设定中断优

    2024年03月15日
    浏览(60)
  • [PyTorch][chapter 51][Auto-Encoder -1]

    目录:    简介    损失函数    自动编码器的类型 一  AutoEncoder 简介:       自动编码器是一种神经网络,用于无监督学习任务.(没有标签或标记数据), 例如降维,特征提取和数据压缩.    主要任务:           1: 输入数据           2: 输入数据压缩为 低维空间(也

    2024年02月11日
    浏览(30)
  • Pytorch Advanced(二) Variational Auto-Encoder

    自编码说白了就是一个特征提取器,也可以看作是一个降维器。下面找了一张很丑的图来说明自编码的过程。 自编码分为压缩和解码两个过程。从图中可以看出来,压缩过程就是将一组数据特征进行提取, 得到更深层次的特征。解码的过程就是利用之前的深层次特征再还原

    2024年02月07日
    浏览(24)
  • 编码器 | 基于 Transformers 的编码器-解码器模型

    基于 transformer 的编码器-解码器模型是 表征学习 和 模型架构 这两个领域多年研究成果的结晶。本文简要介绍了神经编码器-解码器模型的历史,更多背景知识,建议读者阅读由 Sebastion Ruder 撰写的这篇精彩 博文。此外,建议读者对 自注意力 (self-attention) 架构 有一个基本了解

    2024年02月08日
    浏览(50)
  • 【FPGA】Verilog:编码器 | 实现 4 到 2 编码器

    0x00 编码器(Encoder) 编码器与解码器相反。当多台设备向计算机提供输入时,编码器会为每一个输入生成一个与设备相对应的信号,因此有多少比特就有多少输出,以数字形式表示输入的数量。 例如,如果有四个输入,就需要一个两位二进制数来表示 0 至 3,这样就有四个输

    2024年02月04日
    浏览(42)
  • 旋转编码器原理、选型及编码

    旋转编码器(rotary encoder)也称为轴编码器,是将旋转的机械位移量转换为电气信号,对该信号进行处理后检测位置速度等信号的传感器。检测直线机械位移量的传感器称为线性编码器[1]。一般装设在旋转物体中垂直旋转轴的一面。 旋转编码器用在许多需要精确旋转位置及速

    2024年01月19日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包