为何现在深度学习这么流行?
为何现在深度学习这么流行?一些关键原因如下:
- 硬件可用性;
- 数据和算法;
- 深度学习框架。
硬件可用性
深度学习要在数百万甚至数十亿的参数上进行复杂的数学运算。尽管过去这些年有所提高,但仅依靠现在的CPU执行这些运算极其耗时。一种叫作图形处理单元(Graphics Processing Unit,GPU)的新型硬件在完成这些大规模的数学运算(如矩阵乘法)时可以高出几个数量级。
GPU最初是Nvidia和AMD公司为游戏产业而开发的。事实证明这种硬件极其高效。Nvidia最近的一款产品1080ti,仅用了几天时间就构建了一个基于
ImageNet数据集的图像分类系统,而此前这需要大概1个月的时间。
如果打算购买用于深度学习的硬件,建议用户根据预算选择一款Nvidia的内存较大的GPU。记住,计算机内存和GPU内存并不相同,1080ti带有大约11GB的内存,它的价格在700美元左右。
你也可以使用各种云服务,如AWS、Google Cloud或Floyd(这家公司提供专为深度学习优化的GPU机器)。如果刚开始深度学习,或在财务受限的情况下为公司的应用配置机器时,使用云服务就很经济。
优化后的系统性能可能有较大提升。
图1.6所示为不同CPU和GPU的性能基准的对比。
图1.6 基于不同CPU和GPU的神经网络架构的性能基准
数据和算法
数据是完成深度学习最重要的组成部分,由于互联网的普及和智能手机应用的增长,一些大公司,如Facebook和Google,可以收集到大量不同格式的数据,特别是文本、图片、视频和音频这类数据。在计算机视觉领域,ImageNet竞赛在提供1,000种类别中的140万张图片的数据集方面发挥了巨大作用。
这些图像类别是手工标注的,每年都有数百个团队参与竞赛。过去比赛中一些成功的算法有VGG、ResNet、Inception、DenseNet等。现在这些算法已在行业中得到应用,用于解决各种计算机视觉问题。深度学习领域还有其他一些流行的数据集,这些数据集常被用于建立不同算法的性能基准:
- MNIST;
- COCO数据集;
- CIFAR;
- The Street View House Numbers;
- PASCAL VOC;
- Wikipedia dump;
- 20 Newsgroups;
- Penn Treebank;
- Kaggle。
各种不同算法的发展,如批规一化、激活函数、跳跃式连接(skip connection)、长短期记忆网络(LSTM)、dropout等,使得最近几年可以更快并更成功地训练极深度网络。本书接下来的章节中,我们将深入每种技术的细节,以及如何使用这些技术构建更好的模型。
深度学习框架
在早期,人们需要具备C++和CUDA的专业知识来实现深度学习算法。现在随着很多公司将它们的深度学习框架开源,使得那些具有脚本语言知识(如Python)的人,也可以开始构建和使用深度学习算法。今天,这个行业中流行的深度学习框架有TensorFlow、Caffe2、Keras、Theano、PyTorch、Chainer、DyNet、MXNet和CNTK。
如果没有这些框架,深度学习的应用也不会如此广泛。它们抽象出许多底层的复杂度,让我们可以专注于应用。我们尚处于深度学习的早期阶段,很多组织机构都在对深度学习进行大量研究,几乎每天都有突破性的成果,因而,各种框架也都各有利弊。
PyTorch
PyTorch以及其他大多数深度学习框架,主要用于两个方面:
- 用GPU加速过的运算替代与NumPy类似的运算;
- 构建深度神经网络。
让PyTorch越来越受欢迎的是它的易用性和简单性。不同于其他大多数流行的使用静态计算图的深度学习框架,PyTorch使用动态计算,因此在构建复杂架构时可以有更高的灵活性。
PyTorch大量使用了Python概念,例如类、结构和条件循环,允许用户以纯面向对象的方式构建深度学习算法。大部分的其他流行框架引进了自己的编程风格,有时编写新算法会很复杂,甚至不支持直观的调试。后续章节将详细讨论计算图。
尽管PyTorch新近才发布并且还处于β版本,由于它的简单易用和出色的性能、易于调试性,以及来自不同公司如SalesForce等的强大支持,PyTorch受到了数据科学家和深度学习研究人员的巨大欢迎。
由于PyTorch最初主要为研究目的而构建,因此不建议用于那些对延迟要求非常高的生产环境。然而,随着名为Open Neural Network Exchange(ONNX)的新项目的出现,这种情况正在发生改变,该项目的重点是将在PyTorch上开发的模型部署到适用于生产的Caffe2这样的平台上。在本书写作时,这个项目刚刚启动,因而过多的定论还为时尚早。该项目了得到Facebook和微软的支持。
本文摘自由人民邮电出版社异步社区出版的《PyTorch深度学习》
作者:[印度]毗湿奴•布拉马尼亚(Vishnu Subramanian)
译者:王海玲, 刘江峰
《PyTorch深度学习》是使用PyTorch构建神经网络模型的实用指南,内容分为9章,包括PyTorch与深度学习的基础知识、神经网络的构成、神经网络的知识、机器学习基础知识、深度学习在计算机视觉中的应用、深度学习在序列数据和文本中的应用、生成网络、现代网络架构,以及PyTorch与深度学习的未来走向。
《PyTorch深度学习》适合对深度学习领域感兴趣且希望一探PyTorch的业内人员阅读;具备其他深度学习框架使用经验的读者,也可以通过本书掌握PyTorch的用法。
- 为什么现在深度学习才流行起来?
- Nature:深度学习的现在和未来:DeepLearning、无监督学习、NLP
- 各种流行深度学习构架的性能对比
- 为什么说现在是转型深度学习的最好时机?
- 深度学习为何起作用——关键解析和鞍点
- 深度学习为何起作用——关键解析和鞍点
- 教你用深度学习LSTM网络预测流行音乐趋势(附代码)
- 【深度学习】深度学习为何“deep”
- 深度学习流行网络与数据集
- 深度学习三位奠基人共获图灵奖,如今深度学习造势这么猛烈,抓紧学!
- AI_深度学习为何兴起?
- 深度学习远不止.fit()这么简单
- 百度地图学习(一)——为什么选择百度地图API?为何天朝下的生活总是这么丰富多彩?
- 注册了CSDN有1年了,现在才发现有这么个好的学习的地方
- 深度学习流行网络与数据集
- Nature:深度学习的现在和未来:DeepLearning、无监督学习、NLP
- Nature:深度学习的现在和未来:DeepLearning、无监督学习、NLP
- 深度学习为何要“deep”下
- “深度学习已死,可微编程万岁!”LeCun老师为何又语出惊人?
- 目前流行的深度学习网络框架