自编码器 AutoEncoder

2023-12-12 05:44
文章标签 编码器 autoencoder

本文主要是介绍自编码器 AutoEncoder,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

自编码器(AutoEncoder),也称自编码模型,是一种基于无监督学习的数据维度压缩和特征表示方法,目的是对一组数据学习出一种表示。1986年 Rumelhart 提出自编码模型用于高维复杂数据的降维。由于自动编码器通常应用于无监督学习,所以不需要对训练样本进行标记。自动编码器在图像重构、聚类、降维、自然语言翻译等方面应用广泛。

1. 数据表示

数据表示(Data Representation)是使用另一种形式呈现原始数据的方法,这一技术也被称为隐式表示(Latent Representation)或者转码(Coding)。

  • 原始数据为 [ 2 , 4 , 6 , 8 , 10 ] [2,4,6,8,10] [2,4,6,8,10]
    我们可以使用文字以2开头,以10结尾的偶数列来表示该原始数据,也可以使用 [ x , 2 x , 3 x , 4 x , 5 x ] [x,2x,3x,4x,5x] [x,2x,3x,4x,5x] x = 2 x=2 x=2 来表示该原始数据。
  • 原始数据为 [ ′ 苹 果 ′ , ′ 梨 ′ , ′ 百香 果 ′ ] ['苹果','梨','百香果'] [,,百香]
    我们可以使用序列 [ 0 , 1 , 2 ] [0,1,2] [0,1,2] 来表示该原始数据,也可以使用水果这一概括性的词汇来表示原始数据。

很显然,一个数据的数据表示并不是唯一的,且这种表示可以是精确的、也可以是有些模糊的,甚至可以看起来与原始数据毫不相关,但无论如何,数据表示的结果必须携带原始数据上大部分的信息。广义地表示,只要数据B是以另一种形式呈现数据A、并且数据B上携带数据A大部分的信息,我们就可以说B是A的数据表示。同时,“另一种形式”既可以是文字-数字这样不同类别的数据之间的形式差异,也可以是数字-数字这样相同类别,但不同大小、不同数量的数据之间的形式差异。在实际计算当中,当数据B是数据A的数据表示时,数据B通常是从数据A总结出的规律、或直接在数据A上计算得出的新数据。

根据以上数据表示的广义定义可以得知,我们非常熟悉的数据编码(独热编码、顺序编码等操作)、特征提取、升维降维、Embedding等方法都可以囊括到数据表示领域当中。在这领域当中,使用机器学习或深度学习手段令算法自己求解出数据表示结果的领域被称之为表征学习。自编码器是表征学习中极具特色的代表架构。为了实现数据表示的功能,自编码器能够“接收数据A,并输出另一种形式的数据B”,因此自编码器是为“生产新数据”而生的架构。
在这里插入图片描述

2. 自编码器模型简介

最初的自编码器是一个三层网络结构,即输入层、中间隐藏层以及输出层,其中输入层和输出层的神经元个数相同。如下图所示:
在这里插入图片描述
深度自编码器是将自编码器堆积起来,可以包含多个中间隐藏层。由于其可以有更多的中间隐藏层,所以对数据的表示和编码能力更强,而且在实际应用中也更加常用。如下图所示:
在这里插入图片描述
稀疏自编码器,是在原有自编码器的基础上,对隐层单元施加稀疏性约束,这样会得到对输入数据更加紧凑的表示,在网络中仅有小部分神经元会被激活。常用的稀疏约束是使用 L1 \text{L1} L1 范数约束,目的是让不重要的神经元的权重为0。

卷积自编码器是使用卷积层搭建获得的自编码网络。当输入数据为图像时,由于卷积操作可以从图像数据中获取更丰富的信息,所以使用卷积层作为自编码器隐藏层,通常可以对图像数据进行更好的表示。在实际应用中,用于处理图像的自动编码器的隐藏层几乎都是基于卷积的自编码器。在卷积自编码器的编码器部分,通常可以通过池化层负责对数据进行下采样,卷积层负责对数据进行表示,而解码器则通常使用可以对特征映射进行上采样的操作来完成。

这篇关于自编码器 AutoEncoder的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/483439

相关文章

稀疏自编码器tensorflow

自编码器是一种无监督机器学习算法,通过计算自编码的输出与原输入的误差,不断调节自编码器的参数,最终训练出模型。自编码器可以用于压缩输入信息,提取有用的输入特征。如,[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]四比特信息可以压缩成两位,[0,0],[1,0],[1,1],[0,1]。此时,自编码器的中间层的神经元个数为2。但是,有时中间隐藏层的神经元

