【深度学习】什么是深度学习?

1. 前言

深度学习是机器学习的一个分支,它使用神经网络教计算机做人类自然而然会做的事情:从示例中学习。在深度学习中,模型会学习直接从图像、文本或声音等数据中执行分类或回归任务。深度学习模型可以达到最先进的准确率,通常超过人类的表现水平。

2. 深度学习如何工作?

深度学习模型基于神经网络架构。神经网络的灵感来自人类大脑,由分层结构中相互连接的节点或神经元组成,将输入与所需输出联系起来。神经网络输入层和输出层之间的神经元称为隐藏层。术语"深度"通常指神经网络中隐藏层的数量。深度学习模型可以有数百甚至数千个隐藏层。


神经网络架构

深度学习模型使用大量带标签的数据进行训练,通常可以直接从数据中学习特征,而无需手动提取特征。虽然第一个人工神经网络在 1958 年就已提出理论,但深度学习需要强大的计算能力,而这种能力直到 2000 年代才出现。现在,研究人员可以使用计算资源来构建和训练具有数百个连接和神经元的网络。

高性能 GPU 具有并行架构,非常适合深度学习。与集群或云计算相结合,开发团队可以将深度学习网络的训练时间从数周缩短到数小时甚至更短。

2.1 深度学习模型的类型

三种类型的深度学习模型,分别是卷积神经网络(CNN)递归神经网络(RNN)变换器模型(Transformers)

2.1.1 卷积神经网络(CNN)

CNN 将学习到的特征与输入数据进行卷积,并使用 2D 卷积层,因此这种架构非常适合处理 2D 数据(例如图像)。CNN 的工作原理是直接从图像中提取特征。在网络对一组图像进行训练时,会学习相关特征。这种自动特征提取使深度学习模型在图像分类任务中具有高度准确性。CNN 还可用于对其他类型的数据进行分类,例如时间序列和文本。


可视化卷积神经网络

2.1.2 递归神经网络(RNN)

递归神经网络 (RNN) 是一种用于深度学习的网络架构,可预测时间序列或顺序数据。RNN 特别适合处理长度不一的顺序数据,并解决自然信号分类、语言处理和视频分析等问题。长短期记忆(LSTM) 网络是一种特殊类型的 RNN,与简单的 RNN 相比,它更擅长学习长期依赖关系。

2.1.3 变换器模型(Transformers)

Transformers 旨在跟踪顺序数据中的关系。它们依靠自注意力机制来捕获输入和输出之间的全局依赖关系。它们通常用于自然语言处理,并且是 BERT 和ChatGPT™等大型语言模型 (LLM) 的基础。

2.2 如何创建深度学习模型

您可以从头开始创建深度学习模型,也可以从预先训练的深度学习模型开始,然后将其应用或调整到您的任务中。

2.1.1 从头开始训练

要从头开始训练深度学习模型,您需要收集大量带标签的数据集,并设计一个用于学习特征和模型的网络架构。对于新的或特定的应用程序,或者更一般地说,对于不存在现有模型的应用程序,这是一种很好的方法。这种方法的主要缺点是它需要大量数据集(标注了基本事实),并且训练时间可能需要数小时到数周,具体取决于您的任务和计算资源。

2.1.2 迁移学习

在图像分类、计算机视觉、音频处理和自然语言处理等深度学习应用中, 迁移学习 方法被广泛使用。它涉及对预训练的深度学习模型进行微调。您从现有模型(例如用于图像分类的 SqueezeNetGoogLeNet)开始,然后输入包含以前未见过的类别的新数据。对网络进行一些调整后,您现在可以执行新任务,例如仅对狗或猫进行分类,而不是对 1000 个不同的对象进行分类。这还具有需要更少数据的优势,因此训练时间显著缩短。

预训练的深度学习模型也可用作特征提取器。您可以使用层激活作为特征来训练另一个机器学习模型(例如 支持向量机 (SVM))。或者,您可以将预训练模型用作另一个深度学习模型的构建块。例如,您可以使用图像分类 CNN 作为对象检测器的特征提取器。

3. 深度学习与机器学习

