本書緊密圍繞深度學習及加速技術(shù)的基礎(chǔ)理論與應(yīng)用案例展開敘述,實現(xiàn)了深度學習算法設(shè)計與硬件加速技術(shù)的有機統(tǒng)一,是一本基礎(chǔ)理論與實踐案例相結(jié)合的實用圖書。其具體內(nèi)容涉及人工智能基本概念,神經(jīng)網(wǎng)絡(luò)數(shù)學基礎(chǔ)、神經(jīng)網(wǎng)絡(luò)基本結(jié)構(gòu)與學習策略、反向傳播算法數(shù)學原理與訓(xùn)練機制等神經(jīng)網(wǎng)絡(luò)基礎(chǔ)理論,以及一些高級主題和實踐。本書可作為從事人工智能領(lǐng)域算法研究、架構(gòu)設(shè)計與應(yīng)用實現(xiàn)等工作的科研人員、工程師以及高等院校師生的參考書籍。
前 言
近年來,隨著深度神經(jīng)網(wǎng)絡(luò)算法的發(fā)展,人工智能應(yīng)用的熱潮席卷全球,以深度學習為基礎(chǔ)的信息搜索、圖像處理、機器視覺、自然語言處理、信息推薦、智能決策等技術(shù)已逐步應(yīng)用在智能金融、機器人、智能安防、智能制造、智慧交通、在線傳媒、在線娛樂等領(lǐng)域,推動了人工智能產(chǎn)業(yè)的飛速發(fā)展。
人工智能產(chǎn)業(yè)作為戰(zhàn)略新興產(chǎn)業(yè)得到我國政府的高度重視,2015年以來國家先后出臺了《關(guān)于積極推進“互聯(lián)網(wǎng)+”行動的指導(dǎo)意見》《“十三五”國家科技創(chuàng)新規(guī)劃》《新一代人工智能發(fā)展規(guī)劃》《促進新一代人工智能產(chǎn)業(yè)發(fā)展三年行動計劃(2018—2020年)》等多項政策,積極推動人工智能產(chǎn)業(yè)快速發(fā)展。根據(jù)中國電子學會數(shù)據(jù),2021年我國人工智能核心產(chǎn)業(yè)市場規(guī)模為1300億元,相較于2020年增長了38.9%。根據(jù)《新一代人工智能發(fā)展規(guī)劃》,預(yù)計2025年,我國人工智能核心產(chǎn)業(yè)規(guī)模將超過4000億元,帶動相關(guān)產(chǎn)業(yè)規(guī)模超過5萬億元。我國人工智能產(chǎn)業(yè)市場規(guī)模巨大,人工智能技術(shù)與產(chǎn)業(yè)正處于高速增長期,產(chǎn)業(yè)的發(fā)展需要人才來支撐,然而目前我國人工智能人才嚴重不足,根據(jù)2020年人力資源和社會保障部發(fā)布的《新職業(yè)——人工智能工程技術(shù)人員就業(yè)景氣現(xiàn)狀分析報告》,我國人工智能人才缺口超過500萬,國內(nèi)的供求比例為1∶10,出現(xiàn)了嚴重失衡,如不加強人才培養(yǎng),至2025年,人才缺口將突破1000萬。因此,人工智能產(chǎn)業(yè)人才的培養(yǎng)是人工智能產(chǎn)業(yè)發(fā)展的基礎(chǔ)性工程,積極建設(shè)人工智能學科專業(yè)、改革人工智能課程與教材、實現(xiàn)人工智能創(chuàng)新人才的培養(yǎng)是我國人工智能技術(shù)與產(chǎn)業(yè)發(fā)展的迫切需要。深度學習是人工智能技術(shù)進步與產(chǎn)業(yè)發(fā)展的核心引擎,開展對深度學習算法與加速技術(shù)理論及應(yīng)用的研究,培養(yǎng)具備深度學習理論與加速技術(shù)相關(guān)知識的技術(shù)人才就顯得更加重要。然而傳統(tǒng)的深度學習基礎(chǔ)與應(yīng)用課程所采用的教材不夠完善,大多只注重深度學習算法的基礎(chǔ)理論闡述,而缺少對深度學習算法優(yōu)化技術(shù)與加速技術(shù)的討論,更缺乏基于深度學習的應(yīng)用案例的分析,因此急需一本適合人工智能領(lǐng)域人才培養(yǎng)、偏重深度學習應(yīng)用與加速技術(shù)實現(xiàn)的高水平教材。
基于以上需求,我編寫了本書。本書內(nèi)容分為理論篇與應(yīng)用篇,適合具備不同基礎(chǔ)的讀者學習,旨在培養(yǎng)讀者在深度學習算法及硬件加速方案設(shè)計方面的工程實踐能力。本書不僅注重對深度學習基礎(chǔ)理論的闡述,而且深入分析了處理梯度消失與過擬合現(xiàn)象、選擇合適初始值、優(yōu)化損失函數(shù)等深度學習算法設(shè)計中的關(guān)鍵技術(shù),闡述了深度學習算法硬件加速技術(shù)基礎(chǔ)理論,并給出了加速方案設(shè)計案例,非常有助于讀者理解深度神經(jīng)網(wǎng)絡(luò)在實際應(yīng)用中所遇到的難題并掌握其解決方法。本書具有以下四個特色:
1)不僅引入線性向量空間、內(nèi)積、線性變換與矩陣表示、梯度等神經(jīng)網(wǎng)絡(luò)數(shù)學基礎(chǔ)概念,而且結(jié)合神經(jīng)網(wǎng)絡(luò)算法應(yīng)用重新定義這些數(shù)學概念的物理意義,以加強讀者對基于內(nèi)積、梯度等數(shù)學概念的人工智能算法的設(shè)計能力。
2)詳細分析了梯度消失與梯度爆炸處理、過擬合消除、初始值選擇規(guī)則、可變的學習速度、損失函數(shù)優(yōu)化等深度學習算法設(shè)計中的關(guān)鍵技術(shù),以增強讀者對深度學習算法的理解以及算法設(shè)計能力。
3)解讀了網(wǎng)絡(luò)模型優(yōu)化、計算精度降低與網(wǎng)絡(luò)剪枝技術(shù)、SIMD計算架構(gòu)與GPU加速、TPU計算架構(gòu)與TPU加速、ASIC AI計算架構(gòu)與FPGA加速等深度學習算法硬件加速技術(shù)的基礎(chǔ)理論。
4)重點講解了基于OpenCL的FPGA異構(gòu)并行計算技術(shù)與基于OpenVINO的FPGA深度學習加速技術(shù),引入灰度圖像逆時針旋轉(zhuǎn)、squeezenet網(wǎng)絡(luò)目標識別等FPGA異構(gòu)加速應(yīng)用案例,以提高讀者在深度學習算法設(shè)計及異構(gòu)加速方案實現(xiàn)方面的工程實踐能力。
本書在編寫過程中,不僅受到了湖南省教育廳高水平研究生教材建設(shè)項目與長沙理工大學優(yōu)秀教材建設(shè)項目的資助,而且得到了戴葵教授、研究生陳立等的鼎力相助,同時獲得了Intel和Terasic對加速技術(shù)實驗部分的大力支持,在此一并表示真摯的感謝。由于作者水平有限,加上時間倉促,書中難免有疏漏甚至錯誤之處,敬請同行和讀者批評指正,作者的聯(lián)系方式為baichuang@csust.edu.cn。
CONTENTS
目 錄
前言
理論篇
第1章 人工智能簡介2
1.1 人工智能概念2
1.1.1 人工智能定義2
1.1.2 人工智能發(fā)展歷程3
1.2 人工智能與深度學習4
1.2.1 人工智能與深度學習之間
的關(guān)系4
1.2.2 圖靈機與丘奇-圖靈論題5
1.3 人工智能發(fā)展階段6
1.3.1 人工智能1.0——知識+
算法+算力6
1.3.2 人工智能2.0——數(shù)據(jù)+
算法+算力7
1.3.3 人工智能3.0——知識+
數(shù)據(jù)+算法+算力7
1.3.4 人工智能4.0——存算
一體化8
1.4 人工智能應(yīng)用9
1.4.1 工業(yè)零部件尺寸測量與
缺陷檢測9
1.4.2 目標檢測與跟蹤9
1.4.3 人臉比對與識別10
1.4.4 三維影像重構(gòu)10
第2章 神經(jīng)網(wǎng)絡(luò)數(shù)學基礎(chǔ)12
2.1 線性向量空間12
2.2 內(nèi)積14
2.3 線性變換與矩陣表示15
2.4 梯度17
第3章 神經(jīng)網(wǎng)絡(luò)與學習規(guī)則20
3.1 神經(jīng)元模型與網(wǎng)絡(luò)結(jié)構(gòu)20
3.1.1 神經(jīng)元模型20
3.1.2 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)22
3.2 感知機學習24
3.2.1 感知機定義及結(jié)構(gòu)24
3.2.2 感知機學習規(guī)則25
3.3 Hebb學習28
3.3.1 無監(jiān)督Hebb學習28
3.3.2 有監(jiān)督Hebb學習29
3.4 性能學習30
3.4.1 性能指數(shù)30
3.4.2 梯度下降法31
3.4.3 隨機梯度下降法32
第4章 反向傳播33
4.1 LMS算法33
4.2 反向傳播算法35
4.2.1 性能指數(shù)36
4.2.2 鏈式法則36
4.2.3 反向傳播計算敏感性38
4.2.4 反向傳播算法總結(jié)39
4.3 反向傳播算法變形39
4.3.1 批數(shù)據(jù)訓(xùn)練法40
4.3.2 動量訓(xùn)練法40
4.3.3 標準數(shù)值優(yōu)化技術(shù)42
4.4 反向傳播算法實例分析42
第5章 卷積神經(jīng)網(wǎng)絡(luò)45
5.1 卷積神經(jīng)網(wǎng)絡(luò)基礎(chǔ)45
5.1.1 全連接神經(jīng)網(wǎng)絡(luò)與卷積
神經(jīng)網(wǎng)絡(luò)45
5.1.2 卷積神經(jīng)網(wǎng)絡(luò)組成結(jié)構(gòu)46
5.1.3 卷積神經(jīng)網(wǎng)絡(luò)進化史50
5.2 LeNet50
5.2.1 LeNet結(jié)構(gòu)51
5.2.2 LeNet特點52
5.3 AlexNet52
5.3.1 AlexNet結(jié)構(gòu)52
5.3.2 AlexNet特點54
5.4 VGGNet54
5.4.1 VGG16結(jié)構(gòu)55
5.4.2 VGG16特點57
5.5 GoogLeNet57
5.5.1 Inception結(jié)構(gòu)57
5.5.2 GoogLeNet結(jié)構(gòu)——基于Inception V1模塊59
5.5.3 GoogLeNet特點62
5.6 ResNet62
5.6.1 ResNet殘差塊結(jié)構(gòu)63
5.6.2 ResNet結(jié)構(gòu)63
5.6.3 ResNet特點66
第6章 目標檢測與識別67
6.1 R-CNN67
6.1.1 基于SS方法的候選區(qū)域
選擇68
6.1.2 候選區(qū)域預(yù)處理68
6.1.3 CNN特征提取69
6.1.4 SVM目標分類69
6.1.5 Bounding box回歸70
6.2 Fast R-CNN70
6.2.1 基于SS方法的候選區(qū)域
生成71
6.2.2 CNN分類與回歸71
6.2.3 Fast R-CNN目標檢測
算法特點72
6.3 Faster R-CNN73
6.3.1 CNN特征提取73
6.3.2 RPN候選框生成74
6.3.3 CNN分類與回歸74
6.3.4 Faster R-CNN目標檢測
算法特點75
6.4 YOLO75
6.4.1 YOLOv175
6.4.2 YOLOv277
6.4.3 YOLOv380
第7章 深度學習優(yōu)化技術(shù)83
7.1 梯度消失83
7.2 過擬合85
7.2.1 增加訓(xùn)練數(shù)據(jù)集85
7.2.2 regularization86
7.2.3 dropout技術(shù)88
7.3 初始值與學習速度89
7.3.1 初始值選擇規(guī)則89
7.3.2 可變的學習速度91
7.4 損失函數(shù)92
7.4.1 均方誤差損失函數(shù)92
7.4.2 cross-entropy損失函數(shù)93
7.4.3 log-likelyhood損失函數(shù) 95
第8章 深度學習加速技術(shù)96
8.1 軟件模型優(yōu)化技術(shù)96
8.1.1 網(wǎng)絡(luò)模型優(yōu)化96
8.1.2 計算精度降低97
8.1.3 網(wǎng)絡(luò)剪枝技術(shù)97
8.2 GPU加速技術(shù)98
8.3 TPU加速技術(shù)100
8.4 FPGA加速技術(shù)102
8.4.1 全連接神經(jīng)網(wǎng)絡(luò)加速102
8.4.2 卷積神經(jīng)網(wǎng)絡(luò)加速103
應(yīng)用篇
第9章 基于OpenCL的FPGA異構(gòu)
并行計算技術(shù)106
9.1 OpenCL技術(shù)基礎(chǔ)與環(huán)境搭建106
9.1.1 OpenCL技術(shù)基礎(chǔ)106
9.1.2 OpenCL環(huán)境搭建107
9.2 OpenCL異構(gòu)并行計算架構(gòu)115
9.2.1 平臺模型116
9.2.2 執(zhí)行模型116
9.2.3 內(nèi)存模型117
9.3 OpenCL C語言基本語法與程序
設(shè)計118
9.3.1 基本語法與關(guān)鍵字118
9.3.2 數(shù)據(jù)類型119
9.3.3 維度與工作項122
9.3.4 其他注意事項123
9.4 基于OpenCL的FPGA異構(gòu)并行
計算實現(xiàn)方法123
9.4.1 主程序設(shè)計123
9.4.2 內(nèi)核程序設(shè)計139
第10章 基于OpenCL的FPGA異構(gòu)
并行計算應(yīng)用案例140
10.1 整體描述140
10.2 內(nèi)核