機器學習—第二個月

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 K cluster centroids mu_1,mu_2,...,mu_K in Re^n

Repeat {

for i = 1 to m

c^{(i)} = argmin_k ||x^{(i)}-mu_k||

for k = 1 to K

mu_k = avg left(  sum_{i=1}^{m} x_k^{(i)} 
ight)

}

K-Means演算法的核心主要是兩個步驟:1. 第一個for循環,對每一個數據點,通過找出距離該點最近的質心,分配該點到最近質心的簇;2. 第二個for循環,對每一個簇,計算簇中所有點的均值並將均值作為質心。

上述僅僅是K-Means演算法的核心步驟,相關的知識點還包括K-Means演算法的損失函數、避免局部最優解、選擇簇的數目等,建議參考 Andrew Ng 的機器學習-Unsupervised Learning-Clustering章節

高斯混合模型(參數估計的EM演算法)

截圖出處:李航博士的《統計學習方法》。

(i). 求解GMM最優參數的目標函數,可以通過極大似然法和對數似然得到:l_{alpha,mu,sum}(x) = sum_{i=1}^{N}log left(  sum_{k=1}^{K} alpha_k N(x_i | mu_k, Sigma_k )  
ight)  。不過GMM的目標函數不能通過求導得到最優參數,這是使用EM演算法估計GMM參數的原因之一。

(ii). alpha_k可理解為「取第k個高斯分布的概率」,即是第k個高斯分布的權值,初始值為第k個高斯分布的先驗概率。例:假設一個GMM中有2個高斯分布,總共有1000個樣本,其中有300個樣本屬於第一個高斯分布,其餘700個樣本屬於第二個高斯分布,則alpha_1 = 0.3, alpha_2 = 0.7

(iii). hat gamma_{jk}的意義是對於樣本x_i,它由第k個組份生成的概率。

(iv). 在E步中計算出hat gamma_{jk}之後,在M步中更新GMM的參數left( hat mu_k, hat sigma_k, hat alpha_k  
ight)

(v). 重複GMM模型中的EM步驟,直到收斂,得到最終GMM的參數left( mu_k, sigma_k, alpha_k 
ight)

上述僅僅是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)

TAG:机器学习 | 学习 | 互联网 |