🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎
📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃
🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝
📣系列专栏 - 机器学习【ML】 自然语言处理【NLP】 深度学习【DL】
🖍foreword
✔说明⇢本人讲解主要包括Python、机器学习(ML)、深度学习(DL)、自然语言处理(NLP)等内容。
如果你对这个系列感兴趣的话,可以关注订阅哟👋
文章目录
通过 MLP、CNN、RNN、ANN 等示例探索 10 大深度学习算法列表,以学习和掌握深度学习技能。
当用问题提问 Siri 或 Alexa 时,人们常常想知道机器如何达到超人的准确性。这一切都归功于深度学习——数据科学中令人难以置信的令人生畏的领域。这个深度学习技术的新领域受到人脑中神经网络功能的启发。它导致了令人兴奋的人工智能应用的发展,例如语言识别、自动驾驶汽车和计算机视觉机器人等。假设您是那些对深度学习的无限可能性着迷的人之一,并且好奇地想了解流行的深度学习应用程序幕后的流行深度学习算法。在这种情况下,本文适合您。
在我们深入研究深度学习模型的技术细节之前,让我们把要务放在首位,了解深度学习如何被证明比传统机器学习更有优势。
为什么深度学习算法优于传统机器学习算法?![](https://i-blog.csdnimg.cn/blog_migrate/b604bf088d0c22accd7cbe5f1ed1011c.png)
图片来源——Andrew Ng 的幻灯片
上图描绘了传统机器学习算法和深度学习技术在数据量上的性能比较。从图表中可以明显看出,深度学习算法的性能随着数据量的增加而增加。相比之下,对于机器学习中的传统算法,性能有所上升但保持不变(平线)。
根据国际数据公司 (IDC) 的数据,到 2025 年,全球数据将增长 61%,达到 175 泽字节!越来越多地使用社交媒体平台、移动应用程序等会产生大量数据。
随着数据的增加和大部分数据是非结构化(图像、视频、音频等)类型,深度学习算法在数据革命时代发挥着至关重要的作用。
什么是深度学习?
想象一下,当你还是个孩子的时候,你被要求学习英语字母表,书中的彩色图片显示字母 A 的 Apple 图像,字母 B 的 Ball 图像,等等。当目标只是学习字母表时,你认为他们为什么会有这些图像?
图片来源:Alfred Pasieka/SPL/Getty
我们人类有一种从视觉上学习概念的本领,我们倾向于通过参考这些视觉来记住它们。这就是为什么如果你不这样做,你很可能会在几天后忘记你在认证考试中写下的答案再次修改它们。同样,如果你在 Netflix 上狂看了一部情景喜剧,如果你反复观看,你很可能会记住很长一段时间的对话和场景。:D
深度学习算法简介
在我们继续讨论机器学习中的深度学习模型列表之前,让我们了解深度学习算法的结构和工作原理以及著名的 MNIST 数据集。人脑是由数十亿个神经元组成的网络,有助于代表大量知识。深度学习还使用与大脑神经元相同的类比来处理信息和识别信息。让我们用一个例子来理解这一点。
图片来源——维基百科
上图取自非常著名的MNIST数据集,可以一瞥数字的视觉表示。MNIST 数据集广泛用于许多图像处理技术。现在,让我们观察一下每个数字如何以不同方式书写的图像。我们作为人类可以很容易地理解这些数字,即使它们被稍微调整或写成不同,因为我们已经写过它们并看过它们数百万次。但是如果你正在构建一个图像处理系统,你将如何让计算机识别这些数字呢?这就是深度学习发挥作用的地方!
什么是深度学习中的神经网络?
可以直观地表示上图中神经网络cas 的基本结构,主要有三个组成部分 -
1. 输入层
2.隐藏层
3.输出层
上图只显示了一个隐藏层,我们可以称之为人工神经网络或神经网络。另一方面,深度学习有几个隐藏层,这就是它得名“深度”的地方。这些隐藏层相互连接,用于使我们的模型学习给出最终输出。
图片来源 - neuralnetworksanddeeplearning.com
每个具有信息的节点以输入的形式传递,节点将输入与随机权重值相乘并在计算之前添加偏差。然后应用非线性或激活函数来确定哪个特定节点将确定输出。
人工神经网络中使用的激活函数就像逻辑门一样工作。因此,如果我们要求或门的输出为 1。我们需要将输入值作为 0,1 或 1,0 传递。不同的深度学习模型使用不同的激活函数,有时使用激活函数的组合。我们在神经网络和深度学习结构上有相似之处。但是不能将神经网络用于图像、视频、传感器数据等非结构化数据。我们需要多个隐藏层(有时甚至数千个)来处理这些类型的数据,因此我们使用深度神经网络。
深度学习算法如何工作?
对于上面讨论的 MNIST 示例,我们可以将数字视为以 28x28 像素网格格式发送到隐藏层以进行数字识别的输入。隐藏层根据形状对数字(无论是 0,1,2,...9)进行分类。例如——如果我们考虑一个数字 8,它看起来像是有两个相互连接的结。转换为像素二进制文件 (0,1) 的图像数据作为输入发送到输入层。
层中的每个连接都有一个与之关联的权重,它决定了输入值的重要性。初始权重是随机设置的。
图片来源-CodeProject
如果需要降低重要性,我们也可以将负权重与这些联系相关联。使用反向传播算法在每次迭代后更新权重。
在某些情况下,可能没有突出的数字输入图像,这时必须执行多次迭代以通过增加隐藏层的数量来训练深度学习模型。最后,根据权重和迭代次数生成最终输出。
现在我们对深度学习中的输入和输出层有了基本的了解,接下来让我们了解一些主要的深度学习算法、它们的工作原理以及它们的用例。
顶级深度学习算法列表
1) 多层感知器 (MLP)
MLP是最基本的深度学习算法,也是最古老的深度学习技术之一。如果你是深度学习的初学者,刚刚开始探索它,我们建议你从 MLP 入手。MLP 可以称为前馈神经网络的一种形式。
MLP 深度学习算法是如何工作的?
-
MLP的工作原理与我们上面在 MNIST 数据示例中讨论的相同。第一层接受输入,最后一层根据隐藏层产生输出。每个节点都连接到下一层的每个节点,因此信息在多个层之间不断前馈,这就是它被称为前馈网络的原因。
-
MLP 使用一种称为反向传播的流行监督学习技术进行训练。
-
每个隐藏层都有一些权重(随机分配的值)。权重和输入的组合被提供给一个激活函数,该函数进一步传递到下一层以确定输出。如果我们没有达到预期的输出,我们会计算损失(错误)并回溯以更新权重。这是一个迭代过程,直到获得预测输出(试错)。这对于训练深度学习模型至关重要,因为正确的权重将决定您的最终输出。
-
MLP 普遍使用 sigmoid 函数、整流线性单元(ReLU) 和 tanh 作为激活函数。
MLP的应用
社交媒体网站(Instagram、Facebook)使用它来压缩图像数据。即使网络强度不是太强,这也有助于加载图像。
其他应用包括用于图像和语音识别、数据压缩以及分类问题。
MLP的优点
-
与基于概率的其他模型不同,它们不对概率密度函数 (PDF) 做出任何假设。
-
能够通过训练感知器直接提供决策功能。
MLP的缺点
-
由于硬限制传递函数,感知器只能以 0 和 1 的形式给出输出。
-
在逐层更新权重时,MLP 网络可能会陷入局部最小值,这会影响准确性。
2) 径向基函数网络 (RBFN)
顾名思义,它基于径向基函数(RBF) 激活函数。模型训练过程使用 RBFN 比 MLP 需要的时间略少。
RBFN 深度学习算法如何工作?
一种简单的 RBFN 类型是一个三层前馈神经网络,具有一个输入层、一个由多个 RBF 非线性激活单元组成的隐藏层和一个充当求和单元以给出最终输出的线性输出层。
RBFN 使用反复试验来确定网络的结构。这是分两步完成的——
-
在第一阶段,使用无监督学习算法(k 均值聚类)确定隐藏层的中心。
-
在下一步中,确定线性回归的权重。均方误差 (MSE) 用于确定误差,并相应地调整权重以最小化 MSE。
RBFN的应用
RBFN 用于分析股票市场价格并预测零售行业的销售价格,因为它们能够处理基于时间序列的数据。其他应用包括语音识别、时间序列分析、图像识别、自适应均衡、医学诊断等。
RBFN 的优点
1) 与 MLP 相比,训练过程更快,因为不涉及反向传播。
2)与MLP相比,隐藏层节点的作用更容易解释。
RBFN 的缺点
尽管我们已经看到 RBF 网络中的训练速度更快,但与多层感知器相比,分类需要时间。
原因是隐藏层中的每个节点在分类时都必须为输入样本向量计算RBF函数。
与 MLP 相比,隐藏层节点的作用很容易解释。
我们希望我们的模型能够识别物体,而不管它们位于什么表面和位置。
3)卷积神经网络(CNN)
在 CNN 中,数据处理涉及将图像分成许多重叠的图块,而不是将整个图像输入我们的网络。然后,我们在整个原始图像上使用一种称为滑动窗口的技术,并将结果保存为单独的小图片块。滑动窗口是一种蛮力解决方案,我们扫描周围的给定图像以检测所有可能部分的对象,一次每个部分,直到我们得到预期的对象。
CNN 深度学习算法如何工作?
CNN 的三个基本构建块
-
卷积层
-
池化层
-
全连接层
图片来源——维基百科
卷积层——它是卷积神经网络最重要的构建块。在层的参数中使用了一组过滤器(内核),可以将其可视化为层的神经元。它们具有加权输入并基于输入大小(固定正方形),也称为感受野;他们提供输出。
这些过滤器在应用于输入图像时会生成特征图。它是应用于上一层的一个过滤器的输出。一次移动一个图像像素,在整个前一层绘制一个给定的过滤器。对于每个位置,一个特定的神经元被激活,输出被收集在一个特征图中。
为了避免丢失原始图像分块的排列,我们将每个分块处理后得到的结果保存到与原始图像分块排列相同的网格中。
在卷积层中,输出是一个巨大的网格数组。为了减少这个数组的大小,我们使用算法最大池化进行下采样。基本思想是只保留数组中最重要的输入块。
全连接网络——数组只是一堆数值,所以我们可以将它们输入到一个全连接的神经网络中(所有神经元都连接)。CNN 最常用的是 ReLU 作为激活函数。
CNN的应用
Facebook、Instagram、社交媒体网站等使用 CNN 进行人脸检测和识别。所以当你试图在你的帖子中标记你的朋友时,你正在使用 CNN!
其他应用包括视频分析、图像识别、自然语言处理、预测等。
CNN的优点
与其他算法相比,CNN 结果更准确,特别是对于图像/对象识别用例。
CNN 的缺点
训练 CNN 需要高计算能力。因此,它们不具有成本效益。
4) 循环神经网络 (RNN)
您是否注意到,当您开始输入内容时,Google 会自动为您完成句子!现在,如果你正在考虑它是如何工作的,秘密就是 RNN。
递归神经网络在互连节点之间有定向循环。他们使用自己的记忆来处理下一个输入序列,以实现自动完成功能。RNN 可以接受一系列输入而没有大小限制,从而使它们独一无二。
RNN 深度学习算法如何工作?
RNN的基本结构
上图显示了RNN的每个时间状态的不同步骤。RNN 不仅考虑隐藏单元的权重来确定输出,而且还使用从其先前输入中学到的信息。RNN 是一种特殊类型的深度神经网络,由于其内部记忆,它可以记住这些字符。产生一个输出,它被复制并像循环一样提供回深度神经网络。这就是为什么输入可以根据连接层中先前的输入产生不同的输出。
让我们通过一个例子来理解这一点——
示例- 想象一下,如果您构建了一个前馈网络,它将单词作为输入并逐个字符地处理单词。您传递单词 ProjectPro,当您到达字符“o”时,它可能已经忘记了最后的字符“P”、“r”和“o”。
循环神经网络的应用
谷歌、搜索引擎和网络浏览器广泛使用 RNN 来自动完成单词和句子。其他应用包括文本检测和识别、分析视频帧等。
RNN 的优点
RNN 模型在整个训练期间记住信息的能力在时间序列预测中起着举足轻重的作用。
RNN 的缺点
-
由于其循环性质,计算是耗时的。
-
难以处理训练数据集中的长序列,主要是当我们使用 ReLU 或 tanh 作为激活函数时。
5) 长短期记忆网络 (LSTM)
LSTM 是一种特殊的 RNN,具有很强的学习长期依赖性的能力。让我们试着通过一个例子来理解长期依赖。
假设你已经建立了一个模型来根据前面的单词预测下一个单词。假设您正在尝试预测句子中的最后一个词“太阳从东方升起”,我们不需要任何进一步的上下文,显然下一个词将是东方。在这些类型的情况下,相关信息与需要信息的地方之间没有太大差距,RNN 可以轻松学习和预测输出。但是如果我们有这样一句话,“我出生在印度。我说一口流利的印地语”。这种预测需要上一句中关于一个人出生地的一些上下文,在这种情况下,RNN 可能无法学习和连接这些信息。
LSTM 深度学习算法如何工作?
LSTM 网络由称为单元格的不同存储块(上面的矩形块)组成。
细胞状态和隐藏状态被转移到下一个细胞。顾名思义,内存块会记住东西,而对这些内存块的更改是通过称为门的机制完成的。
LSTM 的关键是单元状态(顶部的水平线,在图中贯穿)。
LSTM 的关键是单元状态(图中顶部的水平线)。
第 1 步: - LSTM 决定哪些信息应该保持完整,哪些应该从细胞状态中丢弃。sigmoid 层负责做出这个决定。
第 2 步: - LSTM 决定应保留哪些新信息并替换第 1 步中识别的不相关信息 - tanh 和 sigmoid 在识别相关信息方面起着重要作用。
第 3 步: - 输出是在细胞状态的帮助下确定的,由于应用了 sigmoid 和 tanh 函数,细胞状态现在将成为过滤版本。
应用
网络流量数据或 IDS(入侵检测系统)中的异常检测、时间序列预测、自动完成、文本和视频分析以及字幕生成。
LSTM 的优点
与传统的 RNN 相比,LSTM 在对时间顺序和长期依赖性建模方面非常方便。
LSTM 的缺点
-
训练 LSTM 模型需要大量的计算和资源,也是一个非常耗时的过程。
-
它们容易过度拟合。
6) 受限玻尔兹曼机 (RBM)
RBM 是深度学习中最古老的算法之一,由 Geoffrey Hinton 于 1986 年发明。我敢打赌,您会注意到 YouTube 如何推荐与您最近观看的视频相似的视频。此外,如果您在 Netflix 上看过网络连续剧或电影,您会开始收到很多与它们相关的推荐。他们使用一种称为协同过滤的技术,该技术使用 RBM。
RBM 深度学习算法如何工作?
单一输入的 RBM
RBM 是最简单的深度学习算法之一,其基本结构只有两层——
-
(可见)输入层
-
隐藏层
输入 x 乘以每个隐藏节点的相应权重 (w)。单个输入 x 总共可以有 8 个权重(2 个输入节点 x 4 个隐藏节点)。隐藏节点接收乘以它们各自的权重和偏置值的输入。结果通过激活函数传递到输出层进行重建。RBM 将此重建与原始输入进行比较以确定结果的质量。如果结果质量不好,则更新权重,并构建新的重构。
应用
Netflix、Prime Video 和 Streaming 应用程序使用 RBM 算法根据用户的观看模式向他们提供推荐。
RBM 的优点
-
RBM 可以以完全无监督的方式进行预训练,因为学习算法可以有效地使用大量未标记的数据。
-
它们不需要很高的计算量,可以对任何分布进行编码。
RBM 的缺点
-
训练时计算能量梯度函数具有挑战性。
-
使用 CD-k 算法调整权重并不像反向传播那么容易。
7) 自组织图 (SOM)
想象一下,您正在处理一个包含数百个特征的数据集,并且您想要可视化您的数据以了解每个特征之间的相关性。使用散点图或配对图无法想象它。SOM 来了。它减少了数据的维度(删除了不太相关的特征)并帮助我们可视化特征值的分布。
SOM 深度学习算法是如何工作的?
SOM 通过创建 1D 或 2D 地图将相似的数据项组合在一起。与其他算法类似,权重是为每个节点随机初始化的。在每一步中,从输入数据集中随机抽取一个样本向量 x,并计算 x 与所有其他向量之间的距离。
在对所有其他向量进行投票后,选择最接近 x的最佳匹配单元(BMU)。一旦确定了 BMU,就会更新权重向量,并且 BMU 及其拓扑邻居会在输入空间中移动到更靠近输入向量 x 的位置。重复这个过程,直到我们得到预期的输出。
对于我们的示例,程序将首先从样本数组中选择一种颜色,例如红色,然后搜索这些红色位置的权重。这些位置周围的权重为红色,然后选择下一个颜色蓝色,然后继续该过程。
应用
图像分析、故障诊断、过程监测和控制等。SOM 可用于根据立体图像对人头进行 3D 建模,因为它们能够生成强大的可视化效果,并且对于医疗保健部门创建 3D 图表具有广泛的价值。
SOM 的优点
-
我们可以使用 SOM 轻松解释和理解数据。
-
使用降维进一步使检查数据中的任何相似性变得更加简单。
SOM 的缺点
-
SOM 要求神经元权重对于聚类输入数据是必要且充分的。
-
如果在训练 SOM 时,我们提供的数据更少或更多,我们可能无法获得信息丰富或非常准确的输出。
8) 生成对抗网络 (GAN)
它是一种无监督学习算法,能够自动发现和学习数据中的模式。GAN然后生成类似于原始数据集的新示例。
GAN 深度学习算法如何工作?
GAN 由两个神经网络组成。
-
生成器网络- 首先是生成新示例的生成器神经网络。
-
鉴别器网络——它负责评估生成的示例以及它们是否属于实际训练数据集。
积分-O'Reilly
让我们通过一个例子来理解这一点。考虑一个钞票检查机。机器负责检查纸币是假的还是真的。生成器网络将尝试创建假钞并将它们发送给鉴别器。鉴别器将接受真实(输入训练数据)和假钞并返回 0 到 1 之间的值。该值是概率,其中 1 代表完全真实的钞票,0 代表假钞。
生成器和鉴别器都将尝试超越对方并同时接受训练。
应用
GAN 广泛用于游戏行业的 3D 对象生成。它们还用于编辑图像、生成卡通人物等。
它们也用于小说、文章等的插图。
GAN 的优点
-
GAN 可以学习任何数据的内部表示(混乱和复杂的分布)。他们可以使用未标记的数据进行有效训练,因此可以快速产生逼真的高质量结果。
-
他们可以识别物体,也可以计算它们之间的距离。
GAN 的缺点
-
由于他们从原始数据生成新数据,因此没有这样的评估指标来判断输出的准确性。
-
模型训练需要高计算量和时间。
9) 自动编码器深度学习算法
自动编码器是无监督算法,非常类似于机器学习中的主成分分析 (PCA)。它们用于将多维数据转换为低维数据。如果我们想要原始数据,我们可以重新生成它。
一个简单的例子是——假设你的朋友要求你分享一个你保存在电脑上的软件。该软件的文件夹大小接近 1 GB。如果您直接将整个文件夹上传到您的 Google 驱动器,将会花费很多时间。但是如果你压缩它,那么数据大小会减少,你可以很容易地上传它。你的朋友可以直接下载这个文件夹,解压数据,得到原文件夹。
在上面的例子中,原始文件夹是输入,压缩文件夹是编码数据,当你的朋友解压缩压缩文件夹时,它是解码。
自动编码器如何工作?
自动编码器中有 3 个主要组件 -
-
编码器——编码器将输入压缩为潜在空间表示,稍后可以重建该表示以获得原始输入。
-
Code——这是编码后获得的压缩部分(潜在空间表示)。
-
解码器——解码器旨在将代码重构为原始形式。获得的重建输出可能不如原始输出准确,可能会有一些损失。
编码器和解码器之间的代码层也称为瓶颈。它用于决定输入数据的哪些方面是相关的,哪些可以忽略。瓶颈是我们网络中非常重要的一层。没有它,网络可以很容易地学会通过网络传递输入值来记住它们。
应用
图像着色、图像压缩、去噪等。
它们在医疗保健行业用于医学成像(对人体内部进行成像以进行临床分析的技术和过程),例如 - 乳腺癌检测。
自编码器的优点
使用多个编码器和解码器层在一定程度上降低了表示某些函数的计算成本。
自编码器的缺点
-
对于复杂图像,它在重建图像时不如 GAN 高效,通常效果不佳。
-
编码后我们可能会丢失原始输入中的基本数据。
10) 深度信念网络
通过附加多个受限玻尔兹曼机 (RBM) 层来构建深度信念网络 (DBN)。每个 RBM 层都可以与前一层和后一层进行通信。
DBN 使用贪心算法进行预训练。它使用逐层方法来学习所有生成权重和自上而下的方法。相关的权重决定了一层中的所有变量如何依赖于上一层中的其他变量。
深度信念网络如何运作?
-
DBN 使用贪心算法进行预训练。他们使用逐层的方法来学习所有的生成权重和自上而下的方法。相关的权重决定了一层中的所有变量如何依赖于上一层中的其他变量。
-
在网络的顶部两个隐藏层上运行吉布斯抽样的几个步骤(用于在直接抽样困难时从指定的多元概率分布中获得近似的观察序列)。这个想法是从顶部两个隐藏层定义的 RBM 中抽取样本。
-
在下一步中,我们对模型的其余部分使用单次祖先采样,从可见单元中抽取样本。
-
一次自下而上的传递可以得出学习每一层中潜在变量值的结论。
-
贪心预训练从最低层的观察数据向量开始。然后它在微调的帮助下使用相反方向的生成权重。
应用
-
变分自动编码器 (VAE),一种自动编码器,用于在娱乐/游戏行业中生成动漫角色
-
识别、聚类和创建图像、视频序列和运动捕捉数据。
DBN 的优点
-
他们甚至可以处理一个很小的标记数据集。
-
DBN 提供了分类的稳健性。(视角、大小、位置、颜色等)
DBNS 的缺点
处理输入的硬件要求很高。
查看这些深度学习项目以解决现实世界的业务问题并自行实施这些算法。快乐学习!
深度学习算法FAQ
哪种算法在深度学习中最好?
深度学习中最流行的算法是:
1) 多层感知器 (MLP)
2) 径向基函数网络 (RBFN)
3)卷积神经网络(CNN)
4) 循环神经网络 (RNN)
5) 长短期记忆网络 (LSTM)
6) 受限玻尔兹曼机 (RBM)
7) 自组织图 (SOM)
8) 生成对抗网络 (GAN)
9) 自动编码器
10) 深度信念网络
哪个是深度学习算法的例子?
深度学习算法的示例包括其架构受人脑神经元功能启发的算法。其中一些是多层感知器、径向基函数网络、卷积神经网络等。
CNN是深度学习算法吗?
是的,卷积神经网络 (CNN) 是一种深度学习算法,广泛用于图像分类、目标检测、目标识别等计算机视觉应用。