深度神经网络


深度神经网络 (DNN) 是一种在输入层和输出层之间具有多个隐藏层的 ANN。与浅层 ANN 类似,DNN 可以对复杂的非线性关系进行建模。

神经网络的主要目的是接收一组输入,对它们执行逐渐复杂的计算,并给出输出以解决现实世界的问题,例如分类。我们限制自己只能前馈神经网络。

我们在深度网络中有输入、输出和顺序数据流。

深层网络

神经网络广泛应用于监督学习和强化学习问题。这些网络基于一组相互连接的层。

在深度学习中,隐藏层的数量(大部分是非线性的)可能很大;说大约1000层。

深度学习模型比普通的机器学习网络产生更好的结果。

我们主要使用梯度下降方法来优化网络并最小化损失函数。

我们可以使用Imagenet(一个包含数百万张数字图像的存储库)将数据集分类为猫和狗等类别。除了静态图像之外,DL 网络越来越多地用于动态图像以及时间序列和文本分析。

训练数据集是深度学习模型的重要组成部分。此外,反向传播是训练深度学习模型的主要算法。

深度学习用于训练具有复杂输入输出转换的大型神经网络。

深度学习的一个例子是将照片映射到照片中人物的姓名,就像在社交网络上所做的那样,用短语描述图片是深度学习的另一项最新应用。

深度学习映射

神经网络是具有 x1、x2、x3 等输入的函数,这些输入在两个(浅层网络)或多个中间操作(也称为层(深层网络))中转换为 z1、z2、z3 等输出。

权重和偏差随层而变化。“w”和“v”是神经网络各层的权重或突触。

深度学习的最佳用例是监督学习问题。在这里,我们有大量的数据输入和一组所需的输出。

反向传播算法

这里我们应用反向传播算法来获得正确的输出预测。

深度学习最基本的数据集是 MNIST,这是一个手写数字的数据集。

我们可以使用 Keras 深度训练卷积神经网络,以对该数据集中的手写数字图像进行分类。

神经网络分类器的触发或激活会产生一个分数。例如,为了将患者分为患病和健康,我们考虑身高、体重、体温、血压等参数。

高分意味着患者患病,低分意味着患者健康。

输出层和隐藏层中的每个节点都有自己的分类器。输入层接受输入并将其分数传递到下一个隐藏层以进一步激活,这样一直持续到达到输出。

这种从输入到输出从左到右向前的过程称为前向传播。

神经网络中的信用分配路径(CAP)是从输入到输出的一系列转换。CAP 详细阐述了输入和输出之间可能的因果关系。

给定前馈神经网络的 CAP 深度或 CAP 深度是隐藏层的数量加一(因为包含输出层)。对于循环神经网络,信号可能多次传播通过一层,CAP 深度可能是无限的。

深网和浅网

浅层学习和深度学习没有明确的深度界限;但大多数人认为,对于具有多个非线性层的深度学习,CAP 必须大于 2。

神经网络中的基本节点是模仿生物神经网络中神经元的感知。然后我们有多层感知或 MLP。每组输入都由一组权重和偏差进行修改;每条边都有独特的权重,每个节点都有独特的偏差。

神经网络的预测精度取决于其权重和偏差。

提高神经网络精度的过程称为训练。将前向支撑网的输出与已知正确的值进行比较。

成本函数或损失函数是生成的输出与实际输出之间的差值。

训练的目的是在数百万个训练样本中使训练成本尽可能小。为此,网络会调整权重和偏差,直到预测与正确的输出匹配。

一旦训练良好,神经网络就有可能每次都做出准确的预测。

当模式变得复杂并且您希望计算机识别它们时,您必须采用神经网络。在这种复杂的模式场景中,神经网络优于所有其他竞争算法。

现在的 GPU 可以比以往更快地训练它们。深度神经网络已经彻底改变了人工智能领域

事实证明,计算机擅长执行重复计算并遵循详细指令,但不擅长识别复杂模式。

如果存在简单模式识别的问题,支持向量机(SVM)或逻辑回归分类器可以很好地完成工作,但随着模式复杂性的增加,除了深度神经网络之外别无选择。

因此,对于像人脸这样的复杂图案,浅层神经网络会失败,别无选择,只能采用更多层的深层神经网络。深层网络能够通过将复杂的模式分解为更简单的模式来完成其工作。例如人脸;深网将使用边缘来检测嘴唇、鼻子、眼睛、耳朵等部位,然后将它们重新组合在一起形成人脸

