入坑機器學習——若干知識點及其資料介紹

先寫篇初稿吧

12年讀研,我初次接觸到機器學習模式識別(PR&ML)這個方向。當時PR&ML絕對不像今天這麼火,甚至時至今日,大家也只是知道人工智能,不知道人工智能再次興起與PR&ML有什麼關係。無所謂,不研究這些確實不需要了解這些,但是如果你想入坑PR&ML,現在確實是好時機:打開網頁,輸入關鍵詞“機器學習”、“模式識別”、“神經網絡”、能得到太多相關文獻、博客、書籍的介紹,這大大降低了學習難度,加速了學習進度。當時我花費幾個月甚至幾年時間都找不到的答案,現在到處都是,以至於不知道看哪些好。但是多總比少,甚至沒有強。從我入坑到今天,積攢了一些學習經驗、資料,拿來分享。多數資料都是我看過的,覺得不錯的,各位在學習過程中如果產生了和我相似的疑問,可以對號入座,看一下相關資料,或許可以解決你一直以來的疑問。總結一句話,學這個方向,不能急,因爲隨便一個問題都不容易短時間理解透徹,需要長時間消化感悟。行文無條理,想到哪裏寫哪裏,務怪。

1. 基本運算:向量、矩陣對標量求導,函數式對向量矩陣求導是個什麼玩意?

對於初學者,你應該會有這樣的疑問吧?課本上從來沒出現過這些運算,你也不太可能從所學教材裏找到相關介紹。甚至你會對滿頁的用向量矩陣表示的運算感到反感,因爲你看慣了標量直接表示的加減乘除運算,突然換用矩陣向量來表示,極其不適應。爲什麼非得用向量矩陣表示這些運算?向量、矩陣到底是誰發明的,爲什麼它們有這麼神奇的能力?

如果你有過上述疑慮,不能怪你,只能說在從基礎教育轉向研究型教育上,教材或引導有斷層。向量、矩陣對標量甚至對矢量求導本質上都是按照一定的規則對標量的求導,只是這個規則沒有嚴格的界定,只是約定俗成。例如y=\bold{w}^T\bold{x}y是標量,\boldsymbol{\mathbf{w}}=[w_1,w_2,...,w_n]^T,\boldsymbol{\mathbf{x}}=[x_1,x_2,...x_n]^T均爲列向量,那麼y\boldsymbol{\mathbf{w}}求導本質上是y分別對w_1,...,w_n求導,然後將求導結果按照一定的規則排列成向量,一般按照分母佈局排列,即對誰求導就按其方式排列,這樣得到的結果就是\bold{x}

這一部分的疑問請詳細看資料:閒話矩陣求導

至於搞機器學習或其他研究都要用矩陣向量來表示相關問題,這其實就是方便問題的表述,運算。你或許會疑問,爲什麼感覺用矩陣向量表示後,感覺問題的表述並不只管,分析求解也沒覺得方便,這只是一種錯覺,習慣而已。用多了,熟悉了就能感覺到向量、矩陣運算的威力。推薦一個公衆號馬同學高等數學,或從網上搜索他的文章,寫的很只管易懂,不僅僅是關於矩陣的介紹。

最後,規則很不容易記住,那平時遇到矩陣求導相關問題怎麼辦?有一本小冊子,The Matrix Cookbookpdf 可供參考。

2. PCA的原理是什麼?SVD又是什麼?

PCA與大學線性代數中矩陣的特徵分解有關,PCA即主成分分析,可以從一堆數據中提取出能表示數據主要特徵的成分,非常神奇,剛開始接觸這一算法極其不理解爲什麼通過對數據的協方差矩陣進行特徵分解提取top k特徵值對應的特徵向量就可以用他們作爲基描述數據主要特徵,非常困惑呀...直到看了文章pdf ,還有這篇。現在,你也可以看Andrew Ng的機器學習視頻來理解PCA的推導。事實上,PCA還有很多不同的解釋,應用,各位可以自己去搜索。SVD與PCA同樣都屬於“矩陣分解”範疇,SVD可以對非方陣進行分解,其分解同樣具有很好的直觀解釋性,很重要,考試經常考...一個直觀的例子解釋,還有這篇。矩陣分解是PR&ML裏的一個重要方向,大家可以搜索其他文獻了解最新進展。

