机器学习相关资料
首先,簡(jiǎn)單介紹一下機(jī)器學(xué)習(xí)的一些原理。機(jī)器學(xué)習(xí)主要來(lái)說(shuō)有兩種方法,監(jiān)督式學(xué)習(xí)(Supervised Learning)和非監(jiān)督式學(xué)習(xí)(Unsupervised Learning)。
監(jiān)督式學(xué)習(xí)
所謂監(jiān)督式學(xué)習(xí),也就是說(shuō),我們需要提供一組學(xué)習(xí)樣本,包括相關(guān)的特征數(shù)據(jù)以及相應(yīng)的標(biāo)簽。程序可以通過(guò)這組樣本來(lái)學(xué)習(xí)相關(guān)的規(guī)律或是模式,然后通過(guò)得到的規(guī)律或模式來(lái)判斷沒(méi)有被打過(guò)標(biāo)簽的數(shù)據(jù)是什么樣的數(shù)據(jù)。
舉個(gè)例子,假設(shè)需要識(shí)別一些手寫的數(shù)字,那么我們就需要找到盡可能多的手寫體數(shù)字的圖像樣本,然后人工或是通過(guò)某種算法來(lái)明確地標(biāo)注什么是這些手寫體的圖片,誰(shuí)是 1,誰(shuí)是 2,誰(shuí)是 3……這組數(shù)據(jù)就叫樣本數(shù)據(jù),又叫訓(xùn)練數(shù)據(jù)(training data)。通過(guò)機(jī)器學(xué)習(xí)的算法,找到每個(gè)數(shù)字在不同手寫體下的特征,進(jìn)而找到規(guī)律和模式。然后通過(guò)得到的規(guī)律或模式來(lái)識(shí)別那些沒(méi)有被打過(guò)標(biāo)簽的手寫數(shù)據(jù),以此完成識(shí)別手寫體數(shù)字的目標(biāo)。
一種比較常見的監(jiān)督式學(xué)習(xí),就是從歷史數(shù)據(jù)中獲得數(shù)據(jù)的走向趨勢(shì),來(lái)預(yù)測(cè)未來(lái)的走向。比如,我們使用歷史上的股票走勢(shì)數(shù)據(jù)來(lái)預(yù)測(cè)接下來(lái)的股價(jià)漲跌,或者通過(guò)歷史上的一些垃圾郵件的樣本來(lái)識(shí)別新的垃圾郵件。
在監(jiān)督式學(xué)習(xí)下,需要有樣本數(shù)據(jù)或是歷史數(shù)據(jù)來(lái)進(jìn)行學(xué)習(xí),這種方式會(huì)有一些問(wèn)題。
-
如果一個(gè)事物沒(méi)有歷史數(shù)據(jù),那么就不好做了。變通的解決方式是通過(guò)一個(gè)和其類似的事物的歷史數(shù)據(jù)。我以前做過(guò)的需求預(yù)測(cè),就屬于這種情況。對(duì)于新上市的商品來(lái)說(shuō),完全沒(méi)有歷史數(shù)據(jù),比如,iPhone X,那么就需要從其類似的商品上找歷史數(shù)據(jù),如 iPhone 7 或是別的智能手機(jī)。
-
歷史數(shù)據(jù)中可能會(huì)有一些是噪音數(shù)據(jù),需要把這些噪音數(shù)據(jù)給過(guò)濾掉。一般這樣的過(guò)濾方式要通過(guò)人工判斷和標(biāo)注。舉兩個(gè)例子。某名人在其微博或是演講上推薦了一本書,于是這本書的銷量就上升了。這段時(shí)間的歷史數(shù)據(jù)不是規(guī)律性的,所以就不能成為樣本數(shù)據(jù),需要去掉。同樣,如果某名人(如 Michael Jackson)去世導(dǎo)致和其有關(guān)的商品銷售量很好,那么,這個(gè)事件所產(chǎn)生的數(shù)據(jù)則不屬于噪音數(shù)據(jù)。因?yàn)槊磕赀@個(gè)名人的忌日的時(shí)候出現(xiàn)銷量上升的可能性非常高,所以,需要標(biāo)注一下,這是有規(guī)律的樣本,可以放入樣本進(jìn)行學(xué)習(xí)。
非監(jiān)督式學(xué)習(xí)
對(duì)于非監(jiān)督式學(xué)習(xí),也就是說(shuō),數(shù)據(jù)是沒(méi)有被標(biāo)注過(guò)的,所以相關(guān)的機(jī)器學(xué)習(xí)算法需要找到這些數(shù)據(jù)中的共性。因?yàn)榇罅康臄?shù)據(jù)是沒(méi)有被標(biāo)識(shí)過(guò)的,所以這種學(xué)習(xí)方式可以讓大量的未標(biāo)識(shí)的數(shù)據(jù)能夠更有價(jià)值。而且,非監(jiān)督式的學(xué)習(xí),可以為我們找到人類很難發(fā)現(xiàn)的數(shù)據(jù)里的規(guī)律或模型。所以,也有人將這種學(xué)習(xí)稱為“特征點(diǎn)學(xué)習(xí)”。其可以讓我們自動(dòng)地為數(shù)據(jù)進(jìn)行分類,并找到分類的模型。
一般來(lái)說(shuō),非監(jiān)督式學(xué)習(xí)會(huì)應(yīng)用在一些交易型的數(shù)據(jù)中。比如,有一堆堆的用戶購(gòu)買數(shù)據(jù),但是對(duì)于人類來(lái)說(shuō),我們很難找到用戶屬性和購(gòu)買商品類型之間的關(guān)系,而非監(jiān)督式學(xué)習(xí)算法可以幫助我們找到之間的關(guān)系。比如,一個(gè)在某一個(gè)年齡段的女性購(gòu)買了某種肥皂,有可能說(shuō)明這個(gè)女生在懷孕期,或是某人購(gòu)買兒童用品,有可能說(shuō)明這個(gè)人的關(guān)系鏈中有孩子,等等。于是這些信息會(huì)被用作一些所謂的精準(zhǔn)市場(chǎng)營(yíng)銷活動(dòng),從而可以增加商品銷量。
我們這么來(lái)說(shuō)吧,監(jiān)督式學(xué)習(xí)是在被告訴過(guò)正確的答案之后的學(xué)習(xí),而非監(jiān)督式學(xué)習(xí)是在沒(méi)有被告訴正確答案時(shí)的學(xué)習(xí),所以說(shuō),非監(jiān)督式的學(xué)習(xí)是在大量的非常亂的數(shù)據(jù)中找尋一些潛在的關(guān)系,這個(gè)成本也比較高。這種非監(jiān)督式學(xué)習(xí)也會(huì)經(jīng)常被用來(lái)檢測(cè)一些不正常的事情發(fā)生,比如信用卡的詐騙或是盜刷。也被用在推薦系統(tǒng),比如買了這個(gè)商品的人又買了別的什么東西,或是如果某個(gè)人喜歡某篇文章、某個(gè)音樂(lè)、某個(gè)餐館,那么可能他會(huì)喜歡某款車、某個(gè)明星,或某個(gè)地方。
在監(jiān)督式的學(xué)習(xí)的算法下,我們可以用一組“狗”的照片來(lái)確定某個(gè)照片中的物體是不是狗。而在非監(jiān)督式的學(xué)習(xí)算法下,我們可以通過(guò)一個(gè)照片來(lái)找到與其相似的事物的照片。這兩種學(xué)習(xí)方式都有各自適用的場(chǎng)景。
如何找到數(shù)據(jù)的規(guī)律和關(guān)聯(lián)
機(jī)器學(xué)習(xí)基本就是在已知的樣本數(shù)據(jù)中尋找數(shù)據(jù)的規(guī)律,在未知的數(shù)據(jù)中找數(shù)據(jù)的關(guān)系。所以,這就需要一定的數(shù)學(xué)知識(shí)了,但對(duì)于入門的人來(lái)說(shuō),學(xué)好高數(shù)、線性代數(shù)、概率論、數(shù)據(jù)建模等大學(xué)本科的數(shù)學(xué)知識(shí)應(yīng)該就夠用了。以前上大學(xué)總覺(jué)得這些知識(shí)沒(méi)什么用處,原來(lái)只不過(guò)是自己太 low,還沒(méi)有從事會(huì)運(yùn)用到這些知識(shí)的工作。
總之,機(jī)器學(xué)習(xí)中的基本方法論是這樣的。
這個(gè)數(shù)據(jù)公式就是我們找出來(lái)的規(guī)律。通過(guò)這個(gè)規(guī)律,我們才可能關(guān)聯(lián)類似的數(shù)據(jù)。
當(dāng)然,也有更為簡(jiǎn)單粗暴的玩法。
有人把這個(gè)事叫“數(shù)據(jù)攪拌機(jī)”。據(jù)說(shuō),這種簡(jiǎn)單粗暴的方式超過(guò)了那些所謂的明確的數(shù)學(xué)公式或規(guī)則。這種“土辦法”有時(shí)候會(huì)比高大上的數(shù)學(xué)更有效,哈哈。
關(guān)于機(jī)器學(xué)習(xí)這個(gè)事,你可以讀一讀?Machine Learning is Fun!?這篇文章,以及它的中文翻譯版。
相關(guān)算法
對(duì)于監(jiān)督式學(xué)習(xí),有如下經(jīng)典算法。
決策樹(Decision Tree)。比如自動(dòng)化放貸、風(fēng)控。
樸素貝葉斯分類(Naive Bayesian classification)??梢杂糜谂袛嗬]件,對(duì)新聞的類別進(jìn)行分類,比如科技、政治、運(yùn)動(dòng),判斷文本表達(dá)的感情是積極的還是消極的、人臉識(shí)別等。
最小二乘法(Ordinary Least Squares Regression)。算是一種線性回歸。
邏輯回歸(Logisitic Regression)。一種強(qiáng)大的統(tǒng)計(jì)學(xué)方法,可以用一個(gè)或多個(gè)變量來(lái)表示一個(gè)二項(xiàng)式結(jié)果??梢杂糜谛庞迷u(píng)分、計(jì)算營(yíng)銷活動(dòng)的成功率、預(yù)測(cè)某個(gè)產(chǎn)品的收入等。
支持向量機(jī)(Support Vector Machine,SVM)??梢杂糜诨趫D像的性別檢測(cè),圖像分類等。
集成方法(Ensemble methods)。通過(guò)構(gòu)建一組分類器,然后根據(jù)它們的預(yù)測(cè)結(jié)果進(jìn)行加權(quán)投票來(lái)對(duì)新的數(shù)據(jù)點(diǎn)進(jìn)行分類。原始的集成方法是貝葉斯平均,但是最近的算法包括糾錯(cuò)輸出編碼、Bagging 和 Boosting。
對(duì)于非監(jiān)督式的學(xué)習(xí),有如下經(jīng)典算法。
聚類算法(Clustering Algorithms)。聚類算法有很多,目標(biāo)是給數(shù)據(jù)分類。
主成分分析(Principal Component Analysis,PCA)。PCA 的一些應(yīng)用包括壓縮、簡(jiǎn)化數(shù)據(jù),便于學(xué)習(xí)和可視化等。
奇異值分解(Singular Value Decomposition,SVD)。實(shí)際上,PCA 是 SVD 的一個(gè)簡(jiǎn)單應(yīng)用。在計(jì)算機(jī)視覺(jué)中,第一個(gè)人臉識(shí)別算法使用 PCA 和 SVD 來(lái)將面部表示為“特征面”的線性組合,進(jìn)行降維,然后通過(guò)簡(jiǎn)單的方法將面部匹配到身份。雖然現(xiàn)代方法更復(fù)雜,但很多方面仍然依賴于類似的技術(shù)。
獨(dú)立成分分析(Independent Component Analysis,ICA)。ICA 是一種統(tǒng)計(jì)技術(shù),主要用于揭示隨機(jī)變量、測(cè)量值或信號(hào)集中的隱藏因素。
上面的這些相關(guān)算法來(lái)源自博文《The 10 Algorithms Machine Learning Engineers Need to Know》。
相關(guān)推薦
學(xué)習(xí)機(jī)器學(xué)習(xí)有幾個(gè)課是必需要上的。
-
吳恩達(dá)教授(Andrew Ng)在?Coursera 上的機(jī)器學(xué)習(xí)課程非常棒。我強(qiáng)烈建議從此入手。對(duì)于任何擁有計(jì)算機(jī)科學(xué)學(xué)位的人,或是還能記住一點(diǎn)點(diǎn)數(shù)學(xué)的人來(lái)說(shuō),都非常容易入門。這個(gè)斯坦福大學(xué)的課程后面是有作業(yè)的,請(qǐng)盡量拿滿分。另外,網(wǎng)易公開課上也有該課程。
-
卡內(nèi)基梅隆大學(xué)計(jì)算機(jī)科學(xué)學(xué)院湯姆·米切爾(Tom Mitchell)教授的機(jī)器學(xué)習(xí)課程?英文原版視頻和課件 PDF?。湯姆·米切爾是全球 AI 界頂尖大牛,在機(jī)器學(xué)習(xí)、人工智能、認(rèn)知神經(jīng)科學(xué)等領(lǐng)域卓有建樹,撰寫了機(jī)器學(xué)習(xí)方面最早的教科書之一《機(jī)器學(xué)習(xí)》,被譽(yù)為入門必讀圖書。
-
加利福尼亞理工學(xué)院亞瑟·阿布·穆斯塔法(Yaser Abu-Mostafa)教授的?Learning from Data 系列課程?。本課程涵蓋機(jī)器學(xué)習(xí)的基本理論和算法,并將理論與實(shí)踐相結(jié)合,更具實(shí)踐指導(dǎo)意義,適合進(jìn)階。
除了上述的那些課程外,下面這些資源也很不錯(cuò)。
-
YouTube 上的 Google Developers 的?Machine Learning Recipes with Josh Gordon?。這 9 集視頻,每集不到 10 分鐘,從 Hello World 講到如何使用 TensorFlow,非常值得一看。
-
還有?Practical Machine Learning Tutorial with Python Introduction?上面一系列的用 Python 帶著你玩 Machine Learning 的教程。
-
Medium 上的?Machine Learning - 101?講述了好多我們上面提到過(guò)的經(jīng)典算法。
-
還有,Medium 上的?Machine Learning for Humans,不僅提供了入門指導(dǎo),更介紹了各種優(yōu)質(zhì)的學(xué)習(xí)資源。
-
杰森·布朗利(Jason Brownlee)博士的博客?也是非常值得一讀,其中好多的 “How-To”,會(huì)讓你有很多的收獲。
-
i am trask?也是一個(gè)很不錯(cuò)的博客。
-
關(guān)于 Deep Learning 中神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí),推薦 YouTube 介紹視頻?Neural Networks。
-
用 Python 做自然語(yǔ)言處理Natural Language Processing with Python。
-
以及 GitHub 上的?Machine Learning 和 Deep Learning?的相關(guān)教程列表。
此外,還有一些值得翻閱的圖書。
- 《機(jī)器學(xué)習(xí)》,南京大學(xué)周志華教授著。本書是一本機(jī)器學(xué)習(xí)方面的入門級(jí)教科書,適合本科三年級(jí)以上的學(xué)生學(xué)習(xí)。為了照顧學(xué)習(xí)的進(jìn)度,本書并不特別“厚”,讓學(xué)生能在同時(shí)修多門課的情況下至多 2 學(xué)期時(shí)間內(nèi)完成本書的學(xué)習(xí)。同時(shí),這本書也非常方便其他對(duì)機(jī)器學(xué)習(xí)感興趣的初學(xué)者快速學(xué)習(xí)入門知識(shí)。
本書如同一張地圖一般,讓讀者能“觀其大略”,了解機(jī)器學(xué)習(xí)的各個(gè)種類、各個(gè)學(xué)派,其覆蓋面與同類英文書籍相較不遑多讓。為了幫助讀者盡可能多地了解機(jī)器學(xué)習(xí),作者已試圖盡可能少地使用數(shù)學(xué)知識(shí)。對(duì)于僅需對(duì)機(jī)器學(xué)習(xí)做一般了解的讀者,閱讀本書時(shí)也可以略過(guò)數(shù)學(xué)細(xì)節(jié)僅做概觀,否則建議對(duì)相關(guān)基礎(chǔ)知識(shí)稍作復(fù)習(xí)以收全功。
- A Course In Machine Learning,馬里蘭大學(xué)哈爾·道姆(Hal Daumé III)副教授著。 本書講述了幾種經(jīng)典機(jī)器學(xué)習(xí)算法,包括決策樹、感知器神經(jīng)元、kNN 算法、K-means 聚類算法、各種線性模型(包括對(duì)梯度下降、支持向量機(jī)等的介紹)、概率建模、神經(jīng)網(wǎng)絡(luò)、非監(jiān)督學(xué)習(xí)等很多主題,還講了各種算法使用時(shí)的經(jīng)驗(yàn)技巧,適合初學(xué)者學(xué)習(xí)。此外,本書官網(wǎng)提供了免費(fèi)電子版。
- Deep Learning,麻省理工學(xué)院伊恩·古德費(fèi)洛(Ian Goodfellow)、友華·本吉奧(Yoshua Benjio)和亞倫·考維爾(Aaron Courville)著。本書是深度學(xué)習(xí)專題的經(jīng)典圖書。它從歷史的角度,將讀者帶進(jìn)深度學(xué)習(xí)的世界。深度學(xué)習(xí)使用多層的(深度的)神經(jīng)元網(wǎng)絡(luò),通過(guò)梯度下降算法來(lái)實(shí)現(xiàn)機(jī)器學(xué)習(xí),對(duì)于監(jiān)督式和非監(jiān)督式學(xué)習(xí)都有大量應(yīng)用。如果讀者對(duì)該領(lǐng)域有興趣,可以深入閱讀本書。本書官網(wǎng)提供免費(fèi)電子版,但不提供下載。實(shí)體書(英文原版或中文翻譯版)可以在網(wǎng)上買到。
-
Reinforcement Learning,安德魯·巴托(Andrew G.Barto)和理查德·薩頓(Richard S. Sutton)著。本書是強(qiáng)化學(xué)習(xí)(Reinforcement Learning)方面的入門書。它覆蓋了馬爾可夫決策過(guò)程(MDP)、Q-Learning、Sarsa、TD-Lamda 等方面。本書作者是強(qiáng)化學(xué)習(xí)方面的創(chuàng)始人之一。強(qiáng)化學(xué)習(xí)(結(jié)合深度學(xué)習(xí))在圍棋程序 AlphaGo 和自動(dòng)駕駛等方面都有著重要的應(yīng)用。
-
Pattern Recognition and Machine Learning?,微軟劍橋研究院克里斯托夫·比肖普(Christoph M. Bishop)著。本書講述模式識(shí)別的技術(shù),包括機(jī)器學(xué)習(xí)在模式識(shí)別中的應(yīng)用。模式識(shí)別在圖像識(shí)別、自然語(yǔ)言處理、控制論等多個(gè)領(lǐng)域都有應(yīng)用。日常生活中掃描儀的 OCR、平板或手機(jī)的手寫輸入等都屬于該領(lǐng)域的研究。本書廣受讀者好評(píng),是該領(lǐng)域一本不錯(cuò)的圖書。
總結(jié)
- 上一篇: 何为技术领导力
- 下一篇: Java互联网架构-京东国美高并发核心技