TMC5271/TMC5272 支持使用编码器进行闭环位置控制

ADI-Trinamic推出两款新芯片产品,TMC5272和TMC5271。TMC5272是一颗2.1V 至 20V,2 x 0.8ARMS双轴步进驱动芯片。而且封装好小,为36 WLCSP (2.97mm x 3.13mm)封装。它集成Stealthchop、Spreadcycle两种斩波模式;还集成加减速算法,可通过配置寄存器方式控制电机转速、方向、和位移。 应用场合:VR,注射泵输液泵,安防

【数据应用案例】使用时空自编码器检测视频异常事件

案例来源:@阿里巴巴机器智能 案例地址:https://mp.weixin.qq.com/s/rUuaaBI3McesED3VVVbsBw   1. 目标:识别视频中的异常事件(如车祸)   2. 难点:正例数据量远远小于负例,同时正例之间的差异性很大,因此难以采用有监督方法进行训练。传统解决方法是使用无监督方法为正常视频建模,然后将异常值视为异常事件。   3. 解决思路:

【STM32】通用定时器TIM(编码器接口)

本篇博客重点在于标准库函数的理解与使用,搭建一个框架便于快速开发 目录 前言   编码器接口简介 正交编码器  编码器接口配置 初始化IO口 输入捕获配置 编码器接口初始化 编码器接口测速代码 Encoder.h Encoder.c main.c 前言   建议先阅读这篇博客,理解定时器输入捕获的配置和旋转编码器的使用 【STM32】通用定时器TIM(输

x264 编码器 AArch64汇编系列:quant 量化相关汇编函数

quant x264_quant_init函数中初始化时指向不同的具体实现: 以4x4块量化为例 c 语言版本实现 4x4 块量化:quant_4x4 #define QUANT_ONE( coef, mf, f ) \

07:【江科大stm32】:编码器通过定时器测速

编码器通过定时器测速 编码器的转动方向不同,则输出波形的相位也不同。如下图所示: 编码器标准库的编程接口: ①Encoder.c文件的代码如下: #include "stm32f10x.h" // Device header//使用PA6(TIM3_CH1)和PA7(TIM3_CH2)进行编码器的输入void Encoder_Init(

NLP-生成模型-2014:Seq2Seq【缺点:①解码器无法对齐编码器(Attention机制);②编码器端信息过使用或欠使用(Coverage机制);③解码器无法解决OOV(Pointer机制)】

《原始论文:Sequence to Sequence Learning with Neural Networks》 Seq2Seq模型是将一个序列信号,通过“编码&解码”生成一个新的序列信号,通常用于机器翻译、语音识别、自动对话等任务。 Seq2Seq(多层LSTM-多层LSTM)+Attention架构是Transformer提出之前最好的序列生成模型。 我们之前遇到的较为熟悉的序列问题,

深度学习-生成模型:Generation(Tranform Vector To Object with RNN)【PixelRNN、VAE(变分自编码器)、GAN(生成对抗网络)】

深度学习-生成模型:Generation(Tranform Vector To Object with RNN)【PixelRNN、VAE(变分自编码器)、GAN(生成对抗网络)】 一、Generator的分类二、Native Generator (AutoEncoder's Decoder)三、PixelRNN1、生成句子序列2、生成图片3、生成音频:WaveNet4、生成视频:Video

LSTM-Autoencoder深度学习模型在电动机异常检测中的应用

LSTM-Autoencoder深度学习模型在电动机异常检测中的应用 LSTM-Autoencoder Deep Learning Model for Anomaly Detection in Electric Motor Citation: Lachekhab, F.; Benzaoui, M.; Tadjer, S.A.; Bensmaine, A.; Hamma, H. LSTM-Aut

x264 编码器 AArch64汇编系列:DCT 变换相关汇编函数

DCT变换 在x264_dct_init函数中初始化具体的 dct 实现函数。 4x4 块DCT 变换 c 语言版本实现 4x4DCT 变换函数:sub4x4_dct。 pixel_sub_wxh 函数: 这个函数的作用是从两个像素块中减去一个像素块,得到差分值,这些差分值将用于DCT变换。参数: diff:指向存储结果差分值的数组的指针。i_size:差分值数组的宽度和高度,通常