機(jī)器學(xué)習(xí)的學(xué)習(xí)經(jīng)驗總結(jié)!
本文分享了機(jī)器學(xué)習(xí)概念,學(xué)習(xí)路線和知識體系,希望幫助大家更好地入門機(jī)器學(xué)習(xí)。
Part 1 機(jī)器學(xué)習(xí)相關(guān)概念
現(xiàn)如今,關(guān)于人工智能(AI)領(lǐng)域出現(xiàn)了很多眼花繚亂的名詞,包括機(jī)器學(xué)習(xí),統(tǒng)計學(xué)習(xí),數(shù)據(jù)科學(xué),數(shù)據(jù)分析,數(shù)據(jù)挖掘,深度學(xué)習(xí)等。這些名詞都是什么意思?有什么作用?這里區(qū)分介紹下。
如果大家沒有接觸過人工智能的話,大家可能最熟悉的就是統(tǒng)計學(xué)了,在大學(xué)期間就學(xué)習(xí)的概率論就是統(tǒng)計學(xué)的相關(guān)知識,所以首先我們介紹一下統(tǒng)計學(xué)和統(tǒng)計學(xué)習(xí)。統(tǒng)計學(xué)和統(tǒng)計學(xué)習(xí)并非承接或者包含關(guān)系,兩者可以看作兩個不同的學(xué)科,不過統(tǒng)計學(xué)習(xí)中運用到了很多統(tǒng)計學(xué)的相關(guān)基礎(chǔ)數(shù)學(xué)知識。
后臺回復(fù)關(guān)鍵詞'210531'可下載完整PPT
在介紹完這兩個區(qū)別后,我們進(jìn)一步來看一下機(jī)器學(xué)習(xí),什么是機(jī)器學(xué)習(xí),能不能用一句話來概括?