正确预测的准确性已经变得如此准确,以至于最近在谷歌模式识别挑战赛上,深度网络击败了人类。

这种分层感知器网络的想法已经存在了一段时间。在这个领域,深度网络模仿人脑。但这样做的一个缺点是它们需要很长时间来训练,这是硬件限制

然而,最近的高性能 GPU 已经能够在一周内训练如此深的网络;而快速 CPU 可能需要数周甚至数月才能完成同样的任务。

选择深度网络

如何选择深网?我们必须决定是否要构建分类器,或者是否试图在数据中寻找模式,以及是否要使用无监督学习。为了从一组未标记的数据中提取模式,我们使用受限玻尔兹曼机或自动编码器。

选择深度网络时请考虑以下几点 -

  • 对于文本处理、情感分析、解析和名称实体识别,我们使用循环网络或递归神经张量网络或 RNTN;

  • 对于任何在字符级别运行的语言模型,我们使用循环网络。

  • 对于图像识别,我们使用深度置信网络 DBN 或卷积网络。

  • 对于物体识别,我们使用 RNTN 或卷积网络。

  • 对于语音识别,我们使用循环网络。

一般来说,深度置信网络和具有修正线性单元或 RELU 的多层感知器都是分类的不错选择。

对于时间序列分析,始终建议使用循环网络。

神经网络已经存在 50 多年了;但直到现在他们才崭露头角。原因是它们很难训练;当我们尝试使用反向传播的方法训练它们时,我们会遇到梯度消失或爆炸的问题。当发生这种情况时,训练需要更长的时间,并且准确性会退居二线。在训练数据集时,我们不断计算成本函数,它是一组标记训练数据的预测输出与实际输出之间的差异。然后通过调整权重和偏差值直到最低值来最小化成本函数获得。训练过程使用梯度,即成本随着权重或偏差值的变化而变化的速率。

受限玻尔兹曼网络或自动编码器 - RBN

2006年,在解决梯度消失问题上取得了突破。Geoff Hinton 设计了一种新颖的策略,促进了受限玻尔兹曼机 - RBM(浅两层网络)的发展。

第一层是可见层,第二层是隐藏层。可见层中的每个节点都连接到隐藏层中的每个节点。该网络被称为受限网络,因为同一层内的任何两层都不允许共享连接。

自动编码器是将输入数据编码为向量的网络。它们创建原始数据的隐藏或压缩表示。这些向量可用于降维;该向量将原始数据压缩为较少数量的基本维度。自动编码器与解码器配对,允许基于其隐藏表示重建输入数据。

RBM 在数学上相当于双向转换器。前向传递接受输入并将其转换为一组对输入进行编码的数字。同时向后传递获取这组数字并将它们转换回重构的输入。训练有素的网络可以高精度地进行反向支撑。

在这两个步骤中,权重和偏差都起着关键作用。它们帮助 RBM 解码输入之间的相互关系,并确定哪些输入对于检测模式至关重要。通过前向和后向传递,RBM ​​被训练以使用不同的权重和偏差重新构造输入,直到输入和重建尽可能接近。RBM 的一个有趣的方面是数据不需要被标记。事实证明,这对于照片、视频、语音和传感器数据等现实世界的数据集非常重要,所有这些数据往往都是未标记的。RBM 不再由人类手动标记数据,而是自动对数据进行排序;通过适当调整权重和偏差,RBM ​​能够提取重要特征并重建输入。RBM 是特征提取器神经网络系列的一部分,旨在识别数据中的固有模式。这些也称为自动编码器,因为它们必须编码自己的结构。

成果管理制结构

深度信念网络 - DBN

深度信念网络(DBN)是通过结合 RBM 并引入巧妙的训练方法而形成的。我们有一个新模型最终解决了梯度消失的问题。Geoff Hinton 发明了 RBM 和 Deep Belief Nets 作为反向传播的替代方案。

DBN 在结构上与 MLP(多层感知器)相似,但在训练方面却截然不同。正是训练使 DBN 能够超越浅层网络

DBN 可以可视化为一堆 RBM,其中一个 RBM 的隐藏层是其上方 RBM 的可见层。第一个 RBM 经过训练以尽可能准确地重建其输入。

第一个 RBM 的隐藏层被视为第二个 RBM 的可见层,并且使用第一个 RBM 的输出来训练第二个 RBM。迭代这个过程直到网络中的每一层都被训练完毕。

