人工智能實(shí)踐教程——從Python入門到機(jī)器學(xué)習(xí)
定 價(jià):59.9 元
- 作者:邵一川
- 出版時(shí)間:2021/8/1
- ISBN:9787121416606
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP311.561
- 頁(yè)碼:320
- 紙張:
- 版次:01
- 開本:16開
本書分為三部分,第一部分介紹Python編程,包括Python基礎(chǔ)、Python面向?qū)ο蠛蚉ython高級(jí)編程;第二部分介紹機(jī)器學(xué)習(xí),包括機(jī)器學(xué)習(xí)概述、機(jī)器學(xué)習(xí)?經(jīng)典算法和機(jī)器學(xué)習(xí)?回歸算法;第三部分介紹神經(jīng)網(wǎng)絡(luò),包括從感知機(jī)到神經(jīng)網(wǎng)絡(luò)、神經(jīng)網(wǎng)絡(luò)?反向傳播算法、神經(jīng)網(wǎng)絡(luò)的訓(xùn)練方法、卷積神經(jīng)網(wǎng)絡(luò)和項(xiàng)目實(shí)例-表情識(shí)別。從模型構(gòu)造到模型訓(xùn)練,本書全面介紹了人工智能相關(guān)內(nèi)容及人工智能在計(jì)算機(jī)視覺、自然語(yǔ)言處理中的應(yīng)用,不僅闡述算法原理,還基于Python語(yǔ)言實(shí)現(xiàn)了算法。本書的每個(gè)知識(shí)點(diǎn)都給出了與之對(duì)應(yīng)的程序,讀者不但能直接閱讀,而且可以運(yùn)行程序,以獲得交互式的學(xué)習(xí)體驗(yàn)。本書面向希望了解人工智能,特別是對(duì)實(shí)際應(yīng)用人工智能感興趣的本科生、研究生、工程師和研究人員,可作為高等院校人工智能課程的教材。
邵一川,東北大學(xué)博士后、沈陽(yáng)大學(xué)副教授,遼寧省教育廳優(yōu)秀人才、沈陽(yáng)市拔尖人才,"盛京人才獎(jiǎng)勵(lì)”獲得者、美國(guó)普渡大學(xué)訪問學(xué)者。近年來先后主持中國(guó)博士后面上基金,省博士啟動(dòng)基金、自然科學(xué)基金,省財(cái)政廳項(xiàng)目,省教育廳項(xiàng)目。等多項(xiàng)省市國(guó)家級(jí)別項(xiàng)目。參編教材多部,主持省教改立項(xiàng)"成人教育遠(yuǎn)程網(wǎng)絡(luò)教學(xué)系統(tǒng)”及多項(xiàng)校級(jí)教改立項(xiàng)。近年來承擔(dān)"通信網(wǎng)絡(luò)程序設(shè)計(jì)”"虛擬現(xiàn)實(shí)技術(shù)”"大數(shù)據(jù)程序課程設(shè)計(jì)”"能源技術(shù)”"網(wǎng)絡(luò)控制系統(tǒng)及應(yīng)用”"科學(xué)數(shù)據(jù)可視化”"數(shù)據(jù)挖掘與數(shù)據(jù)倉(cāng)庫(kù)”等多門本科生、研究生課程。
目錄
第一部分 Python編程
第1章 Python基礎(chǔ) 3
1.1 Python簡(jiǎn)介及開發(fā)環(huán)境搭建 3
1.1.1 Python的安裝 3
1.1.2 集成開發(fā)環(huán)境 4
1.2 Python變量標(biāo)識(shí)符和關(guān)鍵字 7
1.2.1 變量定義 7
1.2.2 變量的類型 8
1.2.3 變量的命名 11
1.3 Python運(yùn)算符 13
1.3.1 算術(shù)運(yùn)算符 13
1.3.2 比較(關(guān)系)運(yùn)算符 13
1.3.3 邏輯運(yùn)算符 14
1.3.4 賦值運(yùn)算符 14
1.3.5 運(yùn)算符的優(yōu)先級(jí) 14
1.4 Python分支與循環(huán) 15
1.4.1 條件語(yǔ)句 15
1.4.2 循環(huán)語(yǔ)句 17
1.4.3 隨機(jī)數(shù)的處理 21
1.5 Python函數(shù) 22
1.5.1 函數(shù)定義 23
1.5.2 函數(shù)的參數(shù) 24
1.5.3 函數(shù)的返回值 25
1.5.4 函數(shù)作用域 26
1.5.5 匿名函數(shù) 27
1.5.6 內(nèi)置函數(shù) 28
1.5.7 函數(shù)式編程 31
1.5.8 將函數(shù)存儲(chǔ)在模塊中 33
1.5.9 函數(shù)文檔字符串 35
第2章 Python面向?qū)ο?36
2.1 面向?qū)ο蠡咎卣?36
2.2 類的定義 37
2.2.1 定義只包含方法的類 37
2.2.2 面向?qū)ο蟪绦蚺e例 37
2.3 self參數(shù) 37
2.3.1 給對(duì)象設(shè)置屬性 38
2.3.2 理解self參數(shù)到底是什么 38
2.4 __init__方法 38
2.5 __str__方法 39
2.6 面向過程和面向?qū)ο?40
2.7 私有屬性——封裝 43
2.8 將實(shí)例用作屬性-對(duì)象組合 43
2.9 類屬性、類方法、靜態(tài)方法 46
2.10 繼承 49
2.11 __new__方法 52
2.12 所有Python類型的父類 53
2.13 單例模式 54
2.14 參數(shù)注解 54
第3章 Python高級(jí)編程 56
3.1 Python閉包和裝飾器 56
3.1.1 閉包 56
3.1.2 裝飾器 57
3.1.3 被裝飾的函數(shù)有返回值 60
3.1.4 裝飾器帶參數(shù) 61
3.1.5 多個(gè)裝飾器裝飾同一個(gè)函數(shù) 62
3.1.6 基于類實(shí)現(xiàn)的裝飾器 63
3.2 Python可迭代對(duì)象、迭代器及生成器 64
3.2.1 可迭代對(duì)象 65
3.2.2 迭代器 68
3.2.3 生成器 71
3.3 Python內(nèi)置方法 78
3.3.1 構(gòu)造和初始化 78
3.3.2 屬性訪問控制 79
3.3.3 描述符 79
3.3.4 構(gòu)造自定義容器(Container) 83
3.3.5 上下文管理器 84
3.3.6 比較運(yùn)算 87
3.3.7 __str__和__repr__方法 89
3.3.8 內(nèi)置方法之__call__ 92
第二部分 機(jī)器學(xué)習(xí)
第4章 機(jī)器學(xué)習(xí)概述 95
4.1 機(jī)器學(xué)習(xí)分類 95
4.2 常用的機(jī)器學(xué)習(xí)算法 96
4.3 機(jī)器學(xué)習(xí)的步驟 97
4.3.1 問題定義 97
4.3.2 數(shù)據(jù)采集 98
4.3.3 數(shù)據(jù)準(zhǔn)備 98
4.3.4 數(shù)據(jù)分割 99
4.3.5 算法的選擇與訓(xùn)練 99
4.3.6 算法的使用 100
第5章 機(jī)器學(xué)習(xí)?經(jīng)典算法 110
5.1 主成分分析 110
5.1.1 主成分分析簡(jiǎn)介 110
5.1.2 使用梯度上升法實(shí)現(xiàn)主成分分析 113
5.1.3 選取數(shù)據(jù)的前k個(gè)主成分 117
5.1.4 高維數(shù)據(jù)向低維數(shù)據(jù)映射 120
5.1.5 使用主成分分析對(duì)數(shù)據(jù)進(jìn)行降維可視化 125
5.2 K-Means算法 128
5.2.1 K-Means算法原理 129
5.2.2 K-Means程序?qū)嵗?131
5.2.3 MiniBatch算法 133
5.2.4 K-Means 算法分析 134
5.3 KNN算法 138
5.3.1 KNN算法的原理 138
5.3.2 KNN算法程序?qū)嵗?138
5.4 梯度下降法 140
5.4.1 一維梯度下降法 140
5.4.2 多維梯度下降法 141
第6章 機(jī)器學(xué)習(xí)?回歸算法 144
6.1 線性回歸 144
6.1.1 線性回歸簡(jiǎn)介 144
6.1.2 簡(jiǎn)單線性回歸的最小二乘法推導(dǎo)過程 145
6.1.3 衡量線性回歸的指標(biāo) 150
6.1.4 多元線性回歸簡(jiǎn)介 157
6.2 多項(xiàng)式回歸 161
6.2.1 多項(xiàng)式回歸的概念 161
6.2.2 scikit-learn中的多項(xiàng)式回歸和Pipeline 165
6.2.3 過擬合和欠擬合 166
6.2.4 訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù) 170
6.2.5 學(xué)習(xí)曲線 172
6.2.6 交叉驗(yàn)證 175
6.2.7 模型正則化 179
6.2.8 嶺回歸和 LASSO 回歸 179
第三部分 神經(jīng)網(wǎng)絡(luò)
第7章 從感知機(jī)到神經(jīng)網(wǎng)絡(luò) 189
7.1 感知機(jī) 189
7.1.1 簡(jiǎn)單邏輯電路 190
7.1.2 感知機(jī)的實(shí)現(xiàn) 191
7.1.3 感知機(jī)的局限性 193
7.1.4 多層感知機(jī) 195
7.2 神經(jīng)網(wǎng)絡(luò) 197
7.2.1 神經(jīng)網(wǎng)絡(luò)舉例 197
7.2.2 感知機(jī)知識(shí)回顧 197
7.2.3 激活函數(shù)初探 198
7.3 激活函數(shù) 199
7.3.1 階躍函數(shù) 199
7.3.2 Sigmoid函數(shù) 199
7.3.3 階躍函數(shù)的實(shí)現(xiàn) 200
7.3.4 Sigmoid函數(shù)的實(shí)現(xiàn) 201
7.3.5 比較Sigmoid函數(shù)和階躍函數(shù) 202
7.3.6 ReLU函數(shù) 203
7.4 多維數(shù)組的運(yùn)算 204
7.4.1 多維數(shù)組 204
7.4.2 矩陣乘法 205
7.4.3 神經(jīng)網(wǎng)絡(luò)乘積 207
7.5 神經(jīng)網(wǎng)絡(luò)的實(shí)現(xiàn) 208
7.5.1 符號(hào)確認(rèn) 209
7.5.2 各層間信號(hào)傳遞的實(shí)現(xiàn) 209
7.5.3 代碼實(shí)現(xiàn)小結(jié) 212
7.6 輸出層的設(shè)計(jì) 213
7.6.1 恒等函數(shù)和Softmax函數(shù) 213
7.6.2 實(shí)現(xiàn)Softmax函數(shù)的注意事項(xiàng) 214
7.6.3 Softmax函數(shù)的性質(zhì) 215
7.6.4 輸出層的神經(jīng)元數(shù)量 216
7.7 手寫數(shù)字識(shí)別 216
7.7.1 MNIST數(shù)據(jù)集 216
7.7.2 神經(jīng)網(wǎng)絡(luò)的推理處理 218
7.7.3 批處理 220
第8章 神經(jīng)網(wǎng)絡(luò)-反向傳播算法 222
8.1 計(jì)算圖 222
8.1.1 用計(jì)算圖求解 222
8.1.2 局部計(jì)算 223
8.1.3 為何用計(jì)算圖解決問題 224
8.2 鏈?zhǔn)椒▌t 225
8.2.1 計(jì)算圖的反向傳播 225
8.2.2 鏈?zhǔn)椒▌t的原理 225
8.2.3 鏈?zhǔn)椒▌t和計(jì)算圖 226
8.3 反向傳播 227
8.3.1 加法節(jié)點(diǎn)的反向傳播 227
8.3.2 乘法節(jié)點(diǎn)的反向傳播 229
8.3.3 “蘋果”的例子 230
8.4 簡(jiǎn)單層的實(shí)現(xiàn) 230
8.4.1 乘法層的實(shí)現(xiàn) 231
8.4.2 加法層的實(shí)現(xiàn) 232
8.5 激活函數(shù)層的實(shí)現(xiàn) 233
8.5.1 ReLU層的實(shí)現(xiàn) 233
8.5.2 Sigmoid層的實(shí)現(xiàn) 234
8.6 Affine層和Softmax 層的實(shí)現(xiàn) 237
8.6.1 Affine層的實(shí)現(xiàn) 237
8.6.2 Softmax層的實(shí)現(xiàn) 240
8.7 誤差反向傳播的實(shí)現(xiàn) 242
8.7.1 神經(jīng)網(wǎng)絡(luò)的實(shí)現(xiàn)步驟 242
8.7.2 誤差反向傳播的神經(jīng)網(wǎng)絡(luò)的實(shí)現(xiàn) 242
8.7.3 誤差反向傳播的梯度確認(rèn) 245
8.7.4 誤差反向傳播的神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí) 246
第9章 神經(jīng)網(wǎng)絡(luò)的訓(xùn)練方法 247
9.1 參數(shù)的更新 247
9.1.1 最優(yōu)化問題的困難之處 247
9.1.2 隨機(jī)梯度下降 247
9.1.3 Momentum方法 250
9.1.4 AdaGrad方法 251
9.1.5 Adam方法 253
9.1.6 選擇參數(shù)更新方法 253
9.2 權(quán)重初始值 255
9.2.1 可以將權(quán)重初始值設(shè)為0嗎 255
9.2.2 隱藏層的激活值分布 255
9.2.3 ReLU的權(quán)重初始值 258
9.2.4 基于MNIST數(shù)據(jù)集的不同權(quán)重初始值的比較 259
9.3 BatchNormalization算法 260
9.3.1 算法原理 260
9.3.2 算法評(píng)估 261
9.4 正則化 263
9.4.1 過擬合 263
9.4.2 權(quán)重衰減 264
9.4.3 Dropout方法 265
9.5 超參數(shù)的驗(yàn)證 267
9.5.1 驗(yàn)證數(shù)據(jù) 267
9.5.2 超參數(shù)的最優(yōu)化 268
9.5.3 超參數(shù)最優(yōu)化的實(shí)現(xiàn) 269
第10章 卷積神經(jīng)網(wǎng)絡(luò) 271
10.1 整體結(jié)構(gòu) 271
10.2 卷積層 272
10.2.1 全連接層存在的問題 272
10.2.2 卷積運(yùn)算 272
10.2.3 填充 274
10.2.4 步幅 275
10.2.5 3維數(shù)據(jù)的卷積運(yùn)算 276
10.2.6 批處理 278
10.3 池化層 279
10.4 卷積層和池化層的實(shí)現(xiàn) 281
10.4.1 問題簡(jiǎn)化 281
10.4.2 卷積層的實(shí)現(xiàn) 283
10.4.3 池化層的實(shí)現(xiàn) 284
10.5 卷積神經(jīng)網(wǎng)絡(luò)的實(shí)現(xiàn) 286
10.6 卷積神經(jīng)網(wǎng)絡(luò)的可視化 289
10.6.1 卷積層權(quán)重的可視化 289
10.6.2 基于分層結(jié)構(gòu)的信息提取 290
10.7 具有代表性的卷積神經(jīng)網(wǎng)絡(luò) 291
第11章 項(xiàng)目實(shí)例-表情識(shí)別 293
11.1 典型的人臉表情識(shí)別數(shù)據(jù)集fer2013 293
11.1.1 fer2013人臉表情數(shù)據(jù)集簡(jiǎn)介 293
11.1.2 將表情圖片提取出來 294
11.2 加載fer2013數(shù)據(jù)集 296
11.3 斷點(diǎn)續(xù)訓(xùn) 298
11.3.1 Checkpoint神經(jīng)網(wǎng)絡(luò)模型 298
11.3.2 Checkpoint神經(jīng)網(wǎng)絡(luò)模型改進(jìn) 298
11.3.3 Checkpoint最佳神經(jīng)網(wǎng)絡(luò)模型 300
11.3.4 加載Checkpoint神經(jīng)網(wǎng)絡(luò)模型 301
11.4 表情識(shí)別的PyTorch實(shí)現(xiàn) 303
11.4.1 數(shù)據(jù)整理 303
11.4.2 簡(jiǎn)單分析 304
11.4.3 數(shù)據(jù)增強(qiáng)處理 304
11.4.4 模型搭建 305
11.4.5 對(duì)比幾種模型的訓(xùn)練過程 306