一文弄懂自编码器 -- Autoencoders

1. 引言

近年来,自编码器(Autoencoder)一词在许多人工智能相关的研究论文、期刊和学位论文中被频繁提及。自动编码器于1980年推出,是一种用于神经网络的无监督学习技术,可以从未被标注的训练集中学习。

本文重点介绍自编码器的概念、相关变体及其应用,闲话少说,我们直接开始吧!

2. 原理介绍

自编码器神经网络是一种无监督的机器学习算法,它的主要目的为将输入层的数据压缩成较短的格式,我们也可以称为潜在空间的特征表示,并通过解码将上述特征解码成与原始输入最为相近的形式。一文弄懂自编码器 -- Autoencoders_第1张图片
这样我们在使用原始输入图像的时候,就可以使用维度较小的压缩特征经过解码器后进行替代。这听着是不是很熟悉,我们有一个类似的机器学习算法,即PCA做同样的任务。那么为什么我们需要自动编码器呢?

3. 自动编码器的优势

自动编码器相对PCA算法的优势归纳如下:
一文弄懂自编码器 -- Autoencoders_第2张图片

  • 自编码器可以通过多层非线性激活函数来具备特征的非线性变换。
  • 自编码器可以使用卷积层来学习更适合视频、图像序列的数据。
  • 自编码器可以利用来自另一个模型的预训练层通过迁移学习来增强编码器/解码器

3. 自动编码器网络结构

一般来说,自动编码器主要由三部分过程,即encoder,code和decoder。
图示如下:
一文弄懂自编码器 -- Autoencoders_第3张图片
接着我们来介绍这三部分的作用:

  • 编码器Encoder:网络的这一部分作用为将输入压缩为潜在空间表示。编码器将输入图像编码为降维的压缩表示。
  • 压缩表示Code:网络的这一部分表示送到解码器的压缩输入
  • 解码器Decoder:该层将输入的压缩表示解码回原始尺寸。解码图像是原始图像的有损重建,并且它是从潜在空间进行重建的。

编码器和解码器之间的层,即压缩表示Code也被称为瓶颈Bottleneck。这是一种精心的设计,可以决定观测数据的哪些方面是主要信息,哪些方面是可以丢弃的。

5. 卷积自编码器

自编码器有多种类别,首先我们来介绍在图像领域最为常用的卷积自编码器,我们观察以下图像:
一文弄懂自编码器 -- Autoencoders_第4张图片
自编码器没有考虑这样一个场景,即一个信号可以被视为其他信号的总和。卷积自编码器使用卷积算子来克服这一问题。他们通过学习将输入编码为一组简单的信号,然后尝试从中重建输入,修改图像的几何形状或颜色信息。它们是卷积网络在无监督学习中的开创性工作之一。一旦经过训练,这些编码器可以用于任何其他图像作为输入,以便提取压缩后的特征。

6. 稀疏自编码器

稀疏自编码器是另一种基于神经网络的自编码器模型,图示如下:
一文弄懂自编码器 -- Autoencoders_第5张图片
稀疏自编码器的目标是通过学习到的稀疏表示来重构输入数据。与传统自编码器相比,稀疏自编码器引入了稀疏性惩罚项,以促使隐藏层神经元的激活更加稀疏。通过强制隐藏层神经元的稀疏激活,稀疏自编码器能够更好地捕捉输入数据的重要特征。

7. 收缩自编码器

收缩自编码器是一种无监督的深度学习技术,有助于神经网络对未标记的训练数据进行编码。这是通过构建一个损失项来实现的,该损失项惩罚我们的隐藏层激活相对于输入训练样本的大导数,本质上惩罚输入中的小变化导致编码空间中的大变化的情况。

8. 图像着色

自编码器的应用之一就是图像着色,示例如下:
一文弄懂自编码器 -- Autoencoders_第6张图片
自编码器用于将任何黑白图片转换为彩色图像。根据图片中的内容,可以判断出对应目标应该是什么颜色。

9. 维度压缩

重建的图像与我们的输入相同,但具有更小的尺寸。它有助于提供具有减小的像素值的相似图像。
一文弄懂自编码器 -- Autoencoders_第7张图片

10. 图像去噪

自动编码器看到的输入不是原始输入,而是随机添加噪声后的版本。因此训练去噪自编码器以从含噪声版本重建原始输入。
一文弄懂自编码器 -- Autoencoders_第8张图片

11. 图像去水印

自编码器还可用于去除图像中的水印,或在拍摄视频或电影时去除其他文字水印。
一文弄懂自编码器 -- Autoencoders_第9张图片

12. 总结

本文重点介绍了自编码器的概念,网络结构以及相关变体,并给出了其在工业界的相关应用。

您学废了嘛?

你可能感兴趣的:(深度学习,计算机视觉,人工智能,深度学习,机器学习)