我們用一個脫離具體算法的視角來看:機(jī)器學(xué)習(xí)就是一套計算機(jī)機(jī)器利用數(shù)據(jù)來學(xué)習(xí)規(guī)則/映射關(guān)系的固定算法/方法。每一種機(jī)器用來從數(shù)據(jù)學(xué)習(xí)規(guī)則的方法,我們都可以視為一種機(jī)器學(xué)習(xí)算法,而機(jī)器學(xué)習(xí)最初的發(fā)展是由統(tǒng)計學(xué)習(xí)方法支撐的,所以很多時候機(jī)器學(xué)習(xí)(除開深度學(xué)習(xí)之外)和統(tǒng)計學(xué)習(xí)基本是等同的。
而數(shù)據(jù)科學(xué),數(shù)據(jù)分析的概念可以大概解釋如下:
對于統(tǒng)計學(xué)習(xí)和機(jī)器學(xué)習(xí),深度學(xué)習(xí)的一些區(qū)別和性質(zhì),我們可以大體介紹如下:
Part 2 機(jī)器學(xué)習(xí)的整體學(xué)習(xí)流程
在對于機(jī)器學(xué)習(xí)的名詞基本概念有了理解后,我們來介紹一下機(jī)器學(xué)習(xí)的整體學(xué)習(xí)流程,我們可以把機(jī)器學(xué)習(xí)分為三個板塊,數(shù)學(xué)基礎(chǔ),機(jī)器學(xué)習(xí)算法和編程實踐。
但大家需要注意的是,三個版本并非承接關(guān)系,也就是說并非學(xué)完了數(shù)學(xué)才能學(xué)算法,學(xué)了算法才能編程實踐——這也是極其不推薦的路徑,除非本身是數(shù)學(xué)系的同學(xué)或者今后期望進(jìn)行相關(guān)方面理論研究的同學(xué),否則這條路徑是很不友好的。
舉個例子,我們其實可以先了解相關(guān)算法的概念和應(yīng)用的方面然后直接學(xué)編程實踐,在實踐過程中學(xué)習(xí)理論,不清楚的理論知識再補充相應(yīng)的數(shù)學(xué)基礎(chǔ),或者先學(xué)習(xí)相關(guān)機(jī)器學(xué)習(xí)算法理論,然后過程中進(jìn)行實踐和相關(guān)數(shù)學(xué)基礎(chǔ)補充。
所以,可以把三者視為相互關(guān)聯(lián)的,數(shù)學(xué)基礎(chǔ)有助于我們更好的理解機(jī)器學(xué)習(xí)算法,而對于機(jī)器學(xué)習(xí)算法的理解能指導(dǎo)我們更好第進(jìn)行編程實踐。
數(shù)學(xué)基礎(chǔ)部分
在學(xué)習(xí)算法理論的同時再進(jìn)一步補充相關(guān)知識,例如決策樹,優(yōu)化方法等就涉及到的信息論中的信息熵,最優(yōu)化中的梯度下降法,SVM涉及到對偶問題,KKT條件等。
一般機(jī)器學(xué)習(xí)算法理論的數(shù)學(xué)基礎(chǔ)學(xué)習(xí)到基礎(chǔ)數(shù)學(xué)衍生這一層就可以了,而如果大家有興趣涉獵機(jī)器學(xué)習(xí)理論的研究,例如可學(xué)性,復(fù)雜度,泛化性,穩(wěn)定性等的研究或者變分方法,隨機(jī)分析方法等相關(guān)研究,那大家就需要學(xué)習(xí)進(jìn)階的相關(guān)知識了。
機(jī)器學(xué)習(xí)算法部分
對于機(jī)器學(xué)習(xí)算法部分,我們可以把整體的機(jī)器學(xué)習(xí)算法分為傳統(tǒng)機(jī)器學(xué)習(xí)部分和深度學(xué)習(xí)部分,兩個部分可以獨立的學(xué)習(xí),而傳統(tǒng)機(jī)器學(xué)習(xí)部分,我們又可以分為多個模型,每個部分也可以單獨學(xué)習(xí),例如可以學(xué)習(xí)完最小二乘方法后學(xué)習(xí)邏輯回歸。每個部分都是相對較為獨立的。
對于深度學(xué)習(xí)領(lǐng)域,一般是先學(xué)習(xí)機(jī)器學(xué)習(xí)的基礎(chǔ)網(wǎng)絡(luò)ANN, CNN, RNN,然后結(jié)合一個具體的領(lǐng)域深入研究的。
編程實踐部分
對于編程實踐部分,對于機(jī)器學(xué)習(xí)的實踐來說,個人認(rèn)為現(xiàn)在Python是最容易上手和對于機(jī)器學(xué)習(xí)的相關(guān)學(xué)習(xí)支持最好的編程語言,大家可以先從python的基礎(chǔ)語法入門,了解一些Numpy,Pandas的常規(guī)函數(shù),然后學(xué)習(xí)scikit-learn機(jī)器學(xué)習(xí)算法框架,而對于深度學(xué)習(xí)部分可以從keras入門,然后在后續(xù)的學(xué)習(xí)中轉(zhuǎn)移到另外的框架。
在學(xué)習(xí)過程中也建議大家邊學(xué)習(xí)邊實踐,然后專心學(xué)1-2個系統(tǒng)的資料和書籍就好,一點一點學(xué)習(xí),不斷補充自己的知識體系。
Part 3 機(jī)器學(xué)習(xí)的知識體系
大家對于機(jī)器學(xué)習(xí)有一定的學(xué)習(xí)后就要形成自己的相關(guān)學(xué)習(xí)體系,同之前的我也把整體的學(xué)習(xí)體系分為了三部分,機(jī)器學(xué)習(xí)理論,機(jī)器學(xué)習(xí)算法和機(jī)器學(xué)習(xí)實踐,對于各個部分,我也列出了推薦和Datawhale團(tuán)隊在相應(yīng)部分做的項目實踐(文字版課程鏈接見下方),希望能有助于大家的學(xué)習(xí)。
鑰匙書(機(jī)器學(xué)習(xí)理論導(dǎo)引補充):https://github.com/datawhalechina/key-book
南瓜書(周志華西瓜書詳細(xì)解讀補充):https://github.com/datawhalechina/pumpkin-book
Easy-RL(深度強(qiáng)化學(xué)習(xí)教程):https://github.com/datawhalechina/easy-rl
LeeML-Notes(李宏毅老師-機(jī)器學(xué)習(xí)課程筆記):https://github.com/datawhalechina/leeml-notes
