1. 程式人生 > >入坑機器學習——資料傳送門

入坑機器學習——資料傳送門

先寫篇初稿吧

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. 運籌學、優化問題

機器學習與數學的關係非常密切,除了需要掌握線性代數、概率統計的知識外,還需要懂一些凸優化、非線性優化,運籌學等知識。這部分內容就沒辦法一一介紹了,但是你碰到的問題,如線性優化方法單純型、凸優化,牛頓迭代,擬牛頓迭代,對偶理論,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等。

7. 吉布斯取樣

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

8. 高斯分佈

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

9.一個應用,拼寫錯誤檢測更改

連結

END:機器學習教材推薦

1. 周志華西瓜書《機器學習》

2. 李航藍皮書《統計學習方法》

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

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