深度学习是机器学习的一种特殊形式,两者都属于人工智能 (AI)领域。机器学习提供各种技术和模型,您可以根据应用程序、要处理的数据大小以及要解决的问题类型进行选择。

比较人工智能应用的深度学习或机器学习算法的选择取决于系统的目标和要求

为什么选择深度学习而不是机器学习 ?一个词就是准确度 。与机器学习相比,深度学习通常能实现更高的准确度,并能提供更多扩展工作流程的自动化。深度学习模型的主要缺点是它们更复杂,需要更大的训练数据集,因此训练时间更长。存在一些方法可以克服或至少减轻这些缺点的影响。

3.1 特征工程自动化

机器学习工作流程首先从数据中手动提取相关特征。然后使用这些特征创建可以预测新数据的模型。借助深度学习工作流程,在图像识别和计算机视觉等应用中,可以自动从图像数据中提取相关特征。在处理信号或文本数据时,深度学习可以减少所需的数据预处理。

比较机器学习方法对车辆进行分类(左)和深度学习方法(右)

3.2 训练数据和时间

深度学习的准确性随数据而变化。也就是说,随着训练数据量的增加,深度学习的性能会不断提高。通常,深度学习需要大量数据(例如,用于图像分类的数千张图像)来训练模型。使用高性能GPU可以大大缩短训练时间。作为替代方案,使用迁移学习修改和重新训练预训练网络通常比从头开始训练网络要快得多,并且需要的标记数据也更少。

如果没有足够的训练数据,您可以使用合成数据补充现有数据。您可以使用生成对抗网络 (GAN)或通过创建和模拟物理系统模型来生成合成数据。

3.3 模型大小和复杂性

与机器学习模型相比,深度学习模型更加复杂和庞大,因为它们由数百个互连层构建而成。随着深度学习技术的不断发展,深度学习网络架构的复杂性不断增加。它们的复杂性和规模决定了深度学习可以达到的准确性。

由于其复杂性,深度学习模型通常被视为缺乏可解释性的"黑匣子" 。一个新兴领域,即可解释人工智能,提供了旨在用人类术语解释深度学习模型行为的技术。例如,您可以使用Grad-CAM和LIME来解释深度学习模型对图像分类任务的预测。

深度学习模型不再仅仅存在于桌面上。将越来越大、越来越复杂的深度学习模型部署到资源受限的设备上是许多深度学习从业者面临的日益严峻的挑战。有许多用于压缩深度学习模型的技术,可用于减少深度学习模型在磁盘上的大小、运行时内存和推理时间,同时保持高精度。

投影全连接层。投影是一种网络压缩的方法。

4. 深度学习为何如此重要

深度学习是无人驾驶汽车背后的一项关键技术,它使汽车能够识别停车标志,或区分行人和路灯。它是手机、平板电脑、电视和免提扬声器等消费设备中语音控制的关键。深度学习最近受到广泛关注,这是有原因的。借助深度学习,计算机和系统可以以更高的准确性和自动化程度执行复杂任务。

4.1 深度学习应用

深度学习可应用于计算机视觉、图像处理、自动驾驶、信号处理等许多领域。每个深度学习应用领域都可以包含多个子应用领域。例如,图像分类、对象检测和语义分割是计算机视觉的子应用。随着新的深度学习方法和技术的开发,深度学习应用将继续扩展,并且深度学习可以提高准确性的新子应用将被发现。

4.2 深度学习的应用示例


使用 YOLOX 网络检测印刷电路板上的缺陷

视觉检测 是基于图像的部件检测,其中相机扫描被测部件以查找故障和质量缺陷。通过使用深度学习和计算机视觉技术,视觉检测可以实现自动化,以检测生物技术、汽车和半导体等许多行业的制造缺陷。


使用时频卷积网络对脑电图数据进行分类

脑电图 (EEG) 信号是最容易获取的,并且毫无疑问是研究最​​多的脑信号。您可以使用深度学习自动诊断癫痫并预测 EEG 信号中的癫痫发作。

使用人工智能和基于模型的设计来设计虚拟传感器。

