卷积神经网络、受限玻尔兹曼机和自动编码器之间有什么区别?

机器算法验证 神经网络 深度学习 卷积神经网络 自动编码器 受限玻尔兹曼机
2022-02-02 17:58:23

最近我一直在阅读有关深度学习的内容,但我对这些术语(或者说技术)感到困惑。和有什么区别

  • 卷积神经网络(CNN),
  • 受限玻尔兹曼机 (RBM) 和
  • 自动编码器?
4个回答

自动编码器是一个简单的 3 层神经网络,其中输出单元直接连接回输入单元例如在这样的网络中:

在此处输入图像描述

output[i]input[i]对每个都有优势i通常,隐藏单元的数量远少于可见(输入/输出)单元的数量。结果,当您通过这样的网络传递数据时,它首先压缩(编码)输入向量以“适应”较小的表示,然后尝试将其重构(解码)回来。训练的任务是最小化错误或重构,即为输入数据找到最有效的紧凑表示(编码)。

RBM 有类似的想法,但使用随机方法。代替确定性(例如逻辑或 ReLU),它使用具有特定(通常是高斯的二进制)分布的随机单位。学习过程包括吉布斯采样的几个步骤(传播:给定可见的样本隐藏;重建:给定隐藏的样本可见;重复)和调整权重以最小化重建误差。

在此处输入图像描述

RBM 背后的直觉是有一些可见的随机变量(例如来自不同用户的电影评论)和一些隐藏的变量(例如电影类型或其他内部特征),训练的任务是找出这两组变量实际上是如何相互连接(有关此示例的更多信息,请参见此处)。

卷积神经网络与这两者有些相似,但它们不是在两层之间学习单个全局权重矩阵,而是旨在找到一组局部连接的神经元。CNN 主要用于图像识别。它们的名称来自“卷积”运算符或简称为“过滤器”。简而言之,过滤器是一种通过简单更改卷积核来执行复杂操作的简单方法。应用高斯模糊内核,你会得到它的平滑。应用 Canny 内核,你会看到所有的边缘。应用 Gabor 核来获得梯度特征。

在此处输入图像描述

