第1章 人工智能極簡曆史 1
1.1 重要的奠基時期 2
1.1.1 神經元的研究和人工神經元模型的提齣 2
1.1.2 計算機和程序的齣現 3
1.1.3 圖靈測試的提齣 4
1.2 人工智能的誕生 4
1.3 第一個快速發展期 5
1.4 人工智能的第一個寒鼕 5
1.5 人工智能研究的沉默探索與復蘇 6
1.6 人工智能的第二個鼕天 9
1.7 再一次騰飛 9
1.7.1 計算機綜閤計算能力的大幅提升 9
1.7.2 大數據的齣現 11
1.7.3 神經網絡研究的成熟化 11
1.8 未來展望 13
1.9 本章小結:曆史指引未來 18
第2章 開發環境準備 19
2.1 安裝Python 20
2.1.1 Windows操作係統下安裝Python 20
2.1.2 Mac OS X操作係統下安裝Python 29
2.1.3 Linux操作係統下安裝Python 30
2.2 安裝TensorFlow 30
2.3 打造更舒適的開發環境 32
2.3.1 修改Windows資源管理器的一些顯示設置 32
2.3.2 命令提示符CMD的替代方案 34
2.3.3 文本文件編輯器 36
2.3.4 Python語言專用的開發工具 40
2.4 知識背景準備 45
2.4.1 怎樣輸入Python程序 45
2.4.2 怎樣執行Python程序 45
2.4.3 變量 46
2.4.4 函數(方法) 50
2.4.5 對象 51
2.4.6 條件判斷與分支 53
2.4.7 循環 54
2.4.8 注釋 55
2.4.9 程序運行時齣現錯誤怎麼辦 55
2.4.10 本章小結:一段示例代碼 56
第3章 初識TensorFlow 57
3.1 三好學生成績問題的引入 58
3.2 搭建解決三好學生成績問題的神經網絡 58
3.3 訓練神經網絡 62
3.4 本章小結:解決的第一個問題 68
3.5 練習 68
第4章 簡化神經網絡模型 69
4.1 在程序運行中查看變量取值 70
4.2 張量概念的引入 70
4.3 用嚮量重新組織輸入數據 72
4.4 簡化的神經網絡模型 75
4.5 概念補充——標量、多維數組等 76
4.5.1 標量 76
4.5.2 多維數組 76
4.5.3 張量的階和形態 77
4.6 在TensorFlow中查看和設定張量的形態 78
4.7 用softmax函數來規範可變參數 81
4.8 本章小結:綫性問題 83
4.9 練習 84
第5章 用神經網絡解決非綫性問題 85
5.1 非綫性問題的引入 86
5.1.1 三好學生評選結果問題 86
5.1.2 二分類問題:是否為三好學生 86
5.1.3 非綫性問題 87
5.2 設計神經網絡模型 88
5.2.1 激活函數sigmoid 88
5.2.2 使用sigmoid函數後的神經網絡模型 89
5.2.3 實現本模型的代碼 89
5.3 準備訓練數據 90
5.3.1 隨機數 90
5.3.2 産生隨機訓練數據 90
5.4 完整的訓練代碼 92
5.4.1 使用隨機數據進行訓練 92
5.4.2 加入偏移量b加快訓練過程 94
5.5 進階:批量生成隨機訓練數據 97
5.6 本章小結:非綫性問題 100
5.7 練習 100
第6章 從文件中載入訓練數據 101
6.1 用純文本文件準備訓練數據 102
6.1.1 數據的數字化 102
6.1.2 訓練數據的格式 102
6.1.3 數據整理 103
6.1.4 使用CSV格式文件輔助處理數據 104
6.2 加載文件中的訓練數據 106
6.2.1 加載函數 106
6.2.2 非數字列的捨棄 106
6.2.3 非數字列與數字列的轉換 107
6.2.4 行數據的分拆及如何“喂”給訓練過程 108
6.3 本章小結:讀取訓練數據最常用的方式 110
6.4 練習 110
第7章 多層全連接神經網絡 111
7.1 身份證問題的引入 112
7.2 問題分析 112
7.3 單層網絡的模型 112
7.4 多層全連接神經網絡 115
7.4.1 矩陣乘法 115
7.4.2 如何用矩陣乘法實現全連接層 116
7.4.3 使用均方誤差作為計算誤差的方法 119
7.4.4 激活函數tanh 120
7.4.5 新的模型 121
7.5 身份證問題新模型的代碼實現 121
7.6 進一步優化模型和代碼 124
7.7 本章小結:多層、全連接、綫性與非綫性 125
7.8 練習 126
第8章 保存和載入訓練過程 127
8.1 保存訓練過程 128
8.2 載入保存的訓練過程並繼續訓練 130
8.3 通過命令行參數控製是否強製重新開始訓練 132
8.4 訓練過程中手動保存 135
8.5 保存訓練過程前徵得同意 137
8.6 本章小結:善於利用保存和載入訓練過程 139
8.7 練習 139
第9章 查看圖形化的模型 140
9.1 數據流圖的概念 141
9.2 用TensorBoard查看數據流圖 141
9.3 控製TensorBoard圖中對象的名稱 143
9.4 本章小結:圖形化的模型 145
9.5 練習 145
第10章 用訓練好的模型進行預測 146
10.1 從命令行參數讀取需要預測的數據 147
10.2 從文件中讀取數據進行預測 149
10.3 從任意字符串中讀取數據進行預測 152
10.4 本章小結:預測與訓練的區彆 154
10.5 練習 154
第11章 用高級工具簡化建模和訓練過程 155
11.1 Keras框架介紹 156
11.2 用Keras實現神經網絡模型 156
11.3 用Keras進行預測 158
11.4 保存和載入Keras模型 160
11.5 本章小結:方便與靈活度的取捨 161
11.6 練習 161
第12章 在其他語言中調用TensorFlow模型 162
12.1 如何保存模型 163
12.2 在Java語言中載入TensorFlow模型並進行預測計算 165
12.3 在Go語言中載入TensorFlow模型並進行預測計算 167
12.4 本章小結:僅能預測 167
第13章 用捲積神經網絡進行圖像識彆 169
13.1 情憑誰來定錯對——一首歌引齣的對錯問題 170
13.2 捲積神經網絡介紹 170
13.2.1 捲積神經網絡的基本概念 170
13.2.2 數字圖片在計算機中的錶達形式 170
13.2.3 捲積層的具體計算過程 172
13.2.4 捲積層的原理和優點 174
13.2.5 捲積神經網絡的典型結構 177
13.3 用捲積網絡實現圖像識彆 177
13.3.1 鈎叉問題的圖像數據格式 177
13.3.2 準備鈎叉問題的訓練數據 178
13.3.3 設計鈎叉問題的神經網絡模型並實現 179
13.4 本章小結:進一步優化的方嚮 183
13.5 練習 183
第14章 循環神經網絡初探 184
14.1 循環神經網絡簡介 185
14.2 長短期記憶模型LSTM的作用 186
14.3 匯率預測問題的引入 186
14.4 用於匯率預測的LSTM神經網絡模型 187
14.5 實現匯率預測LSTM網絡的代碼 188
14.6 用循環神經網絡來進行自然語言處理 193
14.7 本章小結:時序有關問題 195
14.8 練習 195
第15章 優化器的選擇與設置 196
15.1 優化器的作用 197
15.2 梯度下降算法 197
15.3 學習率的影響 198
15.4 主流優化方法介紹 199
15.5 優化器效率對比 200
15.6 本章小結:渡河之筏 203
第16章 下一步學習方嚮指南 204
16.1 更多的激活函數 205
16.2 更多的隱藏層類型 205
16.3 確定最適閤的神經網絡類型 206
16.4 GPU版本 206
16.5 有監督學習與無監督學習 207
16.6 深度學習進階 207
16.7 升級到最新的TensorFlow版本 207
16.8 本章小結:最後的實例 208
· · · · · · (
收起)