深度学习已成功应用于这三大领域

本文摘自《深度学习》一书,介绍了深度学习在计算机视觉、语音识别和自然语言处理领域的应用。深度学习通过大规模神经网络实现,如GPU和分布式系统,解决了复杂任务。在计算机视觉中,包括预处理和数据集增强技术;在语音识别领域,从HMM-GMM系统到深度神经网络的转变带来了显著的性能提升;在自然语言处理中,神经语言模型和n-gram模型的结合提高了处理效率和准确性。
摘要由CSDN通过智能技术生成

编者按:本文选自图书《深度学习》中文版第十二章部分内容,《深度学习》由全球知名的三位专家IanGoodfellow、YoshuaBengio和AaronCourville撰写,是深度学习领域奠基性的经典教材。

在本章中,我们将介绍如何使用深度学习来解决计算机视觉、语音识别、自然语言处理以及其他商业领域中的应用。首先我们将讨论在许多最重要的AI 应用中所需的大规模神经网络的实现。接着,我们将回顾深度学习已经成功应用的几个特定领域。

尽管深度学习的一个目标是设计能够处理各种任务的算法,然而截至目前深度学习的应用仍然需要一定程度的特化。例如,计算机视觉中的任务对每一个样本都需要处理大量的输入特征(像素),自然语言处理任务的每一个输入特征都需要对大量的可能值(词汇表中的词) 建模。

大规模深度学习

深度学习的基本思想基于联结主义:尽管机器学习模型中单个生物性的神经元或者说是单个特征不是智能的,但是大量的神经元或者特征作用在一起往往能够表现出智能。我们必须着重强调神经元数量必须很大这个事实。

相比20世纪80年代,如今神经网络的精度以及处理任务的复杂度都有一定提升,其中一个关键的因素就是网络规模的巨大提升。在过去的30年内,网络规模是以指数级的速度递增的。然而如今的人工神经网络的规模也仅仅和昆虫的神经系统差不多。由于规模的大小对于神经网络来说至关重要,因此深度学习需要高性能的硬件设施和软件实现。

快速的CPU实现

传统的神经网络是用单台机器的CPU 来训练的。如今,这种做法通常被视为是不可取的。现在,我们通常使用GPU 或者许多台机器的CPU 连接在一起进行计算。在使用这种昂贵配置之前,为论证CPU 无法承担神经网络所需的巨大计算量,研究者们付出了巨大的努力。

描述如何实现高效的数值CPU 代码已经超出了本书的讨论范围,但是我们在这里还是要强调通过设计一些特定的CPU 上的操作可以大大提升效率。例如,在2011 年,最好的CPU 在训练神经网络时使用定点运算能够比浮点运算跑得更快。通过调整定点运算的实现方式,Vanhoucke et al. (2011) 获得了3 倍于一个强浮点运算系统的速度。因为各个新型CPU都有各自不同的特性,所以有时候采用浮点运算实现会更快。一条重要的准则就是,通过特殊设计的数值运算,我们可以获得巨大的回报。除了选择定点运算或者浮点运算以外,其他的策略还包括了如通过优化数据结构避免高速缓存缺失、使用向量指令等。机器学习的研究者们大多会忽略这些实现的细节,但是如果某种实现限制了模型的规模,那该模型的精度就要受到影响。

GPU实现

许多现代神经网络的实现基于图形处理器(Graphics Processing Unit, GPU)。图形处理器最初是为图形应用而开发的专用硬件组件。视频游戏系统的消费市场刺激了图形处理硬件的发展。GPU为视频游戏所设计的特性也可以使神经网络的计算受益。

大规模的分布式实现

在许多情况下,单个机器的计算资源是有限的。因此,我们希望把训练或者推断的任务分摊到多个机器上进行。

分布式的推断是容易实现的,因为每一个输入的样本都可以在单独的机器上运行。这也被称为数据并行(data parallelism)。

同样地,模型并行(model parallelism) 也是可行的,其中多个机器共同运行一个数据点,每一个机器负责模型的一个部分。对于推断和训练,这都是可行的。

在训练过程中,数据并行从某种程度上来说更加困难。对于随机梯度下降的单步来说,我们可以增加小批量的大小,但是从优化性能的角度来说,我们得到的回报通常并不会线性增长。使用多个机器并行地计算多个梯度下降步骤是一个更好的选择。不幸的是,梯度下降的标准定义完全是一个串行的过程:第t 步的梯度是第t ¡ 1 步所得参数的函数。

这个问题可以使用异步随机梯度下降(Asynchoronous Stochasitc Gradient Descent)(Bengio et al., 2001b; Recht et al., 2011) 解决。在这个方法中,几个处理器的核共用存有参数的内存。每一个核在无锁的情况下读取这些参数,并计算对应的梯度,然后在无锁状态下更新这些参数。由于一些核把其他的核所更新的参数覆盖了,因此这种方法减少了每一步梯度下降所获得的平均提升。但因为更新步数的速率增加,总体上还是加快了学习过程。Deanet al. (2012) 率先提出了多机器无锁的梯度下降方法,其中参数是由参数服务器(parameterserver) 管理而非存储在共用的内存中。分布式的异步梯度下降方法保留了训练深度神经网络的基本策略,并被工业界很多机器学习组所使用(Chilimbi et al., 2014; Wu et al., 2015)。学术界的深度学习研究者们通常无法负担那么大规模的分布式学习系统,但是一些研究仍关注于如何在校园环境中使用相对廉价的硬件系统构造分布式网络(Coates et al., 2013)。

模型压缩

在许多商业应用的机器学习模型中,一个时间和内存开销较小的推断算法比一个时间和内存开销较小的训练算法要更为重要。对于那些不需要个性化设计的应用来说,我们只需要一次性地训练模型,然后它就可以被成千上万的用户使用。在许多情况下,相比开发者,终端用户的可用资源往往更有限。例如,开发者们可以使用巨大的计算机集群训练一个语音识别的网络,然后将其部署到移动手机上。

减少推断所需开销的一个关键策略是模型压缩(model compression)(Bucilu·a et al., 2006)。模型压缩的基本思

  • 3
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
深度学习是机器学习的一个分支,通过模拟人脑神经网络的结构和功能,利用大量数据进行训练和学习,从而实现对复杂模式和特征的识别和提取。目前,深度学习在许多领域都有广泛的应用,以下是一些主要的应用领域: 1. 计算机视觉:深度学习在图像识别、目标检测、人脸识别、图像生成等方面取得了重大突破。例如,深度学习在图像分类比赛中的表现超过了传统方法,同时也被广泛应用于自动驾驶、安防监控等领域。 2. 自然语言处理:深度学习在机器翻译、文本生成、情感分析、语义理解等方面取得了显著进展。例如,深度学习模型如Transformer已经成为机器翻译领域的主流方法。 3. 语音识别:深度学习在语音识别领域取得了巨大成功,例如,深度学习模型如循环神经网络(RNN)和长短时记忆网络(LSTM)被广泛应用于语音识别系统。 4. 推荐系统:深度学习在个性化推荐、广告推荐等方面发挥了重要作用。通过深度学习模型,可以更准确地理解用户的兴趣和需求,从而提供更好的推荐结果。 5. 医疗健康:深度学习在医学影像分析、疾病诊断、基因组学等方面有广泛应用。例如,深度学习模型在医学影像诊断中能够帮助医生更准确地检测和识别疾病。 6. 金融领域:深度学习在风险评估、欺诈检测、股票预测等方面有广泛应用。通过深度学习模型,可以更好地分析和预测金融市场的变化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值