遷移學(xué)習(xí)是機(jī)器學(xué)習(xí)技術(shù)的一種,它可以從一系列機(jī)器學(xué)習(xí)問題的訓(xùn)練中獲得知識,并將這些知識用于訓(xùn)練其他相似類型的問題。
本書分為3個(gè)部分:第1部分是深度學(xué)習(xí)基礎(chǔ),介紹了機(jī)器學(xué)習(xí)的基礎(chǔ)知識、深度學(xué)習(xí)的基礎(chǔ)知識和深度學(xué)習(xí)的架構(gòu);第2部分是遷移學(xué)習(xí)精要,介紹了遷移學(xué)習(xí)的基礎(chǔ)知識和遷移學(xué)習(xí)的威力;第3部分是遷移學(xué)習(xí)案例研究,介紹了圖像識別和分類、文本文檔分類、音頻事件識別和分類、DeepDream算法、風(fēng)格遷移、自動圖像掃描生成器、圖像著色等內(nèi)容。
本書適合數(shù)據(jù)科學(xué)家、機(jī)器學(xué)習(xí)工程師和數(shù)據(jù)分析師閱讀,也適合對機(jī)器學(xué)習(xí)和遷移學(xué)習(xí)感興趣的讀者閱讀。在閱讀本書之前,希望讀者對機(jī)器學(xué)習(xí)和Python編程有基本的掌握。
1. 快速掌握知識點(diǎn)
本書能帶你厘清機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的關(guān)鍵基本概念,對重要的深度學(xué)習(xí)架構(gòu)進(jìn)行描述,卷積神經(jīng)網(wǎng)絡(luò)、深度神經(jīng)網(wǎng)絡(luò)、遞歸神經(jīng)網(wǎng)絡(luò)、長短時(shí)記憶神經(jīng)網(wǎng)絡(luò)以及膠囊網(wǎng)絡(luò)都有所涉及。
2. 用實(shí)操夯實(shí)遷移學(xué)習(xí)理論
通過閱讀本書,讀者能夠深刻理解遷移學(xué)習(xí)的相關(guān)概念,并結(jié)合相關(guān)的編程案例掌握模型凍結(jié)、模型調(diào)優(yōu)、預(yù)訓(xùn)練模型(包括VGG模型、Inception模型和ResNet模型)等。
3. 掌握實(shí)用技能
本書集中討論了大量現(xiàn)實(shí)世界中不同領(lǐng)域的案例和問題,例如計(jì)算機(jī)視覺、音頻分析以及自然語言處理。
迪潘簡·撒卡爾(Dipanjan Sarkar)是英特爾公司的一名數(shù)據(jù)科學(xué)家,他利用數(shù)據(jù)科學(xué)、機(jī)器學(xué)習(xí)和深度學(xué)習(xí)來構(gòu)建大規(guī)模的智能系統(tǒng)。他擁有數(shù)據(jù)科學(xué)和軟件工程專業(yè)的碩士學(xué)位。
他從事分析工作多年,專攻機(jī)器學(xué)習(xí)、自然語言處理(Natural Language Processing,NLP)、統(tǒng)計(jì)方法和深度學(xué)習(xí)。他對教育充滿熱情,同時(shí)還在Springboard等組織中擔(dān)任數(shù)據(jù)科學(xué)導(dǎo)師,幫助人們學(xué)習(xí)數(shù)據(jù)科學(xué)。他還是人工智能和數(shù)據(jù)科學(xué)領(lǐng)域的領(lǐng)先在線期刊《面向數(shù)據(jù)科學(xué)》的主要編著者和編輯,他還編寫了幾本關(guān)于R、Python、機(jī)器學(xué)習(xí)、NLP和深度學(xué)習(xí)的書。
拉格哈夫·巴利(Raghav Bali)是Optum的數(shù)據(jù)科學(xué)家。他的工作涉及研究和開發(fā)基于機(jī)器學(xué)習(xí)、深度學(xué)習(xí)和NLP的企業(yè)級解決方案,用于醫(yī)療和保險(xiǎn)領(lǐng)域的相關(guān)用例。之前在英特爾公司的工作中,他參與了數(shù)據(jù)主動驅(qū)動IT的提案。他還曾在企業(yè)資源計(jì)劃(Enterprise Resource Planning,ERP)和金融領(lǐng)域的一些世界領(lǐng)先的組織工作。他已經(jīng)和一些優(yōu)秀的出版社合作出版了多本書籍。
Raghav在班加羅爾國際信息技術(shù)學(xué)院作為優(yōu)秀畢業(yè)生獲得了信息技術(shù)碩士學(xué)位。他熱愛閱讀,在工作不忙時(shí),他是一個(gè)熱衷于捕捉生活瞬間的攝影愛好者。
塔莫格納·戈什(Tamoghna Ghosh)是英特爾公司的機(jī)器學(xué)習(xí)工程師。他共有11年的工作經(jīng)驗(yàn),其中包括4年在微軟印度研究院的核心研究經(jīng)驗(yàn)。在微軟研究院期間,他曾擔(dān)任分組密碼的密碼分析的研究助理。
他的技術(shù)專長包括大數(shù)據(jù)、機(jī)器學(xué)習(xí)、NLP、信息檢索、數(shù)據(jù)可視化和軟件開發(fā)。他在加爾各答印度統(tǒng)計(jì)研究所獲得了工學(xué)碩士(計(jì)算機(jī)科學(xué))學(xué)位,在加爾各答大學(xué)獲得了理學(xué)碩士(數(shù)學(xué))學(xué)位。他的專業(yè)研究領(lǐng)域?yàn)楣δ苄苑治、?shù)學(xué)建模以及動態(tài)系統(tǒng)。他對教學(xué)工作充滿熱情,并為英特爾公司開展了不同級別的數(shù)據(jù)科學(xué)內(nèi)部培訓(xùn)。
第 1部分 深度學(xué)習(xí)基礎(chǔ)
第 1章 機(jī)器學(xué)習(xí)基礎(chǔ) 2
1.1 什么是機(jī)器學(xué)習(xí) 3
1.1.1 機(jī)器學(xué)習(xí)的正式定義 4
1.1.2 淺層學(xué)習(xí)和深度學(xué)習(xí) 4
1.2 機(jī)器學(xué)習(xí)算法 5
1.2.1 監(jiān)督學(xué)習(xí) 6
1.2.2 無監(jiān)督學(xué)習(xí) 9
1.3 CRISP-DM 11
1.3.1 業(yè)務(wù)理解 12
1.3.2 數(shù)據(jù)理解 12
1.3.3 數(shù)據(jù)準(zhǔn)備 13
1.3.4 建模 13
1.3.5 評估 13
1.3.6 部署 14
1.4 標(biāo)準(zhǔn)機(jī)器學(xué)習(xí)工作流 14
1.4.1 數(shù)據(jù)檢索 15
1.4.2 數(shù)據(jù)準(zhǔn)備 15
1.4.3 建模 16
1.4.4 模型評估和調(diào)優(yōu) 17
1.4.5 部署和監(jiān)控 21
1.5 探索性數(shù)據(jù)分析 22
1.6 特征提取和特征工程 29
1.7 特征選擇 33
1.8 總結(jié) 34
第 2章 深度學(xué)習(xí)精要 35
2.1 什么是深度學(xué)習(xí) 35
2.2 深度學(xué)習(xí)框架 37
2.3 創(chuàng)建一個(gè)支持GPU的云端深度學(xué)習(xí)環(huán)境 40
2.3.1 選擇一個(gè)云供應(yīng)商 41
2.3.2 設(shè)置虛擬服務(wù)器 41
2.3.3 配置虛擬服務(wù)器 45
2.3.4 安裝和升級深度學(xué)習(xí)依賴項(xiàng) 47
2.3.5 訪問深度學(xué)習(xí)云環(huán)境 52
2.3.6 在深度學(xué)習(xí)環(huán)境中驗(yàn)證啟用GPU 53
2.4 創(chuàng)建一個(gè)支持GPU的、健壯的內(nèi)部深度學(xué)習(xí)環(huán)境 55
2.5 神經(jīng)網(wǎng)絡(luò)基礎(chǔ) 55
2.5.1 一個(gè)簡單的線性神經(jīng)元 55
2.5.2 基于梯度的最優(yōu)化問題 56
2.5.3 雅可比矩陣和海森矩陣 60
2.5.4 導(dǎo)數(shù)的鏈?zhǔn)椒▌t 61
2.5.5 隨機(jī)梯度下降法 61
2.5.6 非線性神經(jīng)單元 64
2.5.7 學(xué)習(xí)一個(gè)簡單的非線性單元——邏輯單元 66
2.5.8 損失函數(shù) 67
2.5.9 數(shù)據(jù)表示 68
2.5.10 多層神經(jīng)網(wǎng)絡(luò) 71
2.5.11 反向傳播——訓(xùn)練深度神經(jīng)網(wǎng)絡(luò) 73
2.5.12 神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)中的挑戰(zhàn) 75
2.5.13 模型參數(shù)初始化 78
2.5.14 提升SGD 80
2.5.15 神經(jīng)網(wǎng)絡(luò)的過擬合和欠擬合 81
2.5.16 神經(jīng)網(wǎng)絡(luò)的超參數(shù) 84
2.6 總結(jié) 85
第3章 理解深度學(xué)習(xí)架構(gòu) 86
3.1 神經(jīng)網(wǎng)絡(luò)架構(gòu) 86
3.2 各種神經(jīng)網(wǎng)絡(luò)架構(gòu) 88
3.2.1 多層感知機(jī)和深度神經(jīng)網(wǎng)絡(luò) 88
3.2.2 自編碼神經(jīng)網(wǎng)絡(luò) 88
3.2.3 變分自編碼器 89
3.2.4 生成式對抗網(wǎng)絡(luò) 91
3.2.5 卷積神經(jīng)網(wǎng)絡(luò) 93
3.2.6 膠囊網(wǎng)絡(luò) 103
3.2.7 遞歸神經(jīng)網(wǎng)絡(luò) 107
3.2.8 記憶神經(jīng)網(wǎng)絡(luò) 114
3.2.9 神經(jīng)圖靈機(jī) 117
3.2.10 基于注意力的神經(jīng)網(wǎng)絡(luò)模型 121
3.3 總結(jié) 122
第 2部分 遷移學(xué)習(xí)精要
第4章 遷移學(xué)習(xí)基礎(chǔ) 124
4.1 遷移學(xué)習(xí)簡介 124
4.2 遷移學(xué)習(xí)策略 127
4.3 遷移學(xué)習(xí)和深度學(xué)習(xí) 129
4.3.1 遷移學(xué)習(xí)方法論 130
4.3.2 預(yù)訓(xùn)練模型 131
4.3.3 應(yīng)用 131
4.4 深度遷移學(xué)習(xí)類型 132
4.4.1 領(lǐng)域適應(yīng) 132
4.4.2 領(lǐng)域混淆 132
4.4.3 多任務(wù)學(xué)習(xí) 133
4.4.4 一次性學(xué)習(xí) 133
4.4.5 零樣本學(xué)習(xí) 134
4.5 遷移學(xué)習(xí)的挑戰(zhàn) 134
4.5.1 負(fù)向遷移 134
4.5.2 遷移邊界 135
4.6 總結(jié) 135
第5章 釋放遷移學(xué)習(xí)的威力 136
5.1 遷移學(xué)習(xí)的必要性 137
5.1.1 闡述現(xiàn)實(shí)世界問題 137
5.1.2 構(gòu)建數(shù)據(jù)集 138
5.1.3 描述方法 140
5.2 從零開始構(gòu)建CNN模型 140
5.2.1 基本CNN模型 143
5.2.2 正則化的CNN模型 146
5.2.3 圖像增強(qiáng)的CNN模型 148
5.3 使用預(yù)訓(xùn)練的CNN模型利用遷移學(xué)習(xí) 153
5.3.1 理解VGG-16模型 154
5.3.2 作為特征提取器的預(yù)訓(xùn)練CNN模型 156
5.3.3 作為特征提取器并使用圖像增強(qiáng)的預(yù)訓(xùn)練CNN模型 162
5.3.4 使用微調(diào)和圖像增強(qiáng)的預(yù)訓(xùn)練CNN模型 164
5.4 評估我們的深度學(xué)習(xí)模型 168
5.4.1 模型在一個(gè)樣本測試圖像上進(jìn)行預(yù)測 168
5.4.2 將CNN模型的感知可視化 170
5.4.3 在測試數(shù)據(jù)上評估模型性能 174
5.5 總結(jié) 177
第3部分 遷移學(xué)習(xí)案例研究
第6章 圖像識別和分類 180
6.1 基于深度學(xué)習(xí)的圖像分類 180
6.2 基準(zhǔn)數(shù)據(jù)集 181
6.3 最先進(jìn)的深度圖像分類模型 182
6.4 圖像分類和遷移學(xué)習(xí) 183
6.4.1 CIFAR-10數(shù)據(jù)集 183
6.4.2 犬種鑒定數(shù)據(jù)集 189
6.5 總結(jié) 199
第7章 文本文檔分類 200
7.1 文本分類 201
7.1.1 傳統(tǒng)文本分類 201
7.1.2 BoW模型的缺點(diǎn) 202
7.1.3 基準(zhǔn)數(shù)據(jù)集 203
7.2 單詞表示形式 204
7.2.1 Word2vec模型 204
7.2.2 使用gensim框架的Word2vec模型 205
7.2.3 GloVe模型 208
7.3 CNN文檔模型 210
7.3.1 構(gòu)建一個(gè)評論情感分類器 216
7.3.2 哪些單詞嵌入變化最大 220
7.3.3 遷移學(xué)習(xí)在IMDB數(shù)據(jù)集中的應(yīng)用 220
7.3.4 使用Wordvec嵌入在完整的IMDB數(shù)據(jù)集上進(jìn)行訓(xùn)練 223
7.3.5 使用CNN模型創(chuàng)建文檔摘要 224
7.3.6 使用CNN模型進(jìn)行多類別分類 228
7.3.7 文檔嵌入可視化 231
7.4 總結(jié) 233
第8章 音頻事件識別和分類 234
8.1 理解音頻事件分類 235
8.2 音頻事件的探索性分析 236
8.3 音頻事件的特征工程和表示方法 245
8.4 使用遷移學(xué)習(xí)進(jìn)行音頻事件分類 249
8.4.1 根據(jù)基本特征構(gòu)建數(shù)據(jù)集 250
8.4.2 利用遷移學(xué)習(xí)進(jìn)行特征提取 251
8.4.3 構(gòu)建分類模型 253
8.4.4 評估分類器的性能 257
8.5 構(gòu)建一個(gè)深度學(xué)習(xí)音頻事件識別器 260
8.6 總結(jié) 263
第9章 DeepDream 264
9.1 介紹 264
9.1.1 計(jì)算機(jī)視覺中的算法幻想性視錯覺 265
9.1.2 可視化特征圖 267
9.2 DeepDream算法 273
9.3 總結(jié) 277
第 10章 風(fēng)格遷移 278
10.1 理解神經(jīng)風(fēng)格遷移 279
10.2 圖像預(yù)處理方法 280
10.3 構(gòu)建損失函數(shù) 282
10.3.1 內(nèi)容損失 282
10.3.2 風(fēng)格損失 283
10.3.3 總變差損失 283
10.3.4 總體損失函數(shù) 284
10.4 創(chuàng)建一個(gè)自定義優(yōu)化器 285
10.5 風(fēng)格遷移實(shí)戰(zhàn) 286
10.6 總結(jié) 290
第 11章 自動圖像掃描生成器 291
11.1 理解圖像描述 292
11.2 明確目標(biāo) 293
11.3 理解數(shù)據(jù) 294
11.4 構(gòu)建自動圖像描述系統(tǒng)的方法 295
11.4.1 概念方法 295
11.4.2 實(shí)際動手的方法 299
11.5 使用遷移學(xué)習(xí)的圖像特征提取 301
11.6 為描述構(gòu)建一個(gè)詞匯表 306
11.7 構(gòu)建一個(gè)圖像描述數(shù)據(jù)集生成器 308
11.8 構(gòu)建圖像語言編碼器-解碼器深度學(xué)習(xí)模型 314
11.9 訓(xùn)練圖像描述深度學(xué)習(xí)模型 316
11.10 評估圖像描述深度學(xué)習(xí)模型 320
11.10.1 加載數(shù)據(jù)和模型 320
11.10.2 理解貪婪搜索和集束搜索 321
11.10.3 實(shí)現(xiàn)一個(gè)基于集束搜索的描述生成器 321
11.10.4 理解并實(shí)現(xiàn)BLEU分?jǐn)?shù) 323
11.10.5 在測試數(shù)據(jù)上評估模型性能 324
11.11 自動圖像描述實(shí)戰(zhàn) 327
11.11.1 戶外場景樣本圖像描述 329
11.11.2 流行運(yùn)動樣本圖像描述 332
11.11.3 未來的改進(jìn)空間 334
11.12 總結(jié) 334
第 12章 圖像著色 335
12.1 問題陳述 336
12.2 彩色圖像 336
12.2.1 顏色理論 337
12.2.2 顏色模型和顏色
空間 337
12.2.3 重審問題陳述 339
12.3 構(gòu)建一個(gè)著色深度神經(jīng)網(wǎng)絡(luò) 341
12.3.1 預(yù)處理 341
12.3.2 損失函數(shù) 342
12.3.3 編碼器 343
12.3.4 遷移學(xué)習(xí)——特征提取 344
12.3.5 融合層 344
12.3.6 解碼器 345
12.3.7 后處理 347
12.3.8 訓(xùn)練和結(jié)果 348
12.4 挑戰(zhàn) 350
12.5 進(jìn)一步改進(jìn) 350
12.6 總結(jié) 350