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
2.2 如何创建深度学习模型
您可以从头开始创建深度学习模型,也可以从预先训练的深度学习模型开始,然后将其应用或调整到您的任务中。
2.1.1 从头开始训练
要从头开始训练深度学习模型,您需要收集大量带标签的数据集,并设计一个用于学习特征和模型的网络架构。对于新的或特定的应用程序,或者更一般地说,对于不存在现有模型的应用程序,这是一种很好的方法。这种方法的主要缺点是它需要大量数据集(标注了基本事实),并且训练时间可能需要数小时到数周,具体取决于您的任务和计算资源。
2.1.2 迁移学习
SqueezeNet
GoogLeNet
1000
SVM
CNN
3. 深度学习与机器学习
深度学习是机器学习的一种特殊形式,两者都属于人工智能 (AI)领域。机器学习提供各种技术和模型,您可以根据应用程序、要处理的数据大小以及要解决的问题类型进行选择。
为什么选择深度学习而不是机器学习?一个词就是准确度。与机器学习相比,深度学习通常能实现更高的准确度,并能提供更多扩展工作流程的自动化。深度学习模型的主要缺点是它们更复杂,需要更大的训练数据集,因此训练时间更长。存在一些方法可以克服或至少减轻这些缺点的影响。
3.1 特征工程自动化
3.2 训练数据和时间
深度学习的准确性随数据而变化。也就是说,随着训练数据量的增加,深度学习的性能会不断提高。通常,深度学习需要大量数据(例如,用于图像分类的数千张图像)来训练模型。使用高性能GPU可以大大缩短训练时间。作为替代方案,使用迁移学习修改和重新训练预训练网络通常比从头开始训练网络要快得多,并且需要的标记数据也更少。
如果没有足够的训练数据,您可以使用合成数据补充现有数据。您可以使用生成对抗网络 (GAN)或通过创建和模拟物理系统模型来生成合成数据。
3.3 模型大小和复杂性
与机器学习模型相比,深度学习模型更加复杂和庞大,因为它们由数百个互连层构建而成。随着深度学习技术的不断发展,深度学习网络架构的复杂性不断增加。它们的复杂性和规模决定了深度学习可以达到的准确性。
由于其复杂性,深度学习模型通常被视为缺乏可解释性的“黑匣子” 。一个新兴领域,即可解释人工智能,提供了旨在用人类术语解释深度学习模型行为的技术。例如,您可以使用Grad-CAM和LIME来解释深度学习模型对图像分类任务的预测。
深度学习模型不再仅仅存在于桌面上。将越来越大、越来越复杂的深度学习模型部署到资源受限的设备上是许多深度学习从业者面临的日益严峻的挑战。有许多用于压缩深度学习模型的技术,可用于减少深度学习模型在磁盘上的大小、运行时内存和推理时间,同时保持高精度。
4. 深度学习为何如此重要
深度学习是无人驾驶汽车背后的一项关键技术,它使汽车能够识别停车标志,或区分行人和路灯。它是手机、平板电脑、电视和免提扬声器等消费设备中语音控制的关键。深度学习最近受到广泛关注,这是有原因的。借助深度学习,计算机和系统可以以更高的准确性和自动化程度执行复杂任务。
4.1 深度学习应用
深度学习可应用于计算机视觉、图像处理、自动驾驶、信号处理等许多领域。每个深度学习应用领域都可以包含多个子应用领域。例如,图像分类、对象检测和语义分割是计算机视觉的子应用。随着新的深度学习方法和技术的开发,深度学习应用将继续扩展,并且深度学习可以提高准确性的新子应用将被发现。
4.2 深度学习的应用示例
视觉检测是基于图像的部件检测,其中相机扫描被测部件以查找故障和质量缺陷。通过使用深度学习和计算机视觉技术,视觉检测可以实现自动化,以检测生物技术、汽车和半导体等许多行业的制造缺陷。
脑电图 (EEG) 信号是最容易获取的,并且毫无疑问是研究最多的脑信号。您可以使用深度学习自动诊断癫痫并预测 EEG 信号中的癫痫发作。
5. 使用 MATLAB 进行深度学习
MATLAB
Deep Learning Toolbox™
Computer Vision Toolbox™
Signal Processing Toolbox™
Text Analytics Toolbox™
5.1 深度学习数据
深度学习需要大量优质数据。您可以使用数据存储来方便地管理内存中无法一次性容纳的庞大数据集合。您可以使用低代码应用和内置函数来提高数据质量并自动标记基本事实。
5.2 设计深度学习模型
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进行深度学习