虚拟传感器可用于任何需要实时监控和控制的系统,以及使用物理传感器可能不切实际或成本高昂的系统。您可以将深度学习与基于模型的设计相结合来设计虚拟传感器。

5. 使用 MATLAB 进行深度学习

结合使用MATLABDeep Learning Toolbox™,您可以设计、分析和模拟深度学习网络。您可以使用其他工具箱(例如 Computer Vision Toolbox™Signal Processing Toolbox™Text Analytics Toolbox™)将深度学习工作流程扩展到许多应用程序(例如计算机视觉、信号处理和自然语言处理)。

可视化从数据准备到部署的深度学习工作流程。

5.1 深度学习数据

深度学习需要大量优质数据。您可以使用数据存储来方便地管理内存中无法一次性容纳的庞大数据集合。您可以使用低代码应用和内置函数来提高数据质量并自动标记基本事实。

5.2 设计深度学习模型


以编程方式创建 LSTM 网络

5.2.1 从零开始的网络

  • 只需几行代码,您就可以创建深度学习网络,例如 CNN、LSTM、GAN 和 transformer。
  • 使用多个 GPU、云或集群加速训练。在训练深度学习模型时,MATLAB 使用 GPU(如果可用),而无需您明确编程 GPU。

5.2.2 预训练网络


获取预先训练的模型来适应您的深度学习任务

  • 将预训练模型直接应用于您的任务,通过执行迁移学习来调整它,或将其用作特色提取器。
  • 探索MATLAB 深度学习模型中心,按类别访问最新模型,并在命令行加载预训练模型。
  • 使用导入函数将 TensorFlow™PyTorch ®和 ONNX™ 模型转换为 MATLAB 网络。将训练和未训练的网络从 Deep Learning Toolbox 导出到 TensorFlow 和 ONNX
  • 使用内置函数轻松执行迁移学习,以替换层并调整学习率进行再训练。

5.2.3 低代码应用程序

使用深度网络设计器以图形方式设计、分析和修改深度学习网络。

  • 使用Deep Network Designer应用程序,您可以以交互方式设计、分析和修改网络。您还可以从 Deep Learning Toolbox、TensorFlow 和 PyTorch 导入预训练网络。
  • 实验管理器应用程序可帮助您管理多个深度学习实验、跟踪训练参数、分析结果并比较不同实验的代码。

6. 总结

以上就是忧患深度学习的介绍,分别从深度学习如何工作?深度学习与机器学习的重要性差异深度学习为何如此重要,以及使用MATLAB进行深度学习的一些模型介绍等多角度对深度学习进行阐述,相信大家对深度学习有了一定的认识!

相关推荐
galileo201612 分钟前
LLM与金融
人工智能
DREAM依旧28 分钟前
隐马尔科夫模型|前向算法|Viterbi 算法
人工智能
GocNeverGiveUp41 分钟前
机器学习2-NumPy
人工智能·机器学习·numpy
B站计算机毕业设计超人2 小时前
计算机毕业设计PySpark+Hadoop中国城市交通分析与预测 Python交通预测 Python交通可视化 客流量预测 交通大数据 机器学习 深度学习
大数据·人工智能·爬虫·python·机器学习·课程设计·数据可视化
学术头条2 小时前
清华、智谱团队:探索 RLHF 的 scaling laws
人工智能·深度学习·算法·机器学习·语言模型·计算语言学
18号房客2 小时前
一个简单的机器学习实战例程,使用Scikit-Learn库来完成一个常见的分类任务——**鸢尾花数据集(Iris Dataset)**的分类
人工智能·深度学习·神经网络·机器学习·语言模型·自然语言处理·sklearn
feifeikon2 小时前
机器学习DAY3 : 线性回归与最小二乘法与sklearn实现 (线性回归完)
人工智能·机器学习·线性回归
游客5202 小时前
opencv中的常用的100个API
图像处理·人工智能·python·opencv·计算机视觉
古希腊掌管学习的神2 小时前
[机器学习]sklearn入门指南(2)
人工智能·机器学习·sklearn
Ven%2 小时前
如何在防火墙上指定ip访问服务器上任何端口呢
linux·服务器·网络·深度学习·tcp/ip