機器學習—第二個月
1. 學習內容
- 總結線性回歸、邏輯回歸、決策樹、支持向量機、AdaBoost的原理及數學推導(總共大約40小時);
- 學習並總結 隨機森林、GBDT、XGBoost(總共大約30小時),剛學習GBDT的時候覺得很難理解,個人覺得學習曲線的轉折點是理解「偽殘差」的概念及基於它的建模方式;
- A practice project,數據量不大,重點在於數據分析、特徵工程,最後使用 RandomForestClassifier 配合 GridSearchCV 訓練模型,並預測 test data;(耗時一周,大約30小時)
- 無監督式機器學習相關:K-Means,EM演算法,高斯混合模型,PCA,運用相關知識的一個 tutorial project;(耗時一周,大約30小時)
上述內容,學習或總結時基本都弄明白了。但是過幾天憑空回憶時,流程或者細節上會出現模凌兩可的感覺。
插個題外話,這種現象或學習過程,我個人已經不是第一次遇到,比如數據結構和演算法,至今反覆學習了兩三次,一段時間不看也基本是模糊的感覺。可能是理解的不夠透徹,可能是練習不夠,有可能是反覆的學習複習符合大腦記憶的規律,等等原因。如果有哪位知乎er有類似「過目不忘」的本領或者對該問題有深刻的理解,歡迎留言指點。
2. 簡述兩個演算法
剛剛學完無監督式機器學習相關的知識,暫時還沒有時間總結,隨這篇文章先簡單地記錄下K-Means和高斯混合模型。
K-Means
Randomly initialize cluster centroids
Repeat {
for = 1 to
for = 1 to
}
K-Means演算法的核心主要是兩個步驟:1. 第一個循環,對每一個數據點,通過找出距離該點最近的質心,分配該點到最近質心的簇;2. 第二個循環,對每一個簇,計算簇中所有點的均值並將均值作為質心。
上述僅僅是K-Means演算法的核心步驟,相關的知識點還包括K-Means演算法的損失函數、避免局部最優解、選擇簇的數目等,建議參考 Andrew Ng 的機器學習-Unsupervised Learning-Clustering章節。
高斯混合模型(參數估計的EM演算法)
截圖出處:李航博士的《統計學習方法》。(i). 求解GMM最優參數的目標函數,可以通過極大似然法和對數似然得到:。不過GMM的目標函數不能通過求導得到最優參數,這是使用EM演算法估計GMM參數的原因之一。
(ii). 可理解為「取第個高斯分布的概率」,即是第個高斯分布的權值,初始值為第個高斯分布的先驗概率。例:假設一個GMM中有2個高斯分布,總共有1000個樣本,其中有300個樣本屬於第一個高斯分布,其餘700個樣本屬於第二個高斯分布,則。
(iii). 的意義是對於樣本,它由第個組份生成的概率。
(iv). 在E步中計算出之後,在M步中更新GMM的參數。
(v). 重複GMM模型中的EM步驟,直到收斂,得到最終GMM的參數。
上述僅僅是GMM模型使用EM演算法估計參數的流程,和對公式中參數的解釋。EM演算法的數學原理(我暫時還沒花功夫去學習),以及在GMM中應用EM演算法的數學推導,需要非常大的篇幅才能描述清楚。建議參考 李航博士的《統計學習方法》的第9章《EM演算法及其推廣》,小象學院的鄒博博士的機器學習-第六章 EM演算法。
3. 下個月計劃
(i). 傳統的機器學習演算法,基本上是過了一遍。若有時間複習,我準備把時間和精力分配給工業界應用較廣的幾種:邏輯回歸,決策樹,隨機森林,GBDT,XGBoost。如果有朋友認為在實際工作中有更重要和廣泛使用的演算法,歡迎補充;
(ii). 還有兩塊硬骨頭:強化學習和深度學習,希望也能儘快入門並深入學習。也非常歡迎學過該領域技術的知乎er留下寶貴的學習經驗和路線。
推薦閱讀:
※Neural Networks and Deep Learning(一)
※什麼是 Sarsa (強化學習)
※巡洋艦深度學習特訓營
※說說為什麼svm中的某核能映射到無窮維
※帶你讀機器學習經典(三): Python機器學習(Chapter 1&2)