Chapter 1: Getting Started with Deep Learning Using PyTorch
AI 定义:通常由人类完成的智能任务通过机器自动化实现(the automation of intellectual tasks normally performed by humans)。
AI 历史:AI 首先于 1956 年被 John McCarthy 提出。AI 早期就能够解决人类难以完成的问题。Alan Turing 通过 AI 系统解码 Enigma 就是实例之一。但是早期的 AI 是基于逻辑实现的,难以实现在人类看来极其简单的工作,比如:分辨猫狗、判断人的情绪。基于逻辑实现的 AI 也被称作"基于符号的 AI(symbolic AI)",但是这种实现方式只适用于有明确定义的、强逻辑性的问题,难以用于解决场景复杂、特征多样的问题(image recognition,object detection,language translation等)。于是新的 AI 实现方法得以发展,用于解决上述问题。
-
AI,ML,DL 的隶属关系
image.png -
ML 是 AI 的子域,过去十年内逐渐流行(本书著于 2018)。ML 是基于大量数据实现的,与基于符号的 AI 在实现路径上有本质上的区别。整体而言,ML 通过海量数据中习得规则,并应用这些规则实现新数据的预测。这一方法对于价格预测、推荐系统等结构化数据,具有很好的效果。因此使用 ML 算法很重要的一点——特征工程,就是数据分析师需要获取并整理特征数据以符合 ML 算法的要求。尤其是在机器视觉(CV,computer vision)和自然语言处理(NLP,natural language processing)领域,特征工程往往极具挑战,因为这些数据都是高维数据。一个直观的例子就是:加入你的数据集由 224x224x3(长度、宽度、红绿蓝三通道) 的图片构成,那么你需要一个包含 150528 维数据的矩阵或数组存储于内存中,而这仅仅是一张图片,如果你想要构建一个 1000 张图片的分类器,那么就需要 1000 个 150528维数据的存储。这一挑战的基础上,AI 继续发展以解决高维数据的问题。
image.png 传统 ML 算法通过人工的方式进行特征提取,而 DL 算法则使用现代化技术自动提取特征。
由于 GPUs, Big data, Cloud providers 的发展,并且众多架构(Torch, TensorFlow, Cafffe, PyTorch 等)的开发迭代,DL 在过去几年经历了飞速发展。目前流行的应用包括有: 图片分类(近人类水平),语音识别(近人类水平),机器翻译,自动驾驶,肺癌诊断等。但是现阶段的 DL 应用,都是从现有数据中寻找模式来预测未来的结果,离真正意义的人工智能相距甚远。
DL 关键技术年表。
技术 | 时间 |
---|---|
神经网络(Neural networks) | 1943 |
反向传播(Backpropagation) | 1960年代早期 |
卷积网络(Convolution neural networks) | 1979 |
循环网络(Recurrent neural networks) | 1980 |
长短期记忆网络(Long Short-Term Memory) | 1997 |
DL 近几年才大发展的重要原因:1 硬件可用性;2 数据和算法;3 DL架构
-
硬件可用性。DL 需要进行 millions级乃至 billiions级的数学运算。而现有的 CPU 算力达不到要求。但是 GPU 的出现解决了这个问题。虽然 GPU 本意用于游戏行业渲染高质量的动画视频,但是在 DL 算法运算上也表现出高效的性能。能够有效将 CPU 上需要一个月时间完成的项目,缩短至几天内完成。
image.png 数据和算法。数据是 DL 成功应用最关键的因素。现在 CV 领域有大量已经人工标注的数据集,可用于做 benchmark。如:MNIST, COCO dataset, CIFAR, The Street View House Numbers, PASCAL VOC, Wikipedia dump, 20 Newsgroups, Penn Treebank, Kaggle等。
DL 架构。PyTorch, TensorFlow 等架构能够使得使用者高效建立深度神经网络,并且用 GPU 加速运算代替 NumPy 一类的数组运算。