機器學習之路:Caffe、Keras、scikit-learn實戰 | 被動收入的投資秘訣 - 2024年8月
![](https://www.books.com.tw/img/CN1/145/68/CN11456839.jpg)
機器學習之路:Caffe、Keras、scikit-learn實戰
機器學習需要一條脫離過高理論門檻的入門之路。《機器學習篇》從小紅帽采蘑菇的故事開篇,介紹了基礎的機器學習分類模型的訓練(第1章)。如何評估、調試模型?如何合理地發掘事物的特征?如何利用幾個模型共同發揮作用?后續章節一步一步講述了如何優化模型,更好地完成分類預測任務(第2章),並且初步嘗試將這些技術運用到金融股票交易中(第3章)。自然界好的非線性模型莫過於人類的大腦。《深度學習篇》從介紹並對比一些常見的深度學習框架開始(第4章),講解了DNN模型的直觀原理,嘗試給出一些簡單的生物學解釋,完成簡單的圖片識別任務(第5章)。后續章節在此基礎上,完成更為復雜的圖片識別CNN模型(第6章)。接着,本書展示了使用Caffe完成一個完整的圖片識別項目,從准備數據集,到完成識別任務(第7章)。后面簡單描述了RNN模型(第8章),接着展示了一個將深度學習技術落地到圖片處理領域的項目(第9章)。《機器學習篇》適合能看懂Python代碼,對機器學習感興趣,期望入門的讀者。阿布:多年互聯網金融技術從業經驗,曾就職於奇虎360、百度互聯網證券、百度金融等互聯網型金融公司,現自由職業,個人量化交易者,擅長個人中小資金量化交易領域系統開發,以及為中小型量化私募資金提供技術解決方案、技術支持、量化培訓等工作。胥嘉幸:北京大學碩士,先后就職於百度金融證券、百度糯米搜索部門。多年致力於大數據機器學習方面的研究,有深厚的數學功底和理論支撐。在將機器學習技術融於傳統金融量化領域方面頗有研究。
第1篇 機器學習篇第1 章 初識機器學習 21.1 機器學習——賦予機器「學習」的靈魂 21.1.1 小紅帽識別毒蘑菇 21.1.2 三種機器學習問題 61.1.3 常用符號 61.1.4 回顧 71.2 KNN——相似的鄰居請投票 71.2.1 模型原理 71.2.2 鳶尾花卉數據集(IRIS) 91.2.3 訓練模型 91.2.4 評估模型 121.2.5 關於KNN 141.2.6 運用KNN 模型 151.2.7 回顧 161.3 邏輯分類I:線性分類模型 161.3.1 參數化的模型 161.3.2 邏輯分類:預測 181.3.3 邏輯分類:評估 221.3.4 邏輯分類:訓練 231.3.5 回顧 241.4 邏輯分類II:線性分類模型 241.4.1 尋找模型的權重 241.4.2 去均值和歸一化 311.4.3 實現 331.4.4 回顧 34第2 章 機器學習進階 352.1 特征工程 352.1.1 泰坦尼克號生存預測 352.1.2 兩類特征 382.1.3 構造非線性特征 412.1.4 回顧 452.2 調試模型 462.2.1 模型調試的目標 462.2.2 調試模型 492.2.3 回顧 522.3 分類模型評估指標 532.3.1 混淆矩陣系指標 532.3.2 評估曲線 582.3.3 回顧 612.4 回歸模型 612.4.1 回歸與分類 612.4.2 線性回歸 622.4.3 波士頓房價預測 662.4.4 泰坦尼克號生存預測:回歸預測特征年齡Age 692.4.5 線性模型與非線性模型 722.4.6 回顧 732.5 決策樹模型 732.5.1 信息與編碼 742.5.2 決策樹 762.5.3 對比線性模型和決策樹模型的表現 772.5.4 回顧 792.6 模型融合 802.6.1 融合成群體(Ensamble) 802.6.2 Bagging:隨機森林(Random Forest) 822.6.3 Boosting:GBDT 832.6.4 Stacking 862.6.5 泰坦尼克號生存預測:小結 932.6.6 回顧 94第3 章 實戰:股票量化 953.1 第1步:構造童話世界 953.1.1 股票是什麼 953.1.2 當機器學習與量化交易走在一起 963.1.3 構造一個童話世界 963.1.4 回顧 1003.2 第二步:應用機器學習 1003.2.1 構建特征數據 1003.2.2 回歸預測股票價格 1033.2.3 分類預測股票漲跌 1083.2.4 通過決策樹分類,繪制決策圖 1123.2.5 回顧 1143.3 第三步:在真實世界應用機器學習 1143.3.1 回測 1153.3.2 基於特征的交易預測 1193.3.3 破滅的童話——真實世界的機器學習 122第二篇 深度學習篇第4 章 深度學習:背景和工具 1264.1 背景 1264.1.1 人工智能——為機器賦予人的智能 1264.1.2 圖靈測試 1264.1.3 強人工智能 vs 弱人工智能 1274.1.4 機器學習和深度學習 1284.1.5 過度的幻想 1284.1.6 回顧 1294.2 深度學習框架簡介 1294.2.1 評測方式 1304.2.2 評測對象 1314.2.3 深度學習框架評測 1314.2.4 小結 1354.3 深度學習框架快速上手 1354.3.1 符號主義 1354.3.2 MNIST 1364.3.3 Keras 完成邏輯分類 1384.3.4 回顧 1414.4 Caffe 實現邏輯分類模型 1414.4.1 Caffe 訓練MNIST 概覽 1424.4.2 Caffe 簡介 1444.4.3 准備數據集 1454.4.4 准備模型 1464.4.5 模型訓練流程 1494.4.6 使用模型 1494.4.7 Caffe 的Python 接口 1504.4.8 回顧 151第5 章 深層學習模型 1525.1 解密生物智能 1545.1.1 實驗一:大腦的材料 1545.1.2 實驗二:探索腦皮層的功能區域 1565.1.3 實驗三:不同的皮層組織——區別在於函數算法 1585.1.4 實驗四:可替換的皮層模塊——神經元組成的學習模型 1615.1.5 模擬神經元 1625.1.6 生物結構帶來的啟發 1635.1.7 回顧 1645.2 DNN 神經網絡模型 1645.2.1 線性內核和非線性激活 1645.2.2 DNN、CNN、RNN 1655.2.3 邏輯分類:一層神經網絡 1665.2.4 更多的神經元 1675.2.5 增加Hidden Layer(隱層) 1685.2.6 ReLu 激活函數 1705.2.7 理解隱層 1715.2.8 回顧 1725.3 神經元的深層網絡結構 1725.3.1 問題:更寬 or 更深 1725.3.2 鏈式法則:深層模型訓練更快 1735.3.3 生物:深層模型匹配生物的層級識別模式 1755.3.4 深層網絡結構 1775.3.5 回顧 1785.4 典型的DNN 深層網絡模型:MLP 1785.4.1 優化梯度下降 1795.4.2 處理過擬合:Dropout 1815.4.3 MLP 模型 1825.4.4 回顧 1855.5 Caffe 實現MLP 1855.5.1 搭建MLP 1855.5.2 訓練模型 1895.5.3 回顧 190第6 章 學習空間特征 1916.1 預處理空間數據 1926.1.1 像素排列展開的特征向量帶來的問題 1926.1.2 過濾冗余 1946.1.3 生成數據 1956.1.4 回顧 1986.2 描述圖片的空間特征:特征圖 1996.2.1 圖片的卷積運算. 1996.2.2 卷積指令和特征圖 2016.2.3 回顧 2066.3 CNN 模型I:卷積神經網絡原理 2066.3.1 卷積神經元 2076.3.2 卷積層 2086.3.3 多層卷積 2116.3.4 回顧 2166.4 CNN 模型II:圖片識別 2166.4.1 連接分類模型 2166.4.2 貓狗分類 2176.4.3 反思CNN 與DNN 的結合:融合訓練 2216.4.4 深度學習與生物視覺 2226.4.5 回顧 2246.5 CNN 的實現模型 2246.5.1 ImageNet 簡介 2246.5.2 Googlenet 模型和Inception 結構 2266.5.3 VGG 模型 2286.5.4 其他模型 2316.5.5 回顧 2326.6 微訓練模型(fine-tuning) 2326.6.1 二次訓練一個成熟的模型 2326.6.2 微訓練在ImageNet 訓練好的模型 2336.6.3 回顧 239第7 章 Caffe 實例:狗狗品種辨別 2407.1 准備圖片數據 2407.1.1 搜集狗狗圖片 2407.1.2 清洗數據 2417.1.3 標准化數據 2427.1.4 回顧 2437.2 訓練模型 2437.2.1 生成樣本集 2447.2.2 生成訓練、測試數據集 2457.2.3 生成lmdb 2467.2.4 生成去均值文件. 2477.2.5 更改prototxt 文件 2477.2.6 訓練模型 2497.2.7 回顧 2497.3 使用生成的模型進行分類 2497.3.1 更改deploy.prototxt 2497.3.2 加載模型 2507.3.3 回顧 257第8 章 漫談時間序列模型 2588.1 Embedding 2598.1.1 簡單的文本識別. 2608.1.2 深度學習從讀懂詞義開始 2618.1.3 游戲:詞義運算. 2648.1.4 回顧 2648.2 輸出序列的模型 2658.2.1 RNN 2658.2.2 LSTM 2668.2.3 並用人工特征和深度學習特征——一個NLP 模型的優化歷程 2688.2.4 反思:讓模型擁有不同的能力 2708.2.5 回顧 2738.3 深度學習:原理篇總結 2738.3.1 原理小結 2738.3.2 使用建議 275第9 章 用深度學習做個藝術畫家——模仿實現PRISMA 2779.1 機器學習初探藝術作畫 2789.1.1 藝術作畫概念基礎 2789.1.2 直觀感受一下機器藝術家 2799.1.3 一個有意思的實驗 2809.1.4 機器藝術作畫的願景 2819.1.5 回顧 2829.2 實現秒級藝術作畫 2829.2.1 主要實現思路分解講解 2839.2.2 使用統計參數期望與標准差尋找mask 2909.2.3 工程代碼封裝結構及使用示例 2999.2.4 回顧和后記 302附錄A 機器學習環境部署 303附錄B 深度學習環境部署 307附錄C 隨書代碼運行環境部署 312
越來越多的人期待能擠進機器學習這一行業,這些人往往有一些編程和自學能力,但數學等基礎理論能力不足。對於這些人群,從頭開始學習概率統計等基礎學科是痛苦的,如果直接上手使用機器學習工具往往又感到理解不足,缺少點什麼。本書就是面向這一人群,避過數學推導等復雜的理論推衍,介紹模型背后的一些簡單直觀的理解,以及如何上手使用。本書希望能夠得到這些人的喜愛。本書包含兩部分:機器學習篇和深度學習篇。機器學習篇(1~3章)主要從零開始,介紹什麼是數據特征,什麼是機器學習模型,如何訓練模型、調試模型,以及如何評估模型的成績。通過一些簡單的任務例子,講解在使用模型時如何分析並處理任務數據的特征,如何組合多個模型共同完成任務,並在第3章初步嘗試將機器學習技術運用到股票交易中,重復熟悉這些技術的同時,感受機器學習技術在落地到專業領域時常犯的錯誤。深度學習篇(4~9章)則主要介紹了一些很基礎的深度學習模型,如DNN、CNN等,簡單涵蓋了一些RNN的概念描述。我們更關注模型的直觀原理和背后的生物學設計理念,希望讀者能夠帶着這些理解,直接上手應用深度學習框架。說一點關於閱讀本書的建議。本書在編寫時不關注模型技術的數學推導及嚴謹表述,轉而關注其背后的直觀原理理解。建議讀者以互動執行代碼的方式學習,所有示例使用I Python Notebook編寫。讀者可在Git上找到對應章節的內容,一步一步運行書中講解的知識點,直觀感受每一步的執行效果。本書適合有Python編程能力的讀者。如果讀者有簡單的數學基礎,了解概率、矩陣則更佳。使用過Numpy、pandas等數據處理工具的讀者讀起來也會更輕松,但這些都不是必需的。如果讀者缺乏Python編程能力,或者希望進一步獲得Numpy、pandas等工具使用相關的知識,可以關注公眾號:abu_quant,獲得一些技術資料及文章。感謝出版社提供機會讓我們編寫本書,感謝編輯不辭辛苦地和我溝通排版等細節問題。本書的完成同樣需要感謝我們的幾位朋友:吳汶(老虎美股)、劉兆丹(百度金融),感謝你們在本書編寫作過程中提供的有力支持。感謝本書的試讀人員:蔡志威、李寅龍。