编码器和解码器最开始看概念的时候有点懵,因为说编码器先把原始信号给编码,然后解码器再给解出来得到原始信号。哈?这是干啥,原始信号本来就有,用这个搞啥,做无用功吗?

1. 首先,说一下编码器和解码器干什么用的。

我们举个例子。

一个是,类似PCA这样的,做矩阵分解,然后恢复。矩阵分解里,把原始大矩阵变成了几个小矩阵相乘,信息没有丢失,但需要存储的数据变少了很多。虽然解码的时候需要额外的计算,但相比起来,小矩阵更符合我们的需求。实际使用的例子,如,图片的传输。以往,是一行一行的像素传输的,所以,网速慢的时候,我们可以看到刷新图片都是从上往下慢慢出来;而现在,是计算特征矩阵,所以看的时候,图片都是先是整体模糊的图片,然后慢慢清晰起来。这个就是传输的特征矩阵,随着特征数据的增多,图片逐渐清晰。

二个是,就像电话,把声音信号转换为电信号,然后远距离传输,再反向把电话信号转换为声音信号,从而达到目的:声音的远距离传输。这里面,打的电话是一个编码器,把声音信号转换为电信号。接的电话是一个解码器,把电信号解码成声音信号。这里面,电话同时具有编码和解码的功能,而且是硬件实现的。本身的功能呢,就是实现了声音的远距离传输。

而我们用到的编码器和解码器,本身编码器是用来做数据特征抽取的,用来做原始信号的主要特征。解码器,只是在编码器训练过程中的一个反向的组件,用来协助编码器做训练的。在我们的场景中,实际使用里,主要是使用编码器的。

2. 其次,说一下编码器怎么训练。

根据上面提到编码器的作用,我们说一个最简单的编码器,就是直接传输的恒等编码器。

比如,输入100个信号,我们让中间编码器也有100个节点,每个节点都是对接一个输入,然后不变的输出。解码器也是一样,对应编码器的输出,不变,直接输出。这样,编码器和解码器都没有损失信息,输出也和输入完全一样,没有信息丢失。这就是一个最简单的编码器和解码器。恒等,无损失。挺好。

或者,编码器对对应的输入乘以2,解码器来乘以1/2,结果同样是无损失的。

但如果我们的目标是想要对数据压缩,不给这么多中间节点。比如说,输入100个信号,但编码器只有10个节点,那么,就没发一一对应的恒等输出的。所以,就需要编码器来努力了。首先,不能再是和输入的一一对应的连接了,因为编码节点数不够。所以,需要全连接这样的。其次,为了让信号方便做转换,可以加入非线性转换一类的。编码器弄完了之后,解码器也是对应的反向参数来解出来,然后输出。把输出和原始输入进行对比,计算损失函数,然后反向传播来降低loss,从而逐步把编码器和解码器的参数训练好,最后拿到一个比较好的压缩的输入数据的特征。

3. 再次,说一下编码器的结构。

注意:编码器+解码器,和MLP的结构可以很像。但是,解码器由于要把编码器的输出特征再解析出原始信号,所以,要求解码器的输出节点个数等于原始信号的输入节点个数。

正常的,编码器和解码器可以是两个层。比如,输入层+编码器层+输出层(解码器层)。也可以,把编码器和解码器都弄成多层的结构。

一般的,解码器是编码器的参数的反函数,这样,二者结构相似,参数相反。但也可以,解码器和编码器并不相同,包括,结构不同,或者参数不按照相反来。

一般的,解码器和编码器是同一种网络,比如,都是层、或者都是CNN,或者都是RNN等。但特殊的,也可以二者不同结构,比如,CNN+RNN等。

所以,本身编码和解码是一种概念。编码器输入数据的特征抽取出来(一般是压缩的,但应该也可以是扩张的),然后解码器根据特征反向解出原始输入信号,让二者尽可能的接近,就可以了。

4. 再说一下编码器的应用。

一个是,特征抽取。这个说过了。二个是,新东西的生成。因为,编码器把重要特征抽出来了,那么,我们可以把这些特征自由的组合,就生成一个新的原始样本中没有的样本,这个也可以比较好玩。

5. 最后,再说一下编码器的一些trick。

比如,可以往编码器的输入中,加入一些噪声。这样,可以防止编码器学出来恒等的复制输入输出的问题。

也可以加入dropout,来增加健壮性。

