鉴于科学的快速增长和发展,了解使用哪些人工智能技术来推进项目可能具有挑战性。本文概述了机器学习和深度学习之间的差异,以及如何确定何时应用这两种方法。
定义:机器学习与深度学习
在机器学习和深度学习中,工程师使用软件工具(如 MATLAB)使计算机能够通过从示例数据集中学习来识别数据中的趋势和特征。在机器学习的情况下,训练数据用于构建一个模型,计算机可以使用该模型对测试数据进行分类,并最终对真实世界的数据进行分类。传统上,此工作流中的一个重要步骤是开发特征(从原始数据派生的其他指标),这有助于模型更加准确。
深度学习是机器学习的一个子集,工程师和科学家跳过创建要素的手动步骤。相反,数据被输入到深度学习算法中,它会自动学习哪些特征对确定输出最有用。
机器学习:人工智能的一个分支,工程师和科学家在其中手动选择数据中的特征并训练模型。常见的机器学习算法包括决策树、支持向量机、神经网络和集成方法。
深度学习:机器学习的一个分支,松散地模仿人脑的神经通路,算法会自动学习哪些特征是有用的。常见的深度学习算法包括卷积神经网络 (CNN)、循环神经网络和深度 Q 网络。
项目简介
机器学习通常用于涉及预测输出或发现趋势的项目。在这些示例中,有限的数据主体用于帮助机器学习模式,以便以后使用它们对新的输入数据做出正确的决定。机器学习中使用的常见算法包括线性回归、决策树、支持向量机 (SVM)、朴素贝叶斯、判别分析、神经网络和集成方法。
深度学习更为复杂,通常用于涉及对图像进行分类、识别图像中的对象以及增强图像和信号的项目。在这些情况下,可以应用深度神经网络,因为它们旨在从空间和时间组织的数据(如图像和信号)中自动提取特征。深度学习中使用的常见算法包括卷积神经网络 (CNN)、递归神经网络 (RNN) 和强化学习(深度 Q 网络)。
如果您需要更快的结果,机器学习算法可能更可取。它们的训练速度更快,需要的计算能力更少。特征和观测值的数量将是影响训练时间的关键因素。应用机器学习的工程师应该花费大部分时间开发和评估特征以提高模型准确性。
深度学习模型需要时间来训练。预训练网络和公共数据集可以通过迁移学习缩短训练时间,但有时这些可能很难实现。一般来说,深度学习算法可能需要一分钟到几周的时间来训练,具体取决于您的硬件和计算能力。应用深度学习的工程师应该花费大部分时间来训练模型并修改其深度神经网络的架构。
选择机器学习与深度学习的考虑因素
数据注意事项
了解可用的数据集有助于确定是否应将机器学习或深度学习应用于给定任务。
通常,当有更有限的结构化数据可用时,会使用机器学习。大多数机器学习算法旨在将模型训练为表格数据(组织成独立的行和列)。如果数据是非表格的,则可以应用机器学习,但它确实需要一些数据操作 - 即传感器数据可以通过使用常见的统计指标(平均值,中位数,标准差,偏度,峰度等)提取窗口特征来转换为表格表示,然后与传统机器学习技术一起使用。
深度学习通常需要大量的训练数据来确保网络很可能有数千万个参数,并且不会过度拟合训练数据。卷积神经网络设计用于对图像数据进行操作,尽管它们也可以通过对信号执行时频计算(例如频谱图)来用于传感器数据。循环神经网络,如LSTM(长短期记忆)网络,旨在对信号和文本等顺序数据进行操作。
可用的硬件和部署
确定应应用哪种AI方法还取决于可用的硬件。
机器学习算法需要较少的计算能力。例如,台式机 CPU 足以训练这些模型。
对于深度学习模型,由于更高的内存和计算要求,通常需要专用硬件。专用硬件也是合适的,因为在深度神经网络中执行的操作(例如卷积)非常适合 GPU 的并行架构。
深度学习模型需要强大的计算能力。如果 GPU 可用,或者是否有时间在 CPU 上运行训练(这将花费更长的时间),则应考虑它们。
由于与获取 GPU 相关的高成本,在集群或云上训练深度学习模型在深度学习中越来越受欢迎。此选项允许多个研究人员共享硬件。
部署到嵌入式 GPU 也越来越受欢迎,因为它可以在部署的环境中提供快速的推理速度。GPU Coder 支持从 MATLAB 中的深度学习模型生成代码,该模型利用英特尔、NVIDIA和 Arm的优化库。借助适用于 NVIDIA GPU 的 GPU编码器支持包,您可以将生成的 CUDA 代码交叉编译并部署为嵌入式 GPU 上的独立应用程序。
不断发展的科学指南
虽然总是会有反复试验,但上述内容可以帮助指导决策,并加速刚接触机器学习和深度学习的工程师和科学家的整体设计过程。通过了解机器学习和深度学习之间的差异,了解项目的最终应用并考虑数据和硬件可用性,设计团队将更快地了解哪种方法最适合各自的项目。
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !