人工智能實踐教程——從Python入門到機器學習

邵一川,趙騫,李常迪

  • 出版商: 電子工業
  • 出版日期: 2021-08-01
  • 定價: $359
  • 售價: 8.5$305
  • 語言: 簡體中文
  • 頁數: 320
  • 裝訂: 平裝
  • ISBN: 7121416603
  • ISBN-13: 9787121416606
  • 相關分類: Machine Learning
  • 立即出貨 (庫存=1)

買這商品的人也買了...

商品描述

本書分為三部分,第一部分介紹Python編程,包括Python基礎、Python面向對象和Python高級編程;第二部分介紹機器學習,包括機器學習概述、機器學習?經典算法和機器學習?回歸算法;第三部分介紹神經網絡,包括從感知機到神經網絡、神經網絡?反向傳播算法、神經網絡的訓練方法、捲積神經網絡和項目實例-表情識別。從模型構造到模型訓練,本書全面介紹了人工智能相關內容及人工智能在電腦視覺、自然語言處理中的應用,不僅闡述算法原理,還基於Python語言實現了算法。本書的每個知識點都給出了與之對應的程序,讀者不但能直接閱讀,而且可以運行程序,以獲得交互式的學習體驗。本書面向希望瞭解人工智能,特別是對實際應用人工智能感興趣的本科生、研究生、工程師和研究人員,可作為高等院校人工智能課程的教材。

作者簡介

邵一川,東北大學博士後、瀋陽大學副教授,遼寧省教育廳優秀人才、瀋陽市拔尖人才,"盛京人才獎勵”獲得者、美國普渡大學訪問學者。
近年來先後主持中國博士後面上基金,省博士啟動基金、自然科學基金,省財政廳項目,省教育廳項目。等多項省市***別項目。
參編教材多部,主持省教改立項"成人教育遠程網絡教學系統”及多項校級教改立項。近年來承擔"通信網絡程序設計”"虛擬現實技術”"大數據程序課程設計”"能源技術”"網絡控制系統及應用”"科學數據可視化”"數據挖掘與數據倉庫”等多門本科生、研究生課程。

目錄大綱

目錄 
第一部分 Python編程 
第1章 Python基礎 3 
1.1 Python簡介及開發環境搭建 3 
1.1.1 Python的安裝 3 
1.1.2 集成開發環境 4 
1.2 Python變量標識符和關鍵字 7 
1.2.1 變量定義 7 
1.2.2 變量的類型 8 
1.2.3 變量的命名 11 
1.3 Python運算符 13 
1.3.1 算術運算符 13 
1.3.2 比較(關系)運算符 13 
1.3.3 邏輯運算符 14 
1.3.4 賦值運算符 14 
1.3.5 運算符的優先級 14 
1.4 Python分支與循環 15 
1.4.1 條件語句 15 
1.4.2 循環語句 17 
1.4.3 隨機數的處理 21 
1.5 Python函數 22 
1.5.1 函數定義 23 
1.5.2 函數的參數 24 
1.5.3 函數的返回值 25 
1.5.4 函數作用域 26 
1.5.5 匿名函數 27 
1.5.6 內置函數 28 
1.5.7 函數式編程 31 
1.5.8 將函數存儲在模塊中 33 
1.5.9 函數文檔字符串 35 

第2章 Python面向對象 36 
2.1 面向對象基本特徵 36 
2.2 類的定義 37 
2.2.1 定義只包含方法的類 37 
2.2.2 面向對象程序舉例 37 
2.3 self參數 37 
2.3.1 給對象設置屬性 38 
2.3.2 理解self參數到底是什麽 38 
2.4 __init__方法 38 
2.5 __str__方法 39 
2.6 面向過程和麵向對象 40 
2.7 私有屬性——封裝 43 
2.8 將實例用作屬性-對象組合 43 
2.9 類屬性、類方法、靜態方法 46 
2.10 繼承 49 
2.11 __new__方法 52 
2.12 所有Python類型的父類 53 
2.13 單例模式 54 
2.14 參數註解 54 

第3章 Python高級編程 56 
3.1 Python閉包和裝飾器 56 
3.1.1 閉包 56 
3.1.2 裝飾器 57 
3.1.3 被裝飾的函數有返回值 60 
3.1.4 裝飾器帶參數 61 
3.1.5 多個裝飾器裝飾同一個函數 62 
3.1.6 基於類實現的裝飾器 63 
3.2 Python可迭代對象、迭代器及生成器 64 
3.2.1 可迭代對象 65 
3.2.2 迭代器 68 
3.2.3 生成器 71 
3.3 Python內置方法 78 
3.3.1 構造和初始化 78 
3.3.2 屬性訪問控制 79 
3.3.3 描述符 79 
3.3.4 構造自定義容器(Container) 83 
3.3.5 上下文管理器 84 
3.3.6 比較運算 87 
3.3.7 __str__和__repr__方法 89 
3.3.8 內置方法之__call__ 92 

第二部分 機器學習 
第4章 機器學習概述 95 
4.1 機器學習分類 95 
4.2 常用的機器學習算法 96 
4.3 機器學習的步驟 97 
4.3.1 問題定義 97 
4.3.2 數據採集 98 
4.3.3 數據準備 98 
4.3.4 數據分割 99 
4.3.5 算法的選擇與訓練 99 
4.3.6 算法的使用 100 

第5章 機器學習?經典算法 110 
5.1 主成分分析 110 
5.1.1 主成分分析簡介 110 
5.1.2 使用梯度上升法實現主成分分析 113 
5.1.3 選取數據的前k個主成分 117 
5.1.4 高維數據向低維數據映射 120 
5.1.5 使用主成分分析對數據進行降維可視化 125 
5.2 K-Means算法 128 
5.2.1 K-Means算法原理 129 
5.2.2 K-Means程序實例 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算法程序實例 138 
5.4 梯度下降法 140 
5.4.1 一維梯度下降法 140 
5.4.2 多維梯度下降法 141 

第6章 機器學習?回歸算法 144 
6.1 線性回歸 144 
6.1.1 線性回歸簡介 144 
6.1.2 簡單線性回歸的最小二乘法推導過程 145 
6.1.3 衡量線性回歸的指標 150 
6.1.4 多元線性回歸簡介 157 
6.2 多項式回歸 161 
6.2.1 多項式回歸的概念 161 
6.2.2 scikit-learn中的多項式回歸和Pipeline 165 
6.2.3 過擬合和欠擬合 166 
6.2.4 訓練數據和測試數據 170 
6.2.5 學習曲線 172 
6.2.6 交叉驗證 175 
6.2.7 模型正則化 179 
6.2.8 嶺回歸和 LASSO 回歸 179 

第三部分 神經網絡 
第7章 從感知機到神經網絡 189 
7.1 感知機 189 
7.1.1 簡單邏輯電路 190 
7.1.2 感知機的實現 191 
7.1.3 感知機的局限性 193 
7.1.4 多層感知機 195 
7.2 神經網絡 197 
7.2.1 神經網絡舉例 197 
7.2.2 感知機知識回顧 197 
7.2.3 激活函數初探 198 
7.3 激活函數 199 
7.3.1 階躍函數 199 
7.3.2 Sigmoid函數 199 
7.3.3 階躍函數的實現 200 
7.3.4 Sigmoid函數的實現 201 
7.3.5 比較Sigmoid函數和階躍函數 202 
7.3.6 ReLU函數 203 
7.4 多維數組的運算 204 
7.4.1 多維數組 204 
7.4.2 矩陣乘法 205 
7.4.3 神經網絡乘積 207 
7.5 神經網絡的實現 208 
7.5.1 符號確認 209 
7.5.2 各層間信號傳遞的實現 209 
7.5.3 代碼實現小結 212 
7.6 輸出層的設計 213 
7.6.1 恆等函數和Softmax函數 213 
7.6.2 實現Softmax函數的註意事項 214 
7.6.3 Softmax函數的性質 215 
7.6.4 輸出層的神經元數量 216 
7.7 手寫數字識別 216 
7.7.1 MNIST數據集 216 
7.7.2 神經網絡的推理處理 218 
7.7.3 批處理 220 

