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