內容簡介
本書從數據集、數據清理開始談起,在介紹機器學習的建模方式後,第2章詳細說明了機器學習與深度學習所涉及的矩陣、向量等技術。第3章使用Keras搭建深度學習模型,也介紹了激活函式、損失函式、反向傳播、過擬合或欠擬合等問題。第4章給出了訓練深度學習模型的過程中可能存在的交叉驗證問題。當需要提高模型精度時,可以考慮參考第5章中的L1/L2正則化、丟棄正則化、早停等方式。第6章講解模型評估問題,在太平洋颶風數據集上指出準確率的局限性,從而引出混淆矩陣、ROC曲線、AUC評分等概念。接下來的3章介紹卷積神經網路、遷移學習、循環神經網路等問題,這些內容在工業實際項目中占據核心地位,值得大家多寫代碼、多實踐。
圖書目錄
目錄
配套資源
第1章Keras機器學習簡介
1.1機器學習簡介
1.2數據展示
1.2.1數據表格
1.2.2載入數據
訓練1.01從UCI機器學習代碼庫載入一個數據集
1.3數據處理
訓練1.02清理數據
訓練1.03數據的正確表示
1.4模型創建的生命周期
1.5scikitlearn簡介
1.6Keras簡介
1.6.1Keras的優點
1.6.2Keras的缺點
1.6.3Keras在其他方面的套用
1.7模型訓練
1.7.1分類器和回歸模型
1.7.2分類任務
1.7.3回歸任務
1.7.4訓練和測試數據集
1.7.5模型評估矩陣
訓練1.04創建一個簡單的模型
1.8模型微調
1.8.1基線模型
訓練1.05設計一個基線模型
1.8.2正則化
1.8.3交叉驗證
實踐1.01向模型添加正則化
1.9總結
第2章機器學習與深度學習
2.1簡介
2.1.1ANN的優勢
2.1.2傳統機器學習算法的優勢
2.1.3分層數據的表示
2.2線性變換
2.2.1標量、向量、矩陣和張量
2.2.2張量相加
訓練2.01使用向量、矩陣和張量執行各種操作
2.2.3重塑
2.2.4矩陣轉置
訓練2.02矩陣重塑和轉置
2.2.5矩陣乘法
訓練2.03將矩陣相乘
訓練2.04將矩陣乘法套用於高階張量
2.3Keras實現
2.3.1層的類型
2.3.2激活函式
2.3.3模型擬合
實踐2.01使用Keras創建邏輯回歸模型
2.4總結
第3章Keras深度學習
3.1簡介
3.2搭建第一個神經網路
3.2.1從邏輯回歸到深度神經網路
3.2.2激活函式
3.2.3用於預測的前向傳播
3.2.4損失函式
3.2.5反向傳播計算損失函式的導數
3.2.6通過梯度下降法學習參數
訓練3.01使用Keras實現神經網路
實踐3.01構建單層神經網路進行二進制分類
3.3模型評估
3.3.1用Keras進行模型評估
3.3.2將數據集拆分為訓練集和測試集
3.3.3過擬合和欠擬合
3.3.4早停
實踐3.02神經網路與高級纖維化診斷
3.4總結
第4章基於Keras包裝器的交叉驗證評價模型
4.1簡介
4.2交叉驗證
4.2.1隻分割一次數據集的弊端
4.2.2kfold交叉驗證
4.2.3留一法交叉驗證
4.2.4kfold交叉驗證和LOO交叉驗證的比較
4.3深度學習模型的交叉驗證方法
4.3.1帶有scikitlearn的Keras包
訓練4.01在回歸問題中使用scikitlearn構建Keras包裝器
4.3.2使用scikitlearn進行交叉驗證
4.3.3scikitlearn中的交叉驗證疊代器
訓練4.02使用交叉驗證評估深度神經網路
實踐4.01使用交叉驗證對晚期肝纖維化診斷分類器進行模型評估
4.4利用交叉驗證選擇模型
訓練4.03編寫自定義函式實現含有交叉驗證的深度學習模型
實踐4.02用交叉驗證為高纖維化診斷分類器選擇模型
實踐4.03在Traffic Volume數據集上使用交叉驗證進行模型選擇
4.5總結
第5章模型精度的提高
5.1簡介
5.2正則化
5.2.1正則化的需求
5.2.2用正則化減少過擬合
5.3L1和L2正則化
5.3.1L1和L2正則化公式
5.3.2Keras的L1和L2正則化實現
實踐5.01Avila模式分類器上的權重正則化
5.4丟棄正則化
5.4.1丟棄正則化原理
5.4.2使用丟棄正則化減少過擬合
訓練5.01使用Keras實現丟棄正則化
實踐5.02Traffic Volume數據集的丟棄正則化
5.5其他正則化方法
5.5.1在Keras中實現早停
訓練5.02用Keras實現早停
5.5.2數據增強
5.5.3添加噪聲
5.6scikitlearn超參數調優
5.6.1使用scikitlearn進行格線搜尋
5.6.2使用scikitlearn進行隨機搜尋
實踐5.03對Avila模式分類器進行超參數調優
5.7總結
第6章模型評估
6.1簡介
6.2準確率
訓練6.01計算太平洋颶風數據集的零精度
6.3不平衡數據集
6.4混淆矩陣
訓練6.02Scania卡車數據的計算精度和零精度
實踐6.01改變訓練/測試比例,計算神經網路的準確率和零精度
訓練6.03基於混淆矩陣推導和計算指標
實踐6.02計算ROC曲線和AUC評分
6.5總結
第7章基於卷積神經網路的計算機視覺
7.1簡介
7.2計算機視覺
7.3卷積神經網路
7.4卷積神經網路架構
7.4.1輸入圖像
7.4.2卷積層
7.4.3池化層
7.4.4扁平化
7.5圖像增強
訓練7.01創建一個識別圖像中汽車和花的卷積神經網路
實踐7.01用多個卷積層和softmax層對模型進行修復
訓練7.02用sigmoid激活函式對模型進行修復
訓練7.03將最佳化器Adam更改為SGD
訓練7.04對一個新圖像進行分類
實踐7.02對另一個新圖像進行分類
7.6總結
第8章遷移學習和預訓練模型
8.1簡介
8.2預訓練與遷移學習
8.3對預訓練的網路進行微調
8.3.1ImageNet數據集
8.3.2Keras的一些預訓練網路
訓練8.01使用VGG16網路識別圖像
實踐8.01使用VGG16網路訓練深度學習網路識別圖像
訓練8.02對不在ImageNet數據集中的圖像進行分類
訓練8.03微調VGG16模型
訓練8.04使用ResNet進行圖像分類
實踐8.02使用ResNet進行圖像分類
8.4總結
第9章基於循環神經網路的順序建模
9.1簡介
9.2順序記憶和順序建模
9.3循環神經網路
9.3.1梯度消失問題
9.3.2梯度爆炸問題的簡析
9.4長短期記憶網路
訓練9.01使用50個單元(神經元)的LSTM預測Alphabet股價趨勢
實踐9.01使用50個單元(神經元)的LSTM預測亞馬遜股價趨勢
訓練9.02使用100個單元(神經元)的LSTM預測Alphabet股價趨勢
實踐9.02通過添加正則化預測亞馬遜股價
實踐9.03使用100個單元(神經元)的LSTM預測亞馬遜股價趨勢
9.5總結
附錄A各章實踐內容解析