(图片来自这里

卷积神经网络的目标不是使用预定义的内核之一,而是学习特定于数据的内核这个想法与自动编码器或 RBM 相同——将许多低级特征(例如用户评论或图像像素)转换为压缩的高级表示(例如电影类型或边缘)——但现在权重仅从神经元学习在空间上彼此靠近。

在此处输入图像描述

这三个模型都有各自的用例、优点和缺点,但最重要的属性可能是:

  1. 自动编码器是最简单的。它们直观易懂、易于实现和推理(例如,为它们找到好的元参数比为 RBM 更容易)。
  2. RBM 具有生成性。也就是说,与仅区分某些数据向量以支持其他数据向量的自动编码器不同,RBM ​​还可以生成具有给定联合分布的新数据。它们也被认为功能更丰富、更灵活。
  3. CNN 是非常具体的模型,主要用于非常具体的任务(尽管非常流行的任务)。当今,图像识别中的大多数顶级算法都以某种方式基于 CNN,但在该领域之外,它们几乎不适用(例如,使用卷积进行电影评论分析的原因是什么?)。

UPD。

降维

当我们将某个对象表示为元素的向量时,我们说这是维空间中的向量。因此,降维是指以这样一种方式细化数据的过程,即每个数据向量被转换为维空间(具有个元素的向量)中的可能最常见的方法是PCA粗略地说,PCA 找到数据集的“内部轴”(称为“组件”)并按重要性对它们进行排序。第一nnxxmmm<nm然后将最重要的组件用作新的基础。这些组件中的每一个都可以被认为是一个高级特征,比原始轴更好地描述数据向量。

两者——自动编码器和 RBM——都做同样的事情。维空间中获取向量,维空间,试图保留尽可能多的重要信息,同时去除噪声。如果自动编码器/RBM 的训练成功,则结果向量的每个元素(即每个隐藏单元)都代表了关于对象的一些重要信息——图像中眉毛的形状、电影的类型、科学文章中的研究领域等。将大量噪声数据作为输入,并以更有效的表示形式生成更少的数据。nm

深层架构

那么,如果我们已经有了 PCA,为什么还要提出自动编码器和 RBM 呢?事实证明,PCA 只允许数据向量的线性变换也就是说,具有个主成分,您只能表示向量这已经很好了,但还不够。无论如何,您将 PCA 应用于数据多少次 - 关系将始终保持线性。mc1..cmx=i=1mwici

另一方面,自动编码器和 RBM 本质上是非线性的,因此它们可以学习可见单元和隐藏单元之间更复杂的关系。而且,它们可以堆叠,这使得它们更加强大。例如,您用可见单元和个隐藏单元训练 RBM,然后将另一个具有个可见单元和个隐藏单元的 RBM 放在第一个单元的顶部并对其进行训练,等等。与自动编码器完全相同。nmmk

但你不只是添加新层。在每一层上,您都尝试从前一层中学习数据的最佳表示:

在此处输入图像描述

在上图中,有一个这样一个深度网络的例子。我们从普通像素开始,然后是简单的过滤器,然后是面部元素,最后是整个面部!这就是深度学习的精髓。

现在请注意,在此示例中,我们使用图像数据并顺序获取越来越大的空间接近像素区域。听起来是不是很相似?是的,因为它是深度卷积网络的一个例子。无论是基于自动编码器还是 RBM,它都使用卷积来强调局部性的重要性。这就是 CNN 与自动编码器和 RBM 有所不同的原因。

分类

这里提到的模型本身都不能用作分类算法。相反,它们用于预训练——学习从低级和难以消费的表示(如像素)到高级表示的转换。一旦对深度(或者可能不是那么深)网络进行了预训练,输入向量就会被转换为更好的表示形式,并且最终将得到的向量传递给真正的分类器(例如 SVM 或逻辑回归)。在上图中,这意味着在最底部还有一个实际进行分类的组件。

所有这些架构都可以解释为神经网络。AutoEncoder 和卷积网络之间的主要区别在于网络硬连线的级别。卷积网络几乎是硬连线的。卷积操作在图像域中几乎是局部的,这意味着神经网络视图中的连接数量更加稀疏。图像域中的池化(下采样)操作也是神经域中的一组硬连线神经连接。这种拓扑对网络结构的约束。给定这样的限制,CNN 的训练会学习到这个卷积操作的最佳权重(实际上有多个过滤器)。CNN 通常用于图像和语音任务,其中卷积约束是一个很好的假设。

相比之下,自动编码器几乎没有指定网络拓扑。它们更通用。这个想法是找到好的神经变换来重建输入。它们由编码器(将输入投影到隐藏层)和解码器(将隐藏层重新投影到输出)组成。隐藏层学习一组潜在特征或潜在因素。线性自动编码器与 PCA 跨越相同的子空间。给定一个数据集,他们学习基数来解释数据的基本模式。

RBM 也是一种神经网络。但对网络的解释完全不同。RBM 将网络解释为不是前馈,而是一个二分图,其想法是学习隐藏变量和输入变量的联合概率分布。它们被视为图形模型。请记住,AutoEncoder 和 CNN 都学习确定性函数。另一方面,RBM ​​是生成模型。它可以从学习的隐藏表示中生成样本。有不同的算法来训练 RBM。但是,归根结底,在学习 RBM 之后,您可以使用它的网络权重将其解释为前馈网络。

RBM 可以看作是某种概率自动编码器。实际上,已经证明在某些条件下它们是等价的。

然而,展示这种等价性要比仅仅相信它们是不同的野兽要困难得多。确实,当我开始仔细观察时,我发现这三者之间很难找到很多相似之处。

例如,如果你写下自动编码器、RBM 和 CNN 实现的功能,你会得到三个完全不同的数学表达式。

关于 RBM,我不能告诉你太多,但自动编码器和 CNN 是两种不同的东西。自编码器是一种以无监督方式训练的神经网络。自动编码器的目标是通过学习编码器(将数据转换为相应的紧凑表示)和解码器(重构原始数据)来找到数据的更紧凑表示。自编码器(最初是 RBM)的编码器部分已被用于学习更深架构的良好初始权重,但还有其他应用。本质上,自动编码器学习数据的聚类。相比之下,CNN 一词是指一种神经网络,它使用卷积算子(在用于图像处理任务时通常是 2D 卷积)从数据中提取特征。在图像处理、滤镜、与图像卷积的图像会自动学习以解决手头的任务,例如分类任务。训练标准是回归/分类(监督)还是重建(无监督)与卷积作为仿射变换的替代方案的想法无关。你也可以有一个 CNN 自动编码器。