第1章 搭建指定的開發環境1
1.1 為什麼要使用指定的開發環境1
1.2 硬件準備2
1.2.1 在亞馬#租用雲GPU服務器2
1.2.2 在騰訊雲租用GPU服務器4
1.2.3 在雲服務器中開啓搭載開發環境的Docker服務8
1.3 軟件準備9
1.3.1 在Ubuntu 16.04下配置環境9
1.3.2 在CentOS 7下配置環境12
1.4 參考文獻及網頁鏈接12
第2章 溫故知新——機器學習基礎知識13
2.1 人工智能、機器學習與深度學習13
2.2 訓練一個傳統的機器學習模型15
2.2.1 第#步,觀察數據16
2.2.2 第#步,預覽數據17
2.3 數據挖掘與訓練模型29
2.3.1 第#步,準備數據29
2.3.2 第#步,挖掘數據特徵31
2.3.3 第三步,使用模型37
2.3.4 第四步,代碼實戰44
2.4 參考文獻及網頁鏈接49
第3章 數形結閤——圖像處理基礎知識50
3.1 讀取圖像文件進行基本操作51
3.1.1 使用python-opencv讀取圖片51
3.1.2 藉助python-opencv進行不同編碼格式的轉換52
3.1.3 藉助python-opencv改變圖片尺寸53
3.2 用簡單的矩陣操作處理圖像53
3.2.1 對圖像進行復製與粘貼53
3.2.2 把圖像當成矩陣進行處理——二維碼轉換成矩陣54
3.3 使用OpenCV“摳圖”——基於顔色通道以及形態特徵59
3.4 基於傳統特徵的傳統圖像分類方法64
3.4.1 將圖片簡化為少數區域並計算每個區域輪廓特徵的方嚮66
3.4.2 將HOG變換運用在所有正負樣本中68
3.4.3 訓練模型70
3.4.4 將訓練好的分類器運用在新的圖片中71
3.5 參考文獻及網頁鏈接73
第4章 繼往開來——使用深度神經網絡框架74
4.1 從邏輯迴歸說起74
4.2 深度學習框架76
4.3 基於反嚮傳播算法的自動求導77
4.4 簡單的深度神經網絡框架實現80
4.4.1 數據結構部分81
4.4.2 計算圖部分83
4.4.3 使用方法85
4.4.4 訓練模型86
4.5 參考文獻及網頁鏈接89
第5章 排列組閤——深度神經網絡框架的模型元件90
5.1 常用層92
5.1.1 Dense92
5.1.2 Activation92
5.1.3 Dropout93
5.1.4 Flatten94
5.2 捲積層94
5.2.1 Conv2D94
5.2.2 Cropping2D101
5.2.3 ZeroPadding2D101
5.3 池化層102
5.3.1 MaxPooling2D102
5.3.2 AveragePooling2D102
5.3.3 GlobalAveragePooling2D103
5.4 正則化層與過擬閤104
5.5 反捲積層105
5.6 循環層109
5.6.1 SimpleRNN109
5.6.2 LSTM109
5.6.3 GRU110
5.7 參考文獻及網頁鏈接110
第6章 少量多次——深度神經網絡框架的輸入處理112
6.1 批量生成訓練數據113
6.2 數據增強115
6.3 參考文獻及網頁鏈接117
第7章 愚公移山——深度神經網絡框架的模型訓練118
7.1 隨機梯度下降119
7.2 動量法120
7.3 自適應學習率算法121
7.4 實驗案例124
7.5 參考文獻及網頁鏈接128
第8章 小試牛刀——使用深度神經網絡進行CIFAR-10數據分類129
8.1 上遊部分——基於生成器的批量生成輸入模塊131
8.2 核心部分——用各種零件搭建深度神經網絡131
8.3 下遊部分——使用凸優化模塊訓練模型132
8.4 參考文獻及網頁鏈接133
第9章 見多識廣——使用遷移學習提升準確率134
9.1 貓狗大戰1.0——使用捲積神經網絡直接進行訓練135
9.1.1 導入數據135
9.1.2 可視化137
9.1.3 分割訓練集和驗證集138
9.1.4 搭建模型140
9.1.5 模型訓練141
9.1.6 總結142
9.2 貓狗大戰2.0——使用ImageNet數據集預訓練模型142
9.2.1 遷移學習142
9.2.2 數據預處理143
9.2.3 搭建模型143
9.2.4 模型可視化144
9.2.5 訓練模型145
9.2.6 提交到kaggle評估146
9.3 貓狗大戰3.0——使用多種預訓練模型組閤提升錶現146
9.3.1 載入數據集147
9.3.2 使用正確的預處理函數147
9.3.3 搭建特徵提取模型並導齣特徵147
9.3.4 搭建並訓練全連接分類器模型148
9.3.5 在測試集上預測149
9.4 融閤模型150
9.4.1 獲取特徵150
9.4.2 數據持久化151
9.4.3 構建模型151
9.4.4 在測試集上預測152
9.5 總結153
9.6 參考文獻及網頁鏈接154
第10章 看圖識字——使用深度神經網絡進行文字識彆155
10.1 使用捲積神經網絡進行端到端學習155
10.1.1 編寫數據生成器157
10.1.2 使用生成器157
10.1.3 構建深度捲積神經網絡158
10.1.4 模型可視化158
10.1.5 訓練模型160
10.1.6 計算模型總體準確率161
10.1.7 測試模型161
10.1.8 模型總結162
10.2 使用循環神經網絡改進模型162
10.2.1 CTC Loss163
10.2.2 模型結構164
10.2.3 模型可視化165
10.2.4 數據生成器167
10.2.5 評估模型168
10.2.6 評估迴調169
10.2.7 訓練模型169
10.2.8 測試模型171
10.2.9 再次評估模型171
10.2.10 總結173
10.3 識彆四則混閤運算驗證碼(初賽)173
10.3.1 問題描述174
10.3.2 數據集探索174
10.3.3 模型結構176
10.3.4 結果可視化181
10.3.5 總結182
10.4 識彆四則混閤運算驗證碼(決賽)183
10.4.1 問題描述183
10.4.2 數據集探索184
10.4.3 數據預處理186
10.4.4 模型結構192
10.4.5 生成器195
10.4.6 模型的訓練197
10.4.7 預測結果198
10.4.8 模型結果融閤199
10.4.9 其他嘗試200
10.4.10 小結202
10.5 參考文獻及網頁鏈接203
· · · · · · (
收起)