在 DBN 中,每个 RBM 学习整个输入。DBN 通过连续微调整个输入来实现全局工作,模型会像相机镜头慢慢聚焦图片一样缓慢改进。一堆 RBM 的性能优于单个 RBM,就像多层感知器 MLP 优于单个感知器一样。

在此阶段,RBM ​​已检测到数据中的固有模式,但没有任何名称或标签。为了完成 DBN 的训练,我们必须向模式引入标签,并通过监督学习对网络进行微调。

我们需要一个非常小的标记样本集,以便特征和模式可以与名称相关联。这个小标签数据集用于训练。与原始数据集相比,这组标记数据可能非常小。

权重和偏差略有改变,导致网络对模式的感知发生微小变化,并且通常会导致总准确度略有增加。

与浅层网络相比,使用 GPU 也可以在合理的时间内完成训练,给出非常准确的结果,而且我们也看到了梯度消失问题的解决方案。

生成对抗网络 - GAN

生成对抗网络是由两个网络组成的深度神经网络,一个网络与另一个网络相互竞争,因此得名“对抗性”网络。

蒙特利尔大学研究人员在 2014 年发表的一篇论文中介绍了 GAN。Facebook 的人工智能专家 Yann LeCun 在提到 GAN 时称对抗性训练是“过去 10 年机器学习领域最有趣的想法”。

GAN 的潜力是巨大的,因为网络扫描可以学习模仿任何数据分布。GAN 可以被教导在任何领域创建与我们自己的世界惊人相似的平行世界:图像、音乐、演讲、散文。从某种程度上来说,他们是机器人艺术家,他们的作品令人印象深刻。

在 GAN 中,一个神经网络(称为生成器)生成新的数据实例,而另一个神经网络(称为判别器)则评估它们的真实性。

假设我们正在尝试生成手写数字,例如 MNIST 数据集中的数字,该数据取自现实世界。当显示来自真实 MNIST 数据集的实例时,鉴别器的工作是将它们识别为真实的。

现在考虑 GAN 的以下步骤 -

  • 生成器网络以随机数形式获取输入并返回图像。

  • 生成的图像与从实际数据集中获取的图像流一起作为鉴别器网络的输入。

  • 鉴别器接收真实图像和假图像并返回概率,即 0 到 1 之间的数字,其中 1 代表真实性的预测,0 代表假性。

  • 所以你有一个双重反馈循环 -

    • 鉴别器处于与图像基本事实的反馈循环中,这是我们所知道的。

    • 生成器与鉴别器处于反馈环路中。

递归神经网络 - RNN

RNN是一种数据可以在任何方向流动的神经网络。这些网络用于语言建模或自然语言处理 (NLP) 等应用。

RNN 的基本概念是利用顺序信息。在正常的神经网络中,假设所有输入和输出彼此独立。如果我们想预测句子中的下一个单词,我们必须知道它之前有哪些单词。

RNN 被称为循环神经网络,因为它们对序列的每个元素重复相同的任务,并且输出基于之前的计算。因此,RNN 可以说具有“记忆”,可以捕获有关先前计算内容的信息。理论上,RNN 可以使用很长序列中的信息,但实际上,它们只能回顾几个步骤。

循环神经网络

长短期记忆网络 (LSTM) 是最常用的 RNN。

RNN 与卷积神经网络一起被用作模型的一部分来生成未标记图像的描述。令人惊奇的是,这似乎很有效。

卷积深度神经网络 - CNN

如果我们增加神经网络的层数以使其更深,则会增加网络的复杂性,并允许我们对更复杂的函数进行建模。然而,权重和偏差的数量将呈指数级增长。事实上,对于普通的神经网络来说,学习如此困难的问题是不可能的。这就产生了一个解决方案:卷积神经网络。

CNN 广泛应用于计算机视觉领域;也已应用于自动语音识别的声学建模中。

卷积神经网络背后的想法是穿过图像的“移动滤波器”的想法。这种移动滤波器或卷积适用于节点的某个邻域,例如可以是像素,其中应用的滤波器是 0.5 x 节点值 -

著名研究员 Yann LeCun 是卷积神经网络的先驱。Facebook 作为面部识别软件就使用了这些网络。CNN 一直是机器视觉项目的首选解决方案。卷积网络有很多层。2015 年,在 Imagenet 挑战赛中,机器在物体识别方面击败了人类。

简而言之,卷积神经网络(CNN)是多层神经网络。这些层有时多达 17 层或更多,并假设输入数据是图像。

卷积神经网络

CNN 大大减少了需要调整的参数数量。因此,CNN 可以有效地处理高维原始图像。