機器學習是設計與應用算法的科學,可從數(shù)據(jù)中進行學習和預測,其應用已經(jīng)非常普遍。金融領(lǐng)域集中了大量的交易數(shù)據(jù),為人工智能技術(shù)的運用奠定了良好的數(shù)據(jù)基礎(chǔ)。本書面向金融領(lǐng)域的讀者,介紹了機器學習技術(shù)的原理與實踐。
本書包括10章,介紹了神經(jīng)網(wǎng)絡算法、結(jié)構(gòu)化數(shù)據(jù)的處理、計算機視覺處理技術(shù)、時間序列分析、自然語言處理、生成模型的應用、強化學習技術(shù)、數(shù)據(jù)建模與調(diào)試、貝葉斯推理和概率編程等內(nèi)容。
本書由資深金融從業(yè)者編寫,融合了其在金融項目中關(guān)于機器學習的實踐經(jīng)驗,適合金融領(lǐng)域的數(shù)據(jù)科學家、數(shù)據(jù)分析師、金融科技公司的技術(shù)研發(fā)人員以及對金融領(lǐng)域的機器學習技術(shù)感興趣的讀者閱讀。
1. 本書是聚焦于金融業(yè)的現(xiàn)代機器學習使用指南
2. 配套代碼+圖片講解幫助讀者快速上手
3. 詳細的理論推到和算法分析,引導讀者了解機器學習的內(nèi)核
4. 知識點與代碼示例環(huán)環(huán)相扣,理論與編程實踐完美結(jié)合
簡尼斯·克拉斯(Jannes Klaas)是一名擁有金融學和經(jīng)濟學背景的量化分析師。他曾主導過兩個機器學習訓練營項目,也同研發(fā)數(shù)據(jù)驅(qū)動類應用的公司和交易策略類公司有過合作。目前,他的研究領(lǐng)域包括系統(tǒng)風險和大規(guī)模自動化的知識挖掘。
第 1章 神經(jīng)網(wǎng)絡和基于梯度的優(yōu)化 1
1.1 本書的內(nèi)容概要 2
1.2 什么是機器學習 3
1.3 監(jiān)督學習 4
1.4 非監(jiān)督學習 5
1.5 強化學習 5
1.5.1 極其有效的數(shù)據(jù) 6
1.5.2 模型即是錯 6
1.6 創(chuàng)建工作區(qū) 8
1.7 使用Kaggle內(nèi)核 8
1.8 使用AWS深度學習AMI 12
1.9 近似函數(shù) 12
1.10 前向傳遞 13
1.11 邏輯回歸器 14
1.12 優(yōu)化模型參數(shù) 17
1.13 評估模型損失 18
1.13.1 梯度下降 19
1.13.2 反向傳播 20
1.13.3 參數(shù)更新 22
1.13.4 階段小結(jié) 22
1.14 深度網(wǎng)絡 25
1.15 Keras簡介 29
1.15.1 導入Keras庫 30
1.15.2 Keras中的雙層模型 30
1.15.3 Keras和TensorFlow 33
1.16 張量和計算圖 33
1.17 練習 35
1.18 本章小結(jié) 35
第 2章 機器學習在結(jié)構(gòu)化數(shù)據(jù)中的應用 37
2.1 數(shù)據(jù) 38
2.2 啟發(fā)式模型、基于特征的模型和E2E模型 40
2.3 機器學習軟件棧 41
2.4 啟發(fā)式方法 42
2.4.1 使用啟發(fā)式模型來預測 42
2.4.2 F1分數(shù) 43
2.4.3 基于混淆矩陣的評價 44
2.5 特征工程方法 45
2.5.1 特征源于直覺—詐騙者永不眠 46
2.5.2 專家視角—轉(zhuǎn)賬后提款 48
2.5.3 統(tǒng)計奇事—余額中的錯誤 48
2.6 Keras庫的數(shù)據(jù)準備 49
2.6.1 one-hot編碼 50
2.6.2 實體嵌入(entity embeddings) 51
2.7 使用Keras創(chuàng)建預測模型 54
2.7.1 提取目標 55
2.7.2 創(chuàng)建測試集 55
2.7.3 創(chuàng)建驗證集 56
2.7.4 訓練數(shù)據(jù)的過采樣 56
2.7.5 構(gòu)建模型 57
2.8 基于決策樹方法的簡要入門 61
2.8.1 一個簡單的決策樹 61
2.8.2 隨機森林 62
2.8.3 XGBoost 63
2.9 E2E模型 64
2.10 練習 65
2.11 本章小結(jié) 65
第3章 計算機視覺的應用 66
3.1 卷積神經(jīng)網(wǎng)絡 68
3.1.1 過濾MNIST數(shù)據(jù)集 68
3.1.2 第二個過濾器 70
3.2 彩色圖片的過濾技術(shù) 71
3.3 Keras ConvNet組成模塊 72
3.3.1 Conv2D 72
3.3.2 最大池化 76
3.3.3 Flatten層 77
3.3.4 Dense層 78
3.3.5 訓練MNIST 78
3.4 神經(jīng)網(wǎng)絡的延展 83
3.4.1 動量 83
3.4.2 Adam優(yōu)化器 84
3.4.3 正則化(regularization) 85
3.4.4 失效(dropout) 88
3.4.5 批歸一化(BatchNorm) 90
3.5 采用大圖片數(shù)據(jù)集 91
3.6 采用預訓練模型 93
3.6.1 修改VGG16 95
3.6.2 隨機圖像增強 96
3.7 模塊度權(quán)衡 99
3.8 計算機視覺不止分類 100
3.8.1 人臉識別 100
3.8.2 邊框預測 102
3.9 練習 104
3.10 本章小結(jié) 104
第4章 理解時間序列 106
4.1 數(shù)據(jù)的可視化與Pandas準備 107
4.1.1 匯總?cè)痔卣鹘y(tǒng)計 109
4.1.2 檢查采樣時間序列 112
4.1.3 不同平穩(wěn)特性 115
4.1.4 為什么平穩(wěn)性重要 116
4.1.5 讓時間序列具有平穩(wěn)性 116
4.1.6 何時忽略平穩(wěn)性問題 118
4.2 快速傅里葉變換 118
4.3 自相關(guān) 121
4.4 構(gòu)建訓練和測試方案 123
4.5 回測 124
4.6 中位數(shù)預測 126
4.7 ARIMA模型 128
4.8 卡曼濾波 131
4.9 神經(jīng)網(wǎng)絡預測 136
4.10 Conv1D 142
4.11 因果卷積和擴張卷積 143
4.12 簡單的RNN 145
4.13 LSTM 146
4.14 循環(huán)dropout 149
4.15 貝葉斯深度學習 150
4.16 練習 153
4.17 本章小結(jié) 154
第5章 用自然語言處理解析文本數(shù)據(jù) 155
5.1 spaCy的入門指南 156
5.2 命名實體識別 158
5.3 詞性標記 166
5.4 基于規(guī)則的匹配 168
5.4.1 在匹配器中添加自定義函數(shù) 170
5.4.2 匹配器添加到pipeline中 172
5.4.3 基于規(guī)則和學習相結(jié)合的系統(tǒng) 172
5.5 正則表達式 173
5.5.1 Python正則表達式 174
5.5.2 Pandas正則表達式 175
5.5.3 何時使用正則表達式 175
5.6 文本分類任務 175
5.7 準備數(shù)據(jù) 176
5.7.1 清理字符 176
5.7.2 詞形還原 177
5.7.3 制定目標 178
5.7.4 準備訓練集和測試集 179
5.8 詞袋模型 179
5.9 主題模型 181
5.10 單詞嵌入 183
5.10.1 針對單詞向量訓練的預處理 184
5.10.2 加載預先訓練的單詞向量 186
5.10.3 單詞向量的時間序列模型 190
5.11 具有單詞嵌入的文檔相似度 191
5.12 快速瀏覽Keras函數(shù)API 192
5.13 注意力機制 195
5.14 注意力模塊 197
5.15 seq2seq模型 199
5.15.1 seq2seq架構(gòu)概述 199
5.15.2 數(shù)據(jù) 200
5.15.3 字符編碼 202
5.15.4 構(gòu)建推斷模型 206
5.15.5 翻譯 208
5.16 練習 210
5.17 本章小結(jié) 211
第6章 生成模型的應用 212
6.1 理解自編碼器 213
6.1.1 MNIST的自編碼器 214
6.1.2 信用卡自編碼器 217
6.2 使用t-SNE可視化隱空間 221
6.3 變分自編碼器 225
6.3.1 MNIST實例 226
6.3.2 使用Lambda層 227
6.3.3 Kullback-Leibler散度 228
6.3.4 創(chuàng)建自定義損失 230
6.3.5 使用VAE生成數(shù)據(jù) 231
6.3.6 針對端到端詐騙檢測系統(tǒng)的VAE 233
6.4 時間序列的VAE 234
6.5 GAN 236
6.5.1 MNIST GAN 238
6.5.2 理解GAN隱向量 245
6.5.3 GAN訓練技巧 245
6.6 使用更少的數(shù)據(jù)—主動學習 248
6.6.1 高效使用標簽預算 248
6.6.2 采用機器來為人類打標簽 250
6.6.3 未打標簽數(shù)據(jù)的偽標簽 251
6.6.4 使用生成模型 251
6.7 用于詐騙檢測的SGAN 251
6.8 練習 258
6.9 本章小結(jié) 258
第7章 金融市場中的強化學習 259
7.1 “接水果”游戲—強化學習的快速指南 260
7.1.1 Q-learning將強化學習變成監(jiān)督學習 262
7.1.2 定義Q-learning模型 265
7.1.3 訓練玩“接水果”游戲 266
7.2 馬爾可夫過程和貝爾曼方程—強化學習的形式化介紹 268
7.3 優(yōu)勢動作評論(A2C)模型 273
7.3.1 學習平衡 275
7.3.2 學習交易 286
7.4 進化策略和基因算法 290
7.5 強化學習工程的實用建議 292
7.5.1 設計良好的收益函數(shù) 292
7.5.2 強魯棒性的強化學習 294
7.6 強化學習技術(shù)前沿 295
7.6.1 多代理強化學習 295
7.6.2 學習如何去學習 296
7.6.3 通過強化學習理解大腦 297
7.7 練習 298
7.8 本章小結(jié) 298
第8章 調(diào)試和發(fā)布產(chǎn)品 299
8.1 調(diào)試數(shù)據(jù) 300
8.1.1 如何查看數(shù)據(jù)是否勝任任務 300
8.1.2 沒有足夠數(shù)據(jù)該怎么辦 302
8.1.3 單元測試數(shù)據(jù) 302
8.1.4 保證數(shù)據(jù)隱私并遵守法規(guī) 306
8.1.5 為訓練準備數(shù)據(jù) 308
8.1.6 了解何種輸入導致何種預測 309
8.2 調(diào)試模型 311
8.2.1 Hyperas搜索超參 311
8.2.2 高效的學習率搜索 316
8.2.3 學習率調(diào)度 318
8.2.4 TensorBoard監(jiān)控訓練 320
8.2.5 梯度爆炸和消失 324
8.3 部署 325
8.3.1 快速上線 326
8.3.2 理解和監(jiān)控指標 327
8.3.3 了解數(shù)據(jù)的來源 328
8.4 性能建議 329
8.4.1 使用合適的硬件 329
8.4.2 使用分布式訓練和TF估計器 329
8.4.3 使用CuDNNLSTM優(yōu)化層 331
8.4.4 優(yōu)化管道 331
8.4.5 使用Cython加速代碼 334
8.4.6 緩存頻繁的請求 336
8.5 練習 336
8.6 本章小結(jié) 336
第9章 挑戰(zhàn)偏見 338
9.1 機器學習中不公平的來源 339
9.2 法律視角 340
9.3 量化公平 341
9.4 訓練公平 344
9.5 因果學習 354
9.5.1 獲得因果模型 355
9.5.2 工具變量 356
9.5.3 非線性因果模型 357
9.6 解釋模型來確保公平 359
9.7 不公平則是復雜系統(tǒng)的失敗 364
9.7.1 復雜系統(tǒng)本質(zhì)上是危險系統(tǒng) 365
9.7.2 諸多故障引發(fā)災難 365
9.7.3 復雜系統(tǒng)以降級模式運行 365
9.7.4 人工操作既能引發(fā)事故也能防止事故 365
9.7.5 無事故操作要求有故障經(jīng)驗 365
9.8 開發(fā)公平模型的檢查清單 366
9.8.1 模型開發(fā)人員的目標是什么 366
9.8.2 數(shù)據(jù)存在偏見嗎 366
9.8.3 錯誤是否有偏見 366
9.8.4 如何整合反饋 367
9.8.5 模型可解釋嗎 367
9.8.6 模型部署后會發(fā)生什么 367
9.9 練習 367
9.10 本章小結(jié) 368
第 10章 貝葉斯推理和概率編程 369
10.1 貝葉斯推理入門指南 370
10.1.1 扁平先驗 371
10.1.2 < 50%先驗 373
10.1.3 先驗與后驗 374
10.1.4 馬爾可夫鏈蒙特卡羅算法 376
10.1.5 Metropolis-Hastings MCMC 381
10.1.6 從概率編程到深度概率編程 386
10.2 本章小結(jié) 387
結(jié)束語 388
推薦讀物 389