深度学习是一种机器学习(ML)和人工智能(AI)技术,旨在通过模拟人类认知过程来训练计算机从大量数据集中学习。
深度学习模型可以被训练来执行分类任务并识别照片、文本、音频及其他类型数据中的模式。深度学习还用于自动化通常需要人类智能的任务,比如描述图像或转录音频文件。
人类大脑中有数百万个相互连接的神经元共同工作以学习信息,而深度学习则由多个层次的软件节点构成的神经网络组成,这些节点协同工作。深度学习模型通过大量标记数据和神经网络架构进行训练。
深度学习使计算机能够通过示例进行学习。为了理解深度学习,可以想象一个幼儿,他的第一个词是“狗”。幼儿通过指向物体并说“狗”来学习什么是狗——以及什么不是狗。父母会说:“是的,那是一只狗,”或“不是,那不是狗。”随着幼儿不断指向物体,他们逐渐意识到所有狗所具备的特征。幼儿在不知不觉中正在澄清一个复杂的抽象概念:狗的概念。他们通过建立一个层次结构来实现这一点,其中每个抽象层次都是基于前一个层次所获得的知识。
本文为
什么是机器学习?指南、定义和示例
- 还包括:
- 不同类型的机器学习解析
- 如何在7个步骤中构建机器学习模型
- CNN与RNN:它们有什么不同?
深度学习为何重要?
深度学习在商业应用中有多种用例,包括数据分析和生成预测。它也是数据科学的一个重要组成部分,包括统计和预测建模。因此,对负责收集、分析和解释大量数据的数据科学家来说,它极大地加速和简化了这一过程。
深度学习需要大量标记数据和计算能力。如果一个组织能够满足这两个需求,深度学习可以应用于数字助手、欺诈检测和面部识别等领域。深度学习还具有高识别准确率,这对于安全性是一个重要因素的潜在应用(如自动驾驶汽车或医疗设备)至关重要。
深度学习的工作原理
使用深度学习的计算机程序的学习过程与幼儿识别狗的过程非常相似。深度学习程序具有多个相互连接的节点层,每一层都在前一层的基础上进行优化,以改善预测和分类。深度学习对输入进行非线性变换,并利用所学知识创建统计模型作为输出。迭代过程持续进行,直到输出达到可接受的准确性。数据必须通过的处理层数就是“深度”这一标签的由来。
反向传播是另一个关键的深度学习算法,通过计算损失函数的梯度来训练神经网络。它调整网络的权重,即影响网络输出和性能的参数,以最小化错误并提高准确性。
在传统机器学习中,学习过程是监督的,程序员必须非常具体地告诉计算机应该寻找哪些类型的事物,以决定一幅图像是否包含狗。这是一个繁琐的过程,称为特征提取,计算机的成功率完全依赖于程序员准确定义狗的特征集。深度学习的优势在于,程序通过无监督学习自行构建特征集。
最初,计算机程序可能会提供训练数据——一组图像,其中每个图像都被人类标记为“狗”或“非狗”。程序利用从训练数据中获得的信息来创建狗的特征集并构建预测模型。在这种情况下,计算机最初创建的模型可能会预测任何具有四条腿和一条尾巴的图像都应标记为狗。当然,程序并不知道“四条腿”或“尾巴”的标签。它只是寻找数字数据中的像素模式。随着每次迭代,预测模型变得更加复杂和准确。
与幼儿需要数周甚至数月才能理解“狗”的概念不同,使用深度学习算法的计算机程序可以在几分钟内查看训练集并筛选出数百万张图像,准确识别出哪些图像中有狗。
为了达到可接受的准确性,深度学习程序需要访问大量的训练数据和处理能力,而这些在大数据和云计算时代之前并不容易获得。由于深度学习编程可以直接从自身的迭代输出创建复杂的统计模型,因此它可以从大量未标记、非结构化数据中创建准确的预测模型。
深度学习过程包括识别用于特定问题的数据集、选择正确的算法、训练算法,然后进行测试的步骤。
深度学习方法
可以使用多种方法来创建强大的深度学习模型。这些技术包括学习率衰减、迁移学习、从头开始训练和丢弃法(dropout)。
学习率衰减
学习率是一个超参数——在学习过程中定义系统或设置操作条件的因素——控制模型在每次模型权重变化时对估计错误的响应程度。学习率过高可能导致训练过程不稳定或学习到次优的权重集;学习率过低则可能导致训练过程冗长,且有可能陷入停滞。
学习率衰减方法——也称为学习率退火或自适应学习率——是调整学习率以提高性能和减少训练时间的过程。训练期间,学习率的最简单和最常见的调整方法包括逐步降低学习率。
学习率衰减方法中的常见技术包括:
- 步长衰减。在特定间隔内按比例减少学习率。
- 指数衰减。以指数速率持续降低学习率。
- 1/t衰减。按迭代次数的倒数减少学习率。
迁移学习
此过程涉及对在新但相关问题上进行过训练的模型进行优化。它需要对现有网络的内部结构进行接口。首先,用户向现有网络输入包含先前未知分类的新数据。对网络进行调整后,可以执行更具体的分类任务。
此方法的优点是所需数据量远少于其他方法,从而将计算时间缩短到几分钟或几小时。
从头开始训练
此方法要求开发人员收集大量标记数据集,并配置一个可以学习特征和模型的网络架构。此技术在新应用以及具有多个输出类别的应用中特别有用。然而,由于需要大量数据和计算资源,这种方法不太常见,导致训练可能需要数天或数周。
丢弃法(Dropout)
此方法通过在训练过程中随机丢弃神经网络中的单元及其连接,试图解决具有大量参数的网络中的过拟合问题。
研究表明,丢弃法可以提高神经网络在语音识别、文档分类和计算生物学等监督学习任务中的性能。
深度学习神经网络
一种先进的机器学习算法,称为人工神经网络,是大多数深度学习模型的基础。因此,深度学习有时也被称为深度神经学习或深度神经网络。
深度神经网络(DDNs)由输入层、隐藏层和输出层组成。输入节点作为放置输入数据的层。所需的输出层和节点数量因输出而异。例如,yes或no输出只需要两个节点,而更多数据的输出则需要更多节点。隐藏层是多个处理并将数据传递给神经网络其他层的层。
神经网络有几种不同的形式,包括:
- 递归神经网络(RNN)。RNN通常用于语音识别和自然语言处理(NLP)。
- 卷积神经网络(CNN)。CNN通常用于分析视觉数据。
- 生成对抗网络(GAN)。GAN通常用于异常检测、数据增强和图像到图像的转换。
- 多层感知器(MLP)。MLP通常用于图像识别、NLP和时间序列预测。
- 前馈神经网络。信息在前馈神经网络中单向流动——从输入层到输出层。
每种类型的神经网络在特定用例中都有其优势。然而,它们的工作方式大致相似——通过输入数据并让模型自己判断是否对给定数据元素做出了正确的解释或决策。
神经网络涉及试错过程,因此需要大量数据进行训练。神经网络的流行并非偶然,只有在大多数企业接受大数据分析并积累大量数据后,它们才开始受到欢迎。由于模型的前几次迭代涉及对图像内容或词性进行相对有根据的猜测,因此训练阶段使用的数据必须标记,以便模型能够判断其猜测是否准确。这意味着非结构化数据的帮助有限。
只有在深度学习模型经过训练并达到可接受的准确性后,非结构化数据才能被分析,但深度学习模型无法在非结构化数据上进行训练。
深度学习的好处
深度学习的好处包括:
- 自动特征学习。深度学习系统可以自动执行特征提取,这意味着它们不需要监督来添加新特征。
- 模式发现。深度学习系统可以分析大量数据,并揭示图像、文本和音频中的复杂模式,并能够推导出系统可能未经过训练的洞察。
- 处理波动的数据集。深度学习系统可以对具有大幅变化的数据集进行分类和排序,例如在交易和欺诈系统中。
- 处理多种数据类型。深度学习系统可以处理结构化和非结构化数据。
- 准确性。额外的节点层有助于优化深度学习模型的准确性。
- 能做更多事情。与典型的机器学习过程相比,深度学习需要更少的人为干预,并能够分析其他机器学习过程无法很好处理的数据。
- 数据可扩展性。随着数据量的增加,深度学习模型的表现越来越好。与传统机器学习算法不同,后者在达到某一阈值后可能会达到性能平台,深度学习模型在数据增多时持续改进,使其特别适合涉及大数据集的应用。
- 成本效益。虽然训练深度学习模型可能成本高昂,但它们通过显著减少各行业的错误和缺陷来帮助企业节省开支。不准确预测的成本往往超过训练费用,而深度学习减少错误的能力超过传统机器学习模型。
深度学习的关键应用
由于深度学习模型以类似于人脑的方式处理信息,它们可以应用于许多人类执行的任务。深度学习目前被广泛应用于最常见的图像识别工具、自然语言处理(NLP)和语音识别软件。
企业可以使用自然语言处理的关键领域。
目前深度学习的用例包括所有类型的大数据分析应用,特别是那些专注于语言翻译、医学成像与诊断、股市交易信号、网络安全和图像识别的应用。
深度学习的用例包括:
- 客户体验。深度学习模型已被用于聊天机器人。随着技术的不断成熟,预计深度学习将在各个企业中得到应用,以改善客户体验并提高客户满意度。
- 文本生成。机器正在学习一段文本的语法和风格,然后使用该模型自动创建一段完全新文本,以匹配原始文本的正确拼写、语法和风格。
- 航空航天与军事。深度学习用于从卫星检测物体,识别感兴趣区域以及安全或不安全的部队区域。
- 工业自动化。深度学习通过提供工业自动化服务来提高工人在工厂和仓库等环境中的安全性,这些服务可以自动检测工人或物体与机器之间的距离。
- 添加颜色。可以使用深度学习模型为黑白照片和视频添加颜色。过去,这是一项耗时的手动过程。
- 计算机视觉。深度学习极大地增强了机器视觉,为物体检测、图像分类、恢复和分割提供了极高的准确性。
- 推荐引擎。应用程序可以利用深度学习跟踪用户行为并生成个性化建议,帮助消费者发现新产品和服务。例如,Netflix、Peacock和其他媒体娱乐组织使用深度学习提供个性化的视频推荐。
- 在线安全。深度学习算法可以通过识别安全问题来保护免受欺诈。例如,这些算法可以检测可疑的登录尝试,发送通知,并在用户选择的密码不够强时进行警告。
局限性和挑战
深度学习系统也存在以下缺点:
- 仅通过观察学习。深度学习系统只知道训练数据中的内容。如果用户的数据量较小或来自一个特定来源,而该来源并不一定代表更广泛的功能领域,则模型无法以可推广的方式学习。
- 潜在的偏见。如果模型在包含偏见的数据上进行训练,模型将在其预测中再现这些偏见。机器学习中的偏见一直是深度学习程序员面临的一个棘手问题,因为模型学习根据数据元素的微妙变化进行区分。它确定的重要因素通常并未明确告知程序员。这意味着,例如,一个面部识别模型可能会根据种族或性别等因素对人的特征做出判断,而程序员对此并不知情。
- 学习率过高。如果学习率过高,则模型收敛过快,产生次优解。如果学习率过低,则过程可能会停滞,甚至更难达到解决方案。
- 硬件要求。需要多核高性能图形处理单元(GPU)和其他类似处理单元,以确保提高效率和减少时间消耗。然而,这些单元价格昂贵且耗能较大。其他硬件要求包括RAM和硬盘驱动器或基于RAM的固态硬盘。
- 需要大量数据。更强大和准确的模型需要更多参数,这反过来又需要更多数据或大量连续数据。
- 缺乏多任务处理。一旦训练完成,深度学习模型变得不灵活,无法处理多任务。它们可以提供高效且准确的结果,但只能针对一个特定问题。即使解决类似问题也需要重新训练系统。
- 缺乏推理能力。对于任何需要推理的应用——例如编程或应用科学方法——长期规划和类似算法的数据处理完全超出了当前深度学习技术的能力,即使有大量数据。
深度学习的本地与云
在考虑深度学习基础设施时,组织通常会争论是选择基于云的服务还是本地选项。这两种选择各有优缺点。
基于云的深度学习提供可扩展性和对先进硬件(如GPU和张量处理单元)的访问,使其适合需求多变和快速原型的项目。它还消除了对大规模前期硬件投资的需求。
本地深度学习选项提供对数据安全的更大控制,且对于持续高容量需求而言,长期来看可能更具成本效益。这些设置还允许定制配置。
许多组织还选择第三种或混合选项,在本地测试模型,但在云中部署,以利用两种环境的优势。然而,选择本地和基于云的深度学习取决于预算、可扩展性、数据敏感性和具体项目需求等因素。
深度学习与机器学习
深度学习和机器学习都是人工智能的子集,但它们的处理方式不同。两者之间的主要区别包括:
- 深度学习是机器学习的一个子集,通过解决问题的方式来区分自己。
- 机器学习涉及训练算法从数据中学习并做出预测或决策,而无需为特定任务显式编程。
- 机器学习需要领域专家识别最常用的特征。
- 深度学习逐步理解特征,因此不需要领域专业知识。然而,深度学习算法的训练时间比机器学习算法要长,后者只需几秒到几小时。但在测试期间情况正好相反。深度学习算法的测试时间少于机器学习算法,后者的测试时间会随着数据量的增加而增加。
- 机器学习不需要深度学习所需的昂贵高端机器和高性能GPU。
- 深度学习更适合于数据量大、缺乏领域理解以进行特征内省或复杂问题(如语音识别和自然语言处理)的情况。
- 许多数据科学家由于其更好的可解释性(即理解生成结果的能力)而选择传统的机器学习,而机器学习算法在数据量较小时更受欢迎。
人工智能与深度学习与神经网络的关系。
深度学习未来的潜在应用
深度学习在新兴和常见技术中都有应用。以下是一些深度学习预计会取得进展的关键领域:
- 医疗创新。深度学习在医学领域用于检测危重病人的谵妄。癌症研究人员正在使用深度学习自动检测癌细胞的存在。深度学习还将通过提高诊断准确性和提供个性化治疗来改变医疗。例如,未来的应用可能涉及疾病爆发的预测分析、通过可穿戴设备进行实时健康监测,以及由人工智能驱动的虚拟健康助手提供量身定制的医疗建议。
- 自动驾驶汽车。自动驾驶汽车使用深度学习自动检测物体,例如交通标志或行人。
- 社交媒体。社交媒体平台可以使用深度学习进行内容审核,筛选图像和音频。
- 迁移学习和少样本学习。迁移学习,即将一个任务上训练的模型应用于相关任务,正在变得越来越流行。新兴的少样本学习领域专注于使用最少标记数据训练模型,可能减少对广泛数据预处理和大型训练数据集的需求。
- 智能城市。深度学习可以推动智能城市的发展,通过优化交通管理、能源使用和公共安全。人工智能系统可以分析交通模式,以最小化拥堵,更有效地管理能源资源,并增强监控以提高安全性。
- 边缘人工智能。由于设备计算能力的提高,部署边缘人工智能的趋势日益增长。例如,深度学习模型越来越多地应用于移动设备、物联网设备和本地服务器。这减少了延迟并通过实现本地数据处理增强了隐私。
- 深度梦境。深度梦境产业利用深度神经网络从输入图像生成新图像。结果往往是超现实或梦幻般的,非常适合创作新艺术作品或增强现有图像。
- 情感智能。尽管计算机无法复制人类情感,但深度学习可以通过分析音调变化和面部表情等模式来提高计算机理解情绪的能力。一些公司正在使用深度学习来解读声音和面部信号,而其他公司则分析客户服务互动,以评估情感智能并提供实时反馈,以改善参与度。
- 可解释的人工智能。可解释的人工智能是深度学习的未来,指的是人工智能中决策过程可以被人类理解和解释的模型和系统。可解释的人工智能增强了人工智能系统的透明度、信任和问责,使用户能够理解模型如何得出结论,从而更容易识别和纠正错误或偏见。随着深度学习在关键应用中的整合,可解释性将对伦理和有效使用至关重要。
了解更多关于深度学习与机器学习及其他人工智能形式的比较。