自编码器与变分自编码器在深度学习中的应用

在当前这个大数据时代,生活在一个数据泛滥的世界中。尽管机器学习算法主要利用了标记数据集,但这些数据集是稀有且昂贵的。大部分生成的数据都是非结构化和未标记的,因此,机器学习社区应该更多地关注无监督学习算法,以解锁人工智能和机器学习的真正潜力。

无监督学习的重要性

“如果智能是一个蛋糕,那么无监督学习就是蛋糕本身,监督学习就是蛋糕上的糖霜,强化学习则是蛋糕上的樱桃” —— Yann LeCunn。为什么不吃掉整个蛋糕呢?

数据表示学习简介

数据的表示实际上是一个映射过程。如果有一个数据点x ∈ X,并且有一个函数f: X → Z,对于某个数据空间Z,那么f就是一个表示。新的点f(x) = z ∈ Z有时被称为x的表示。一个好的表示可以使下游任务变得更容易。

自编码器简介

自编码器也被称为自编码器,是一种训练以复制自身输入的网络。它们属于无监督学习算法的范畴,实际上,一些研究者认为自编码器是自监督算法,因为对于训练样本x,标签就是x本身。但在一般意义上,它们被认为是无监督的,因为没有分类或回归标签。

如果自编码器完美地做到这一点,那么输出向量x'就等于输入向量x。自编码器被设计为一个特殊的两部分结构,编码器和解码器。

AE = Decoder(Encoder(x))

模型使用重建损失进行训练,目标是最小化x和x'之间的差异。可以将重建损失定义为MSE(x, x'),如果输入是实数值。z的维度通常小于x,这就是为什么自编码器在深度学习中也被称为瓶颈神经网络。正在迫使自编码器压缩知识表示。

以下是一些首次在机器学习世界中引入自编码器的研究论文:

  • A learning algorithm for Boltzmann machines, DH Ackley, GEHinton, TJ Sejnowski. Cognitive science, 1985. 描述了一个简单的通过自监督训练的神经网络。
  • Learning representations by back-propagating errors, D. Rumelhart, Geoffrey E. Hinton, R. J. Williams. Nature, 1986. “描述了一种新的学习过程,反向传播,用于类似神经元单元的网络。”
  • Connectionist learning procedures, GE Hinton. Machine learning, 1990. 描述了“自监督”的瓶颈神经网络。

变分自编码器简介

变分自编码器是深度学习中利用采样技术和Kullback-Leibler正则化的自编码器。变分自编码器的目标是使潜在空间更平滑,即x的微小变化会导致潜在空间z的微小变化,z的微小变化会导致x的微小变化。一个平滑的潜在空间需要有合理的点才能更有效和准确,这就是变分自编码器试图实现的。

在变分自编码器中,编码器不仅输出z,还输出mu和sigma。然后采样操作从这些参数中选择z,像往常一样,解码器接受z作为输入。

一个好的采样技术可以很好地重建数据点,也可以很好地重建接近数据点的点。这个过程确保了每个接近潜在位置的点(编码的输入x,即z均值)都可以被解码成类似[x]的东西,因此迫使潜在空间具有连续的意义。潜在空间中的任何两个接近点都会解码出非常相似的图像。连续性,结合潜在空间的低维度,迫使潜在空间的每个方向都编码数据变化的有意义的轴,使潜在空间非常有结构,因此非常适合通过概念向量进行操作。

变分自编码器的正则化

“变分自编码器的参数通过两个损失函数进行训练:一个重建损失,迫使解码样本与初始输入匹配,以及一个正则化损失,帮助学习良好形成的潜在空间并减少对训练数据的过拟合。” —— Chollet。

Kullback-Leibler散度

Kullback-Leibler散度KL(p||q)是统计学中衡量两个分布p和q之间差异的度量,因此,当p和q不同时,它是一个较大的数字,当它们相似时,接近零。

变分自编码器的变种

  • BetaVAE(更强的正则化以获得解耦表示)。
  • Contractive AE(通过不同的正则化实现平滑)。
  • Conditional VAE(解码器映射(z, c) → x,其中c是选择的,例如c指定生成哪个数字,z指定风格)。

自编码器的应用

  • 去噪图像(卷积自编码器)。
  • 时间序列上的异常检测(1D卷积自编码器)。
  • 通过异常检测进行网络入侵检测(仅变分自编码器编码器)。
  • 生成视频游戏关卡和音乐(仅变分自编码器解码器)。
Q1. 无监督学习中的自编码器是什么?
A. 自编码器是无监督学习中的能手,它们在没有被告知要寻找什么的情况下发现数据中的重要模式。
Q2. 自编码器是什么,为什么它被称为无监督学习?
A. 自编码器就像一个计算机工具,它可以独立学习,不需要老师。它被称为无监督学习,因为它直接从数据中学习,不需要有人告诉它是否正确或错误。
Q3. 自编码器是在没有监督的情况下训练的吗?
A. 是的,自编码器NLP通过自己学习,不需要有人指导它们。它们在不需要标签或指令的情况下找出最佳的数据表示方式。
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485