新書推薦:
《
二十四节气生活美学
》
售價:NT$
340.0
《
西班牙内战:秩序崩溃与激荡的世界格局:1936-1939
》
售價:NT$
990.0
《
基于鲲鹏的分布式图分析算法实战
》
售價:NT$
495.0
《
夺回大脑 如何靠自己走出强迫
》
售價:NT$
299.0
《
图解机械工程入门
》
售價:NT$
440.0
《
中文版SOLIDWORKS 2024机械设计从入门到精通(实战案例版)
》
售價:NT$
450.0
《
旷野人生:吉姆·罗杰斯的全球投资探险
》
售價:NT$
345.0
《
希腊人(伊恩·莫里斯文明史系列)
》
售價:NT$
845.0
|
編輯推薦: |
1. 涵盖多种机器学习硬件和平台,以及各类机器学习硬件加速器解决方案,读者可根据需要将这些解决方案应用于合适的机器学习算法。2. 对现有研究成果和产品进行回顾,分析不同的机器学习模型,并通过FPGA和ASIC方法解释目标机器学习模型的设计。3. 对硬件设计的未来方向进行展望,涉及传统微处理器、GPU、FPGA和ASIC等,帮助读者了解现代研究趋势,进而实现自己的设计。
|
內容簡介: |
本书主要讨论机器学习、神经形态计算和神经网络的理论及应用,专注于机器学习加速器和硬件开发。本书从传统的微处理架构发展历程入手,介绍在后摩尔定律和后丹纳德微缩定律下,新型架构的发展趋势和影响执行性能的各类衡量指标。然后从应用领域、ASIC和特定领域架构三个角度展示了设计特定的硬件实现所需考虑的诸多因素。接着结合机器学习开发过程及其性能提升方法(如模型压缩、编码、近似、优化等)介绍硬件实现的细节。最后给出机器学习硬件实现的大量案例,展示机器如何获得思维能力。本书适合有一定机器学习基础并希望了解更多技术发展趋势的读者阅读。
|
關於作者: |
Shigeyuki Takano,目前在一家顶尖的汽车公司担任工程师,从事深度学习处理器的开发。曾在三洋半导体(Sanyo Semiconductor)公司从事数字信号处理器的开发;还曾任职于多玩国(Dowango)公司,从事硬件视频转码器原型的开发和实现。此外,他正在庆应义塾大攻读计算机工程博士学位,研究领域为处理器体系结构,特别是针对领域特定的体系结构。
|
目錄:
|
CONTENTS
目 录
译者序
前言
第1章 简介 1
1.1 机器学习的曙光 1
1.1.1 “Jeopardy!”中的IBM Watson
挑战 1
1.1.2 ImageNet挑战 2
1.1.3 谷歌AlphaGo挑战职业
围棋选手 2
1.2 机器学习及其应用 3
1.2.1 定义 3
1.2.2 应用 3
1.3 学习及其性能指标 4
1.3.1 学习前的准备 5
1.3.2 学习方法 7
1.3.3 性能指标和验证 8
1.4 例子 11
1.4.1 工业4.0 11
1.4.2 交易(区块链) 12
1.5 机器学习的总结 15
1.5.1 与人工智能的区别 15
1.5.2 炒作周期 15
第2章 传统的微架构 16
2.1 微处理器 16
2.1.1 处理器核心的微架构 16
2.1.2 微处理器的编程模型 17
2.1.3 微处理器的复杂性 18
2.1.4 超标量处理器的优点和
缺点 20
2.1.5 寄存器文件的规模 20
2.1.6 分支预测及其惩罚 20
2.2 多核处理器 21
2.2.1 众核的概念 21
2.2.2 编程模型 21
2.3 数字信号处理器 22
2.3.1 DSP的概念 22
2.3.2 DSP微架构 23
2.4 图形处理单元 24
2.4.1 GPU的概念 24
2.4.2 GPU微架构 24
2.4.3 GPU上的编程模型 26
2.4.4 将GPU应用于计算系统 26
2.5 现场可编程门阵列 27
2.5.1 FPGA的概念 27
2.5.2 FPGA微架构 27
2.5.3 FPGA设计流程 28
2.5.4 将FGPA应用于计算系统 29
2.6 特定领域架构的前景 30
2.6.1 过去的计算机行业 30
2.6.2 机器学习硬件的历史 31
2.6.3 重新审视机器学习硬件 32
2.7 执行性能的衡量指标 34
2.7.1 延迟和吞吐量 34
2.7.2 每秒的操作数 35
2.7.3 能耗和功耗 36
2.7.4 能效 37
2.7.5 利用情况 39
2.7.6 数据重用 40
2.7.7 面积 41
2.7.8 成本 41
第3章 机器学习及其实现 43
3.1 神经元及其网络 43
3.2 神经形态计算 45
3.2.1 脉冲时序依赖可塑性和
学习 45
3.2.2 神经形态计算硬件 46
3.2.3 地址-事件表示 48
3.3 神经网络 49
3.3.1 神经网络模型 50
3.3.2 以前和现在的神经网络 52
3.3.3 神经网络硬件 53
3.4 用于模拟实现的内存单元 57
第4章 应用、ASIC和特定领域架构 58
4.1 应用 58
4.1.1 应用的概念 58
4.2 应用的特征 59
4.2.1 局部性 59
4.2.2 死锁 60
4.2.3 依赖性 62
4.2.4 时间和空间操作 64
4.3 特定应用的集成电路 65
4.3.1 设计约束 65
4.3.2 模块化结构和大规模生产 69
4.3.3 牧村波动 70
4.3.4 设计流程 71
4.4 特定领域架构 71
4.4.1 特定领域架构简介 71
4.4.2 特定领域语言 72
4.5 机器学习硬件 73
4.6 深度学习上的推理分析和训练
分析 74
4.6.1 深度学习上的推理分析 74
4.6.2 深度学习上的训练分析 76
第5章 机器学习模型开发 79
5.1 开发过程 79
5.1.1 开发周期 79
5.1.2 交叉验证 80
5.1.3 软件栈 81
5.2 编译器 82
5.2.1 ONNX 82
5.2.2 NNVM 83
5.2.3 TensorFlow XLA 83
5.3 代码优化 83
5.3.1 提取数据级并行 83
5.3.2 内存访问优化 84
5.4 Python脚本语言和虚拟机 85
5.4.1 Python和优化 85
5.4.2 虚拟机 86
5.5 计算统一设备架构 87
第6章 性能提升方法 89
6.1 模型压缩 89
6.1.1 剪枝 89
6.1.2 dropout 93
6.1.3 dropconnect 94
6.1.4 蒸馏 94
6.1.5 主成分分析 96
6.1.6 权重共享 97
6.2 数值压缩 99
6.2.1 量化和数值精度 100
6.2.2 对内存占用和推理准确性
的影响 103
6.2.3 切边和剪裁 109
6.3 编码 110
6.3.1 游程编码 110
6.3.2 霍夫曼编码 111
6.3.3 压缩的效果 113
6.4 零值跳过 116
6.4.1 零值跳过的概念 116
6.4.2 CSR和CSC的稀疏表示 116
6.4.3 零值跳过的用例 119
6.5 近似 121
6.5.1 近似的概念 121
6.5.2 激活函数近似 121
6.5.3 乘法器的近似 123
6.6 优化 125
6.6.1 模型优化 125
6.6.2 数据流优化 126
6.7 性能提升方法的总结 128
第7章 硬件实现的案例研究 130
7.1 神经形态计算 130
7.1.1 模拟逻辑电路 130
7.1.2 数字逻辑电路 131
7.2 深度神经网络 135
7.2.1 模拟逻辑电路 135
7.2.2 DSP 137
7.2.3 FPGA 139
7.2.4 ASIC 145
7.3 量子计算 175
7.4 研究案例的总结 175
7.4.1 神经形态计算的案例
研究 181
7.4.2 深度神经网络的案例
研究 181
7.4.3 神经形态计算和深度神经
网络硬件之间的比较 182
第8章 硬件实现的关键 183
8.1 市场增长预测 183
8.1.1 IoT市场 183
8.1.2 机器人市场 184
8.1.3 大数据和机器学习市场 184
8.1.4 药物研发中的人工智能
市场 185
8.1.5 FPGA市场 185
8.1.6 深度学习芯片市场 185
8.2 设计和成本之间的权衡 186
8.3 硬件实现策略 188
8.3.1 策略规划的要求 188
8.3.2 基本策略 191
8.3.3 替代因子 193
8.4 硬件设计要求概述 193
第9章 结论 194
附录A 深度学习基础 195
A.1 等式模型 195
A.1.1 前馈神经网络模型 196
A.1.2 激活函数 196
A.1.3 输出层 197
A.1.4 学习和反向传播 197
A.1.5 参数初始化 201
A.2 用于深度学习的矩阵操作 201
A.2.1 矩阵表示及其布局 202
A.2.2 用于学习的矩阵操作
序列 203
A.2.3 学习优化 203
A.2.4 偏置-方差问题 203
附录B 深度学习硬件建模 205
B.1 深度学习硬件的概念 205
B.1.1 参数空间与传播之间的
关系 205
B.1.2 基本的深度学习硬件 206
B.2 深度学习硬件上的数据流 206
B.3 机器学习硬件架构 207
附录C 高级神经网络模型 208
C.1 CNN变体 208
C.1.1 卷积架构 208
C.1.2 卷积的后向传播 210
C.1.3 卷积的变体 213
C.1.4 深度卷积对抗生成
网络 215
C.2 RNN变体 215
C.2.1 RNN架构 215
C.2.2 LSTM和GRU单元 216
C.2.3 公路网络 218
C.3 自编码器变体 218
C.3.1 堆式去噪自编码器 218
C.3.2 梯形网络 219
C.3.3 变分自编码器 220
C.4 残差网络 221
C.4.1 残差网络的概念 221
C.4.2 残差网络效应 221
C.5 图神经网络 222
C.5.1 图神经网络的概念 222
附录D 国家研究、趋势和投资 224
D.1 中国 224
D.1.1 下一代人工智能发展
计划 224
D.2 美国 225
D.2.1 SyNAPSE计划 225
D.2.2 UPSIDE计划 225
D.2.3 MICrONS计划 225
D.3 欧洲 225
D.4 日本 226
D.4.1 内政及通信省 226
D.4.2 文部科学省 226
D.4.3 日本经济贸易产业省 226
D.4.4 内务省 227
附录E 机器学习对社会的影响 228
E.1 产业 228
E.1.1 过去的产业 228
E.1.2 下一个产业 230
E.1.3 开源的软件和硬件 230
E.1.4 社会企业和共享经济 231
E.2 机器学习与我们 231
E.2.1 机器学习可替代的领域 231
E.2.2 产业整合 232
E.2.3 一个简化的世界 232
E.3 社会与个人 233
E.3.1 将编程引入教育 233
E.3.2 价值改变 233
E.3.3 社会支持 235
E.3.4 犯罪 235
E.4 国家 236
E.4.1 警察和检察官 236
E.4.2 行政、立法和司法 236
E.4.3 军事 236
参考文献 237
|
內容試閱:
|
PREFACE
前 言
2012年,机器学习被应用于图像识别,并提供了很高的推理准确性。此外,还开发了一个机器学习系统,可以在国际象棋和围棋游戏中挑战人类专家,并成功地击败了世界级的专业人士。半导体技术的进步提高了完成深度学习任务所需的执行性能和数据存储容量。不仅如此,互联网还提供了大量的数据,可以被应用于神经网络模型的训练。研究环境的改善为机器学习领域带来了突破性进展。
深度学习在世界各地的应用越来越广泛,特别是在互联网服务和社会基础设施的管理方面。深度学习的神经网络模型在开源的基础设施和高性能计算系统上运行,使用专用的图形处理单元(GPU)。然而,GPU会消耗大量的电力(300W),因此数据中心在应用大量的GPU时,必须管理电力消耗和产生的热能以降低运营成本。高昂的运营成本使人们难以使用GPU,即使是在有云服务的情况下。此外,虽然我们应用了开源软件工具,但机器学习平台是由特定的CPU和GPU供应商控制的。我们不能从各种产品中进行选择,而且几乎没有什么多样性可言。但多样性是必要的,不仅对于软件程序如此,对于硬件设备也是如此。2018年是深度学习的特定领域架构(DSA)的开端之年,各种初创公司开发了自己的深度学习处理器,与此同时还出现了硬件多样性。
本书介绍了不同的机器学习硬件和平台,描述了各种类型的硬件架构,并提供了未来硬件设计的方向。书中涵盖各类机器学习模型,包括神经形态计算和神经网络模型,例如深度学习。此外,还介绍了开发深度学习的一般周期设计过程。本书对多核处理器、数字信号处理器(DSP)、现场可编程门阵列(FPGA)和特定应用集成电路(ASIC)等示例产品也进行了介绍,并总结了硬件架构设计的关键点。虽然本书主要关注深度学习,但也对神经形态计算进行了简要描述。书中还考虑了硬件设计的未来方向,并对传统微处理器、GPU、FPGA和ASIC的未来发展进行了展望。为了展示这一领域的当前趋势,本书描述了当前的机器学习模型及其平台,使读者能够更好地了解现代研究趋势,并考虑未来的设计,进而有自己的想法。
为了展示相关技术的基本特征,附录介绍了作为基本深度学习方法的前馈神经网络模型,并提供了一个硬件设计实例。此外,附录还详细介绍了高级神经网络模型,使读者能够考虑不同的硬件来支持这种模型。最后,附录还介绍了与深度学习相关的各国研究趋势和各类社会问题。
全书概要
第1章提供了一个深度学习基础的例子,并解释了其应用。本章介绍了训练(学习)—这是机器学习的核心部分,包括它的评估以及验证方法。工业4.0是一个应用实例,这是一个先进的行业定义,支持客户适应性和优化工厂生产线的需求。此外,还介绍了区块链在机器学习中的应用。区块链是一个有形和无形财产的账本系统,该系统将被用于深度学习的各种目的。
第2章介绍用于机器学习的基本硬件基础设施,如微处理器、多核处理器、DSP、GPU和FPGA,包括微架构及其编程模型。本章还讨论了最近在通用计算机器中使用GPU和FPGA的原因,以及为什么微处理器在提高执行性能时遇到了困难。本章还解释了市场趋势在应用前景方面的变化。此外,还简要介绍了评估执行性能的指标。
第3章首先描述了一个形式化的神经元模型,然后讨论了神经形态计算模型和神经网络模型,这两个模型是最近脑启发计算的主要实现方法。神经形态计算包括大脑的脉冲时序依赖可塑性(STDP)特征,这似乎在学习中起着关键作用。此外,本章还解释了用于脉冲传输的地址-事件表示(AER)。关于神经网络,我们对浅层神经网络和深层神经网络(有时被称为深度学习)都进行了简单的解释。如果你想了解深度学习任务,那么附录A可以作为一份简介。
第4章介绍了ASIC和特定领域架构。算法被描述为对应用的表示,形成了传统计算机上的软件。本章接着介绍了应用程序设计(不仅是软件开发)所涉及的局部性、死锁属性、依赖性以及(到计算机核心的)时间和空间映射等特征。好的硬件架构有好的设计,可以有效地利用这些因素。死锁属性和依赖性由一般资源系统统一解释。此外,本章还解释了设计约束。最后,在Alex Net的案例中分析了推理和训练方面的深度学习任务。
第5章简要解释了机器学习模型—神经网络模型的开发过程,以及编码后的模型如何通过Python脚本语言的虚拟机器在计算系统上工作。此外,还解释了向量化、SIMD化和内存访问对齐等代码优化技术。这些技术提高了数据级的并行性—这是数据密集型计算的一个指标。这些技术也提高了执行性能,就像在深度神经网络任务中所表现的那样。除此之外,本章还介绍了计算统一设备架构(CUDA)。CUDA是英伟达公司的通用编程基础设施,用于数据密集型计算,包括深度学习任务。你将看到一个基于GPU的系统是如何工作的。
第6章解释了提高执行性能的方法,主要包含模型压缩、数值压缩、编码、零值跳过、近似和优化六种方法。模型压缩包括剪枝、dropout、dropconnect、蒸馏、主成分分析(PCA)和权重共享。数值压缩包括量化、低精度数值表示、切边和剪裁。编码解释了游程编码和霍夫曼编码。零值跳过包括压缩稀
|
|