3. 運籌學、優化問題

除了需要掌握線性代數、概率統計的知識外,還需要懂一些凸優化、非線性優化,運籌學等知識。如果想成爲PR&ML領域的大牛,優化是你繞不過去的檻。所有PR&ML的問題最終都得靠這部分知識求解,沒辦法,死磕吧。這部分內容就沒辦法一一介紹了,但是你碰到的問題,如線性優化方法單純型、凸優化,牛頓迭代,擬牛頓迭代,對偶理論,KKT條件等等,在下面列舉的材料裏一般都能找到細緻入微的講解,而且是我遇到的介紹的比較細緻的材料,強烈推薦。

1. A toturial on convex optimization

2. Convex Optimization Overview

3. Convex Optimization-Stephen Boyd

4. Optimization-Richard Weber

5. An Introduction to the Conjugate Gradient Method Without the Agonizing Pain(共軛梯度)

6. Introduction to numerical continuation methods-Allgower E.L., Georg K-Colorado-1990

7. Introduction to Operations Research-Frederick S Hillier 9th Edition

8. Linear and Nonlinear Optimization Second Edition

9. Numerical Optimization

10. KKT_Condition

11. 從對偶問題到KKT條件

4. 傅里葉變化小波分析

這部分對於非數學專業的人來說也是一大難點。關於傅里葉變化,看神文,關於二維傅里葉,如圖像傅里葉變化更直觀的物理解釋一直沒找到合適的資料,有知道的歡迎留言。

小波分析有本上課時老師推薦的,難度不小

5. 概率圖

這裏的內容比較權威的書籍是Daphne Koller的《Probabilistic Graphical Models: Principles and Techniques》,此書已由王飛躍教授翻譯爲中文版。另外,網上也有授課,難度不小。這部分內容涉及馬爾科夫鏈、網、最大熵、條件隨機場、貝葉斯網等等經典的機器學習模型,值得每一位入坑的人瞭解。

6. 信息論基礎

機器學習部分涉及到的信息學的知識主要是圍繞“熵”展開的,如衡量兩個分佈差異的交叉熵等,相關內容從下文推薦的書裏瞭解即可。

7. 圖像視頻目標檢測分割分類等

這部分內容實在太龐大了,尤其是今天,相關內容更新非常快,建議直接閱讀文獻。搜索資源IEEE、Elsevier、ACM等。

一本通過馬爾科夫進行圖像分析的圖書

8. 吉布斯採樣

爲什麼把吉布斯採樣單獨拿出來,因爲這篇文章是我看到的最易懂的,寫的太好了,所以重點分享

9. 高斯分佈

高斯分佈的重要性不言而喻,分享一篇《正態分佈的前世今生》同樣是靳志輝同志寫的

10. 譜分類

A Tutorial on Spectral Clustering

11.稀疏表示

1. A survey of sparse representation: algorithms and applications

12. 流行學習

待整理...歡迎推薦

13. 低秩

歡迎推薦...

14. 算法及應用

1. 拼寫錯誤檢測更改鏈接

2.曾經的王者:支持向量機SVM,深度學習之前,SVM是扛把子。而且學習、理解並嘗試實現SVM對你入門機器學習幫助很大,是接觸優化理論的一個很好的入門例子。

 

END:機器學習教材推薦

0. 吳軍《數學之美》,全文幾乎無公式,講解深入淺出,非常適合機器學習入門

1. 周志華西瓜書《機器學習》,內容較新適合初學者

2. 李航藍皮書《統計學習方法》,最可貴的,書中好多例子,學過就能上代碼呀

3. BISHOP《Pattern Recognition and Machine Learning》,大神之作,至少大三再看吧

4. Bengio《Deep Leaning》(雖是講深度學習,但涉及面很廣泛)

 

先這樣吧,得幹活了...

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章