干貨|機器學(xué)習(xí)超全總結(jié)!
本篇文章非常全面地給大家總結(jié)了有關(guān)機器學(xué)習(xí)的相關(guān)知識,滿滿的干貨,請查收!
時光飛逝,學(xué)習(xí)機器學(xué)習(xí)已四年有余,深感機器學(xué)習(xí)之博大精深,可能不斷學(xué)習(xí)數(shù)十年也無法窮盡。但從另一方面考慮,我也學(xué)了很多,也有一些自己的感悟。
本文謹代表我個人的觀點和感悟,希望對大家(尤其是初學(xué)者)有所幫助,歡迎大家一起討論與學(xué)習(xí)~
本文的目錄如下:
一、綜述
1.1 機器學(xué)習(xí)是什么
1.2 機器學(xué)習(xí)的過程
1.3?監(jiān)督學(xué)習(xí)VS無監(jiān)督學(xué)習(xí)
根據(jù)訓(xùn)練數(shù)據(jù)是否有標記,機器學(xué)習(xí)任務(wù)大致分為兩大類:監(jiān)督學(xué)習(xí)和非監(jiān)督學(xué)習(xí),監(jiān)督學(xué)習(xí)主要包括分類和回歸等,非監(jiān)督學(xué)習(xí)主要包括聚類和頻繁項集挖掘等。
監(jiān)督學(xué)習(xí)的過程如下:
無監(jiān)督學(xué)習(xí)的過程如下:
監(jiān)督學(xué)習(xí)算法VS無監(jiān)督學(xué)習(xí)算法:
1.4 輸入空間、特征空間、輸出空間、假設(shè)空間
- 輸入空間:在監(jiān)督學(xué)習(xí)中,將輸入所有可能取值的集合稱為輸入空間。
- 特征空間:每個具體輸入是一實例,通常用特征向量表示,所有特征向量存在的空間為特征空間。有時輸入空間和特征空間為相同的空間,有時為不同的空間,需要將實例從輸入空間映射到輸出空間。
- 輸出空間:在監(jiān)督學(xué)習(xí)中,將輸出所有可能取值的集合稱為輸出空間。
- 假設(shè)空間:監(jiān)督學(xué)習(xí)的目的在于學(xué)習(xí)一個由輸入到輸出的映射,這一映射由模型來表示。由輸入空間到輸出空間的映射的集合,稱為假設(shè)空間。舉個簡單的例子,在一元線性回歸中,假設(shè)空間即所有的直線y=ax+b組成的集合,我們的目標就是找到一條y=a’x+b’,使得損失最小。
1.5 生成模型和判別模型
- 生成模型:生成模型由數(shù)據(jù)學(xué)習(xí)聯(lián)合概率分布P(X,Y),然后求出條件概率分布P(Y|X)作為預(yù)測的模型。之所以被稱為生成方法,是因為模型表示了給定輸入X產(chǎn)生輸出Y的關(guān)系。典型的模型有樸素貝葉斯(NB)和隱馬爾可夫模型(HMM)等。
- 判別模型:判別模型由數(shù)據(jù)直接學(xué)習(xí)決策函數(shù)f(X),或條件概率分布P(Y|X)。判別方法關(guān)心的是對給定的輸入X,應(yīng)預(yù)測什么樣的輸出Y。
典型的判別模型包括k近鄰算法(KNN)、決策樹(DT)、邏輯回歸(LR)、支持向量機(SVM)等。
1.6 過擬合VS欠擬合
- 解決過擬合:重新清洗數(shù)據(jù)、增大樣本量、減少特征的量、增強正則化作用、dropout(適用于神經(jīng)網(wǎng)絡(luò))等。
- 解決欠擬合:使用更復(fù)雜的模型、更有效的特征選擇、減少正則化作用等。
1.7 特征選擇
特征選擇對機器學(xué)習(xí)至關(guān)重要,個人認為在大部分機器學(xué)習(xí)任務(wù)中特征就決定了效果的上限,模型的選擇與組合只是無限逼近于這個上限。
特征選擇的主要作用包括:減少特征數(shù)量會防止維度災(zāi)難,減少訓(xùn)練時間;增強模型泛化能力,減少過擬合;增強對特征和特征值的理解。
常見的特征選擇方法如下:
- 去除取值變化小的特征:如果絕大部分實例的某個特征取值一樣,那這個特征起到的作用可能就比較有限,極端情況下如果所有實例的某特征取值都一樣,那該特征基本就不起作用。
- 單變量特征選擇法:能夠?qū)γ恳粋€特征進行測試,衡量該特征和響應(yīng)變量之間的關(guān)系,根據(jù)得分扔掉不好的特征。常見方法包括卡法檢驗、互信息、皮爾森相關(guān)系數(shù)、距離相關(guān)系數(shù)、基于學(xué)習(xí)模型的特征排序(Model based ranking)等。
正則化:L1正則化、L2正則化。
隨機森林特征選擇:這類方法主要包括平均不純度減少(mean decrease impurity)和平均精確率減少(Mean decrease accuracy)兩種方法。
頂層特征選擇法:這類方法主要包括穩(wěn)定性選擇(Stability selection)和遞歸特征消除(Recursive feature elimination)兩種方法。
1.8?方差vs偏差
偏差描述的是算法預(yù)測的平均值和真實值的差距(算法的擬合能力),低偏差對應(yīng)于模型復(fù)雜化,但模型過于復(fù)雜容易過擬合。
而方差描述的是同一個算法在不同數(shù)據(jù)集上的預(yù)測值和所有數(shù)據(jù)集上的平均預(yù)測值之間的關(guān)系(算法的穩(wěn)定性),低方差對應(yīng)于模型簡單化,但模型過于簡單容易欠擬合。
高偏差(一般是欠擬合,注意跟上面低偏差時模型復(fù)雜化做區(qū)別)是模型在訓(xùn)練集和驗證集上的誤差都比較大,隨著數(shù)據(jù)集的增加,模型在訓(xùn)練集和驗證集上的誤差表現(xiàn)如下:
解決高偏差的方法:使用更多特征,增加多項式特征,減少正則化程度λ。
高方差是針對不同的訓(xùn)練集,其擬合得到的參數(shù)相差很大(一般是過擬合,注意跟上面低方差時模型簡單化做區(qū)別)。隨著數(shù)據(jù)集的增加,模型在訓(xùn)練集和驗證集上的誤差表現(xiàn)如下:
解決高偏差的方法:增加訓(xùn)練樣本,減少特征數(shù)量,增加正則化程度λ
二、機器學(xué)習(xí)任務(wù)分類
2.1 按學(xué)習(xí)方式分類
2.2 按算法思想分類
三、損失函數(shù)
損失函數(shù)用來評價模型的預(yù)測值和真實值不一樣的程度,損失函數(shù)越好,通常模型的性能越好。不同的模型用的損失函數(shù)一般也不一樣。
損失函數(shù)分為經(jīng)驗風(fēng)險損失函數(shù)和結(jié)構(gòu)風(fēng)險損失函數(shù)。經(jīng)驗風(fēng)險損失函數(shù)指預(yù)測結(jié)果和實際結(jié)果的差別,結(jié)構(gòu)風(fēng)險損失函數(shù)是指經(jīng)驗風(fēng)險損失函數(shù)加上正則項。
通常表示為如下:
3.1 0-1損失函數(shù)
0-1損失是指預(yù)測值和目標值不相等為1,否則為0:
3.2 絕對值損失函數(shù)
絕對值損失函數(shù)是計算預(yù)測值與目標值的差的絕對值:
3.3 log對數(shù)損失函數(shù)
log損失函數(shù)的標準形式如下:
3.4 平方損失函數(shù)
平方損失函數(shù)經(jīng)常應(yīng)用于回歸問題,它的標準形式如下:
3.5 指數(shù)損失函數(shù)
指數(shù)損失函數(shù)的標準形式如下:
3.6 Hinge損失函數(shù)
Hinge損失函數(shù)標準形式如下:
損失函數(shù)的選擇,對一般機器學(xué)習(xí)任務(wù)非常重要。很多任務(wù)就是難在不太容易確定一個比較好的損失函數(shù)。
四、監(jiān)督學(xué)習(xí)
4.1 監(jiān)督學(xué)習(xí)的任務(wù)分類
常見監(jiān)督學(xué)習(xí)任務(wù)的分類以及他們之間的對比如下:
4.2 監(jiān)督學(xué)習(xí)算法
監(jiān)督學(xué)習(xí)的算法非常多,后續(xù)也會有選擇的分享我對一些常見算法的感悟。常見的監(jiān)督學(xué)習(xí)算法具體如下:
4.3 監(jiān)督學(xué)習(xí)的評估
監(jiān)督學(xué)習(xí)的效果評估如下:
五、無監(jiān)督學(xué)習(xí)
5.1 無監(jiān)督學(xué)習(xí)的任務(wù)分類
常見的無監(jiān)督學(xué)習(xí)的任務(wù)分類如下:
5.2 聚類
無監(jiān)督學(xué)習(xí)——聚類:
5.3 推薦
無監(jiān)督學(xué)習(xí)——推薦:
5.4 頻繁項集挖掘
無監(jiān)督學(xué)習(xí)——頻繁項集挖掘:
六、總結(jié)與思考
6.1總結(jié)
6.2 思考
后續(xù)我會專注于NLP(自然語言處理)、ML(機器學(xué)習(xí))、DL(深度學(xué)習(xí))、RL(強化學(xué)習(xí))、TL(遷移學(xué)習(xí))、GAN(生成對抗網(wǎng)絡(luò))等領(lǐng)域?qū)懸粚憘€人的感悟,志在為大家提供實用的干貨。
期待您的關(guān)注,您的鼓勵就是我不斷寫下去的動力,更期待有志同道合的朋友能加入一起寫一寫。予人玫瑰,手留余香!
作者:滄笙踏歌,公眾號:AI部落聯(lián)盟(ID:AI_Tribe)
來源:https://mp.weixin.qq.com/s/NN3lHVs2O0Uj8Yd0s4UPGw
本文由 @AI部落聯(lián)盟 授權(quán)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)作者許可,禁止轉(zhuǎn)載
題圖來自Unsplash,基于CC0協(xié)議
很好
閣下是AI攻城獅么?如果能有python的教程更好了