第8章 神經網絡-反向傳播算法 222 
8.1 計算圖 222 
8.1.1 用計算圖求解 222 
8.1.2 局部計算 223 
8.1.3 為何用計算圖解決問題 224 
8.2 鏈式法則 225 
8.2.1 計算圖的反向傳播 225 
8.2.2 鏈式法則的原理 225 
8.2.3 鏈式法則和計算圖 226 
8.3 反向傳播 227 
8.3.1 加法節點的反向傳播 227 
8.3.2 乘法節點的反向傳播 229 
8.3.3 “蘋果”的例子 230 
8.4 簡單層的實現 230 
8.4.1 乘法層的實現 231 
8.4.2 加法層的實現 232 
8.5 激活函數層的實現 233 
8.5.1 ReLU層的實現 233 
8.5.2 Sigmoid層的實現 234 
8.6 Affine層和Softmax 層的實現 237 
8.6.1 Affine層的實現 237 
8.6.2 Softmax層的實現 240 
8.7 誤差反向傳播的實現 242 
8.7.1 神經網絡的實現步驟 242 
8.7.2 誤差反向傳播的神經網絡的實現 242 
8.7.3 誤差反向傳播的梯度確認 245 
8.7.4 誤差反向傳播的神經網絡的學習 246 

第9章 神經網絡的訓練方法 247 
9.1 參數的更新 247 
9.1.1 最優化問題的困難之處 247
 9.1.2 隨機梯度下降 247 
9.1.3 Momentum方法 250 
9.1.4 AdaGrad方法 251 
9.1.5 Adam方法 253 
9.1.6 選擇參數更新方法 253 
9.2 權重初始值 255 
9.2.1 可以將權重初始值設為0嗎 255 
9.2.2 隱藏層的激活值分佈 255 
9.2.3 ReLU的權重初始值 258 
9.2.4 基於MNIST數據集的不同權重初始值的比較 259 
9.3 BatchNormalization算法 260 
9.3.1 算法原理 260 
9.3.2 算法評估 261 
9.4 正則化 263 
9.4.1 過擬合 263 
9.4.2 權重衰減 264 
9.4.3 Dropout方法 265 
9.5 超參數的驗證 267 
9.5.1 驗證數據 267 
9.5.2 超參數的最優化 268 
9.5.3 超參數最優化的實現 269 

第10章 捲積神經網絡 271 
10.1 整體結構 271 
10.2 捲積層 272 
10.2.1 全連接層存在的問題 272 
10.2.2 捲積運算 272 
10.2.3 填充 274 
10.2.4 步幅 275 
10.2.5 3維數據的捲積運算 276 
10.2.6 批處理 278 
10.3 池化層 279 
10.4 捲積層和池化層的實現 281 
10.4.1 問題簡化 281 
10.4.2 捲積層的實現 283 
10.4.3 池化層的實現 284 
10.5 捲積神經網絡的實現 286 
10.6 捲積神經網絡的可視化 289 
10.6.1 捲積層權重的可視化 289 
10.6.2 基於分層結構的信息提取 290 
10.7 具有代表性的捲積神經網絡 291 

第11章 項目實例-表情識別 293 
11.1 典型的人臉表情識別數據集fer2013 293 
11.1.1 fer2013人臉表情數據集簡介 293 
11.1.2 將表情圖片提取出來 294 
11.2 加載fer2013數據集 296 
11.3 斷點續訓 298 
11.3.1 Checkpoint神經網絡模型 298 
11.3.2 Checkpoint神經網絡模型改進 298 
11.3.3 Checkpoint最佳神經網絡模型 300 
11.3.4 加載Checkpoint神經網絡模型 301 
11.4 表情識別的PyTorch實現 303 
11.4.1 數據整理 303 
11.4.2 簡單分析 304 
11.4.3 數據增強處理 304 
11.4.4 模型搭建 305 
11.4.5 對比幾種模型的訓練過程 306