编码器和解码器的概念理解相关推荐

  1. 直播实录 | 哈工大博士生周青宇:从编码器与解码器端改进生成式句子摘要

    本文为 3 月 15 日,哈工大-微软联合培养博士生--周青宇博士在第 25 期 PhD Talk 中的直播分享实录. 3 月 15 日晚,PaperWeekly 再度联合微软亚洲研究院带来了第 25 ...

  2. 今晚直播 | 从编码器与解码器端改进生成式句子摘要

    「PhD Talk」是 PaperWeekly 的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果.我们一直认为,单向地输出知识并不是一个最好的方式,而有效地反馈和交流可能会让知识的传播更加有意义 ...

  3. 直播预告 | 从编码器与解码器端改进生成式句子摘要

    「PhD Talk」是 PaperWeekly 的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果.我们一直认为,单向地输出知识并不是一个最好的方式,而有效地反馈和交流可能会让知识的传播更加有意义 ...

  4. 基于Transformer的文本情感分析编程实践(Encoder编码器-Decoder解码器框架 + Attention注意力机制 + Positional Encoding位置编码)

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) Encoder编码器-Decoder解码器框架 + Atten ...

  5. 机器翻译 MXNet(使用含注意力机制的编码器—解码器,即 Encoder编码器-Decoder解码器框架 + Attention注意力机制)

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) Encoder编码器-Decoder解码器框架 + Atten ...

  6. GAN学习总结一 GAN基本概念理解

    GAN学习总结一GAN基本概念理解 ​ GAN(Generative Adversarial Network)生成式对抗网络,由Ian Goodfellow 首先提出,是近两年来最热门的东西,仿佛什么 ...

  7. NLP-预训练模型-2019-NLU+NLG:BART【Bert+GPT的泛化Seq2Seq模型】【噪声破坏后的原文本喂给编码器,解码器输出原文本】【噪音方案:文本填充(文本片段用单个掩码替换)】

    <原始论文:BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translat ...

  8. Pytorch:Transformer(Encoder编码器-Decoder解码器、多头注意力机制、多头自注意力机制、掩码张量、前馈全连接层、规范化层、子层连接结构、pyitcast) part1

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) Encoder编码器-Decoder解码器框架 + Atten ...

  9. 变分自编码器(VAE)直观理解and 数学推导

    这两天在学习VAE相关的内容,感觉云里雾里emm-写个博客记录一下~ 内容借鉴并综合了以下带佬: 变分自编码器VAE:原来是这么一回事 半小时理解变分自编码器 花式解释AutoEncoder与VAE ...

最新文章

  1. -- HTML标记大全参考手册[推荐]
  2. Linux中搭建一个ftp服务器详解
  3. Django模型(一)
  4. 09(maven+SSH)网上商城项目实战之使用jersey实现应用服务器和图片服务器分离...
  5. hdu5489 Removed Interval dp+线段树优化
  6. 提高你的迅雷速度,绝对值得一看
  7. 燕十八MySQL优化学习笔记
  8. 4、STYLE-------------labview宝典
  9. 邹博机器学习代码分析(1)-线性回归
  10. 浙大PAT 1051
  11. depot_tools
  12. html怎么把字做成动画效果,用纯CSS实现文字的动态效果
  13. 如何学习理财知识,零基础怎么学习理财
  14. android 上最强的计算器,史上最强超级计算器发布!完爆科学计算器
  15. TinyOS论文11:Sentomist
  16. 【DevOps】我们忽视了Daily Build(每日构建)吗?
  17. 科普|未来 3~5 年内,哪个方向的机器学习人才最紧缺?
  18. 修改hosts文件破解IDM和acrobat xI
  19. u盘安装红旗linux操作系统,制作红旗8的系统安装u盘的方法
  20. 经典正则表达式 (“转自清清月儿”)

热门文章

  1. LuoGu_2947 [USACO09MAR] 向右看齐 Look Up
  2. 8个企业微信的功能,你知道几个,喜欢用哪个?
  3. 2021好看的新年雪花飘倒计时单页网站源码分享
  4. Web后台管理系统框架模板
  5. 一站式、整套智能家居解决方案——HomeKit?绿米?华为还是智汀?
  6. 最详细JMX远程连接服务器Zookeeper失败问题踩坑和总结
  7. 某单位分配到一个C类网络地址,其网络号为218.7.8.0,现在该单位共有4个不同的部门,每个部门最多25台主机,要求进行子网划分
  8. 看完这篇Linux基本的操作你就会了
  9. 谷歌浏览器中英文切换
  10. 超牛逼!这款开源性能监控系统真强大~