模型篇P1:機(jī)器學(xué)習(xí)基本概念
共 5409字,需瀏覽 11分鐘
·
2024-05-28 11:00
本章目錄
1、機(jī)器學(xué)習(xí)的定義
2、有監(jiān)督、無監(jiān)督、強(qiáng)化學(xué)習(xí)
3、數(shù)據(jù)集劃分
4、交叉驗(yàn)證
留出法/簡單交叉驗(yàn)證
k 折交叉驗(yàn)證
5、過采樣與欠采樣
過采樣
欠采樣
結(jié)合過采樣和欠采樣
6、損失函數(shù)
7、參數(shù)/超參數(shù)
參數(shù)
超參數(shù)
8、偏差與方差
9、過擬合與欠擬合
10、正則化
L1正則化
L2正則化
11、模型評估指標(biāo)
混淆矩陣
P-R曲線
ROC 與 AUC
12、學(xué)習(xí)曲線
1、機(jī)器學(xué)習(xí)的定義
機(jī)器學(xué)習(xí)有下面幾種定義:
-
機(jī)器學(xué)習(xí)是一門人工智能的科學(xué),該領(lǐng)域的主要研究對象是人工智能,特別是如何在經(jīng)驗(yàn)學(xué)習(xí)中改善具體算法的性能。 -
機(jī)器學(xué)習(xí)是對能通過經(jīng)驗(yàn)自動(dòng)改進(jìn)的計(jì)算機(jī)算法的研究。 -
機(jī)器學(xué)習(xí)是用數(shù)據(jù)或以往的經(jīng)驗(yàn),以此優(yōu)化計(jì)算機(jī)程序的性能標(biāo)準(zhǔn)。
維基百科對機(jī)器學(xué)習(xí)的定義如下:
機(jī)器學(xué)習(xí)是人工智能的一個(gè)分支。人工智能的研究歷史有著一條從以“推理”為重點(diǎn),到以“知識”為重點(diǎn),再到以“學(xué)習(xí)”為重點(diǎn)的自然、清晰的脈絡(luò)。顯然,機(jī)器學(xué)習(xí)是實(shí)現(xiàn)人工智能的一個(gè)途徑之一,即以機(jī)器學(xué)習(xí)為手段,解決人工智能中的部分問題。機(jī)器學(xué)習(xí)在近30多年已發(fā)展為一門多領(lǐng)域科際整合,涉及概率論、統(tǒng)計(jì)學(xué)、逼近論、凸分析、計(jì)算復(fù)雜性理論等多門學(xué)科。
2、有監(jiān)督、無監(jiān)督、強(qiáng)化學(xué)習(xí)
根據(jù)預(yù)期輸出和輸入類型,可以分為 3 種:
-
有監(jiān)督學(xué)習(xí) -
無監(jiān)督學(xué)習(xí) -
強(qiáng)化學(xué)習(xí)
| 學(xué)習(xí)類型 | 說明 | 常見問題 | 常用算法 | 舉例 |
|---|---|---|---|---|
| 監(jiān)督學(xué)習(xí) | 輸入數(shù)據(jù)帶有標(biāo)簽。監(jiān)督學(xué)習(xí)建立一個(gè)學(xué)習(xí)過程,將預(yù)測結(jié)果與 “訓(xùn)練數(shù)據(jù)”(即輸入數(shù)據(jù))的實(shí)際結(jié)果進(jìn)行比較,不斷的調(diào)整預(yù)測模型,直到模型的預(yù)測結(jié)果達(dá)到一個(gè)預(yù)期的準(zhǔn)確率。 | 分類和回歸問題 | 決策樹、貝葉斯分類、最小二乘回歸、邏輯回歸、支持向量機(jī)、神經(jīng)網(wǎng)絡(luò)等 | 用郵件內(nèi)容預(yù)測是否為垃圾郵件(分類);預(yù)測房價(jià)(回歸) |
| 非監(jiān)督學(xué)習(xí) | 輸入數(shù)據(jù)沒有標(biāo)簽,而是通過算法來推斷數(shù)據(jù)的內(nèi)在聯(lián)系。 | 聚類和關(guān)聯(lián)規(guī)則學(xué)習(xí)等 | 獨(dú)立成分分析、K-Means 和 Apriori 算法等 | 客戶細(xì)分(聚類);購物籃分析(關(guān)聯(lián)規(guī)則學(xué)習(xí)) |
| 強(qiáng)化學(xué)習(xí) | 輸入數(shù)據(jù)作為對模型的反饋,強(qiáng)調(diào)如何基于環(huán)境而行動(dòng),以取得最大化的預(yù)期利益。與監(jiān)督式學(xué)習(xí)之間的區(qū)別在于,它并不需要出現(xiàn)正確的輸入 / 輸出對,也不需要精確校正次優(yōu)化的行為。強(qiáng)化學(xué)習(xí)更加專注于在線規(guī)劃,需要在探索(在未知的領(lǐng)域)和遵從(現(xiàn)有知識)之間找到平衡。 | 游戲AI、機(jī)器人控制、資源管理 | Q-learning、Deep Q Network、Policy Gradient等 | 訓(xùn)練一個(gè)游戲AI(如AlphaGo);自動(dòng)駕駛汽車的決策系統(tǒng) |
3、數(shù)據(jù)集劃分
在機(jī)器學(xué)習(xí)預(yù)測任務(wù)中,我們需要對模型泛化誤差進(jìn)行評估,選擇最優(yōu)模型。如果我們把所有數(shù)據(jù)都用來訓(xùn)練模型的話,建立的模型自然是最契合這些數(shù)據(jù)的,測試表現(xiàn)也好。但換了其它數(shù)據(jù)集測試這個(gè)模型效果可能就沒那么好了。為了防止過擬合,就需要將數(shù)據(jù)集分成訓(xùn)練集(train set),驗(yàn)證集(validation set),測試集(test set)
它們的作用分別是:
-
訓(xùn)練集:用來訓(xùn)練模型 -
驗(yàn)證集:評估模型預(yù)測的好壞及調(diào)整對應(yīng)的參數(shù) -
測試集:測試已經(jīng)訓(xùn)練好的模型的推廣能力
有一個(gè)比喻十分形象,訓(xùn)練集就像高三學(xué)生的練習(xí)冊,驗(yàn)證集就像高考模擬卷,測試集就是最后真正的考試。
4、交叉驗(yàn)證
交叉驗(yàn)證(Cross Validation)用來驗(yàn)證學(xué)習(xí)器性能的一種統(tǒng)計(jì)分析方法,基本思想是重復(fù)的使用數(shù)據(jù),把得到的樣本數(shù)據(jù)進(jìn)行切分,組合為不同數(shù)據(jù)集,某次訓(xùn)練集中的某樣本在下次可能成為測試集中的樣本,即所謂“交叉”。
交叉驗(yàn)證在很多教材和文章中概念有些亂。主要有三種說法:
-
李航老師的《統(tǒng)計(jì)學(xué)習(xí)方法》中模型選擇方法分為兩類,一個(gè)是正則化,一個(gè)是交差驗(yàn)證,交叉驗(yàn)證又分為簡單交叉驗(yàn)證、s折交叉驗(yàn)證、留一交叉驗(yàn)證。 -
周志華老師的《機(jī)器學(xué)習(xí)》中,模型評估有三種方式,留出法、交叉驗(yàn)證(分為 k 折交叉驗(yàn)證和留一法)、自助法。 -
sklearn 官方文檔中,train_test_split 作為留出法的實(shí)現(xiàn)方式,而交叉驗(yàn)證進(jìn)行數(shù)據(jù)集劃分(迭代器)又分為K折(KFold)、p 次 k 折交(RepeatedKFold)、留一(LeaveOneOut )、留 p(LeavePOut)、隨機(jī)(ShuffleSplit)等等
留出法/簡單交叉驗(yàn)證
留出法是最簡單的數(shù)據(jù)集劃分方式,隨機(jī)的將樣本數(shù)據(jù)分為兩部分(比如:70% 的訓(xùn)練集,30% 的測試集),然后用訓(xùn)練集來訓(xùn)練模型,在測試集上選擇模型及參數(shù)。然后再把樣本打亂,重新選擇訓(xùn)練集和測試集,繼續(xù)訓(xùn)練數(shù)據(jù)和檢驗(yàn)?zāi)P?。最后選擇損失函數(shù)評估最優(yōu)的模型和參數(shù)。
k 折交叉驗(yàn)證
k 折交叉驗(yàn)證把樣本數(shù)據(jù)隨機(jī)的分成k份,每次隨機(jī)的選擇 k-1 份作為訓(xùn)練集,剩下的1份做測試集。當(dāng)這一輪完成后,重新隨機(jī)選擇 k-1 份來訓(xùn)練數(shù)據(jù)。若干輪(小于 k)之后,選擇損失函數(shù)評估最優(yōu)的模型和參數(shù)。k 一般取 10,數(shù)據(jù)量大的時(shí)候,k可以設(shè)置的小一些;數(shù)據(jù)量小的時(shí)候,k 可以設(shè)置得大一些。
5、過采樣與欠采樣
過采樣(Oversampling)與欠采樣(Undersampling)是處理數(shù)據(jù)不平衡問題的兩種常見策略。在機(jī)器學(xué)習(xí)中,我們經(jīng)常會遇到數(shù)據(jù)不平衡的問題,即目標(biāo)變量(或者類別)的某一類別樣本量遠(yuǎn)大于其他類別。例如,在一份信用卡欺詐檢測的數(shù)據(jù)集中,欺詐事件(正例)可能只占總樣本的1%,而正常事件(負(fù)例)可能占99%。這種情況下,如果直接使用這份數(shù)據(jù)訓(xùn)練模型,模型可能會偏向于預(yù)測大多數(shù)的類別,這就會導(dǎo)致類別不平衡問題。
這個(gè)時(shí)候,我們可以通過過采樣或者欠采樣來處理這個(gè)問題。
過采樣
過采樣是指通過增加少數(shù)類別的樣本數(shù)量使得兩個(gè)類別的樣本數(shù)量相等或者接近。最常見的過采樣方法是隨機(jī)過采樣,即隨機(jī)復(fù)制少數(shù)類別的樣本來增加其數(shù)量。然而,這種方法可能會導(dǎo)致模型過擬合。另一種更加普遍的過采樣方法是SMOTE(Synthetic Minority Over-sampling Technique)。SMOTE通過對少數(shù)類別樣本進(jìn)行插值來創(chuàng)建新的樣本,而不僅僅是復(fù)制已有的樣本。
欠采樣
相反,欠采樣是通過減少多數(shù)類別的樣本數(shù)量來解決類別不平衡問題。最常見的欠采樣方法是隨機(jī)欠采樣(Random Undersampling),即隨機(jī)刪除多數(shù)類別的樣本。然而,隨機(jī)欠采樣可能會導(dǎo)致信息丟失,因?yàn)樗鼊h除了一部分多數(shù)類別的樣本。
結(jié)合過采樣和欠采樣
過采樣和欠采樣都有各自的優(yōu)點(diǎn)和缺點(diǎn),選擇哪種策略取決于具體的應(yīng)用環(huán)境和數(shù)據(jù)集。在一些情況下,我們可能會結(jié)合過采樣和欠采樣來達(dá)到最好的效果。例如,我們可以先對多數(shù)類別進(jìn)行欠采樣,然后再對少數(shù)類別進(jìn)行過采樣。這樣做可以防止過采樣引入的噪聲影響到多數(shù)類別的樣本。
6、損失函數(shù)
損失函數(shù)(Loss Function)是在監(jiān)督學(xué)習(xí)中一個(gè)非常核心的概念,它用來衡量模型預(yù)測值與實(shí)際值之間的差距。通過最小化損失函數(shù),我們可以找到最優(yōu)的模型參數(shù)。
常見的損失函數(shù)有均方誤差(MSE,常用于回歸問題)、平均絕對誤差(MAE,對異常值更魯棒)、交叉熵?fù)p失(常用于分類問題)等,針對不同的任務(wù),選擇合適的損失函數(shù)至關(guān)重要。
在機(jī)器學(xué)習(xí)中,優(yōu)化方法是核心,它們被用來最小化損失函數(shù),從而優(yōu)化模型的性能。以下是一些常見的優(yōu)化方法:
-
梯度下降(Gradient Descent):這是最常見的優(yōu)化方法,它通過計(jì)算損失函數(shù)的梯度并按照梯度的反方向更新模型參數(shù)來降低損失函數(shù)的值。這種方法有多種變體,如批量梯度下降(Batch Gradient Descent)、隨機(jī)梯度下降(Stochastic Gradient Descent)和小批量梯度下降(Mini-batch Gradient Descent)。
-
牛頓法(Newton's Method):這種方法利用了二階導(dǎo)數(shù)(也就是Hessian矩陣),使得優(yōu)化過程更快。不過,這種方法也有一些缺點(diǎn),比如在處理大規(guī)模數(shù)據(jù)集時(shí)會遇到計(jì)算和存儲問題。
-
共軛梯度法(Conjugate Gradient Method):這種方法結(jié)合了梯度下降法和牛頓法的優(yōu)點(diǎn),能夠在不需要計(jì)算Hessian矩陣的情況下,實(shí)現(xiàn)超線性收斂。
-
擬牛頓法(Quasi-Newton Methods):這類方法試圖通過估計(jì)Hessian矩陣或其逆矩陣來接近牛頓法的性能,而無需真正計(jì)算Hessian矩陣。常見的擬牛頓法有BFGS和L-BFGS。
-
優(yōu)化器(Optimizers):在深度學(xué)習(xí)中,還有一些特殊的優(yōu)化器,如Adam、RMSProp、Adagrad等,它們結(jié)合了動(dòng)量(momentum)和自適應(yīng)學(xué)習(xí)率調(diào)整,以加速訓(xùn)練過程并提高模型性能。
7、參數(shù)/超參數(shù)
參數(shù)
參數(shù)是模型在訓(xùn)練過程中學(xué)習(xí)到的,這些參數(shù)使得模型能夠?qū)斎霐?shù)據(jù)進(jìn)行預(yù)測。例如,在線性回歸模型中,權(quán)重和偏差就是模型的參數(shù)。在神經(jīng)網(wǎng)絡(luò)中,權(quán)重和偏差也是模型的參數(shù)。
在訓(xùn)練過程中,模型會通過優(yōu)化算法(如梯度下降)來調(diào)整這些參數(shù),以便最小化模型的損失函數(shù),從而提高模型的預(yù)測能力。
超參數(shù)
超參數(shù)是在開始訓(xùn)練之前設(shè)置的,并且在訓(xùn)練過程中不會改變的參數(shù),它們配置的是模型的內(nèi)部參數(shù)調(diào)整過程。
例如,在神經(jīng)網(wǎng)絡(luò)中,學(xué)習(xí)率、批次大小、迭代次數(shù)、隱藏層的數(shù)量和大小等都是超參數(shù)。在決策樹中,樹的深度和分裂的標(biāo)準(zhǔn)等是超參數(shù)。
調(diào)整超參數(shù)是機(jī)器學(xué)習(xí)中的一個(gè)重要步驟,通常我們會使用網(wǎng)格搜索(Grid Search)、隨機(jī)搜索(Random Search)、貝葉斯優(yōu)化等方法來找到最優(yōu)的超參數(shù)組合。
8、偏差與方差
簡單來說:
方差(Bias)表示偏離中心的程度,偏差(Variance)表示結(jié)果的波動(dòng)程度。
左上角表示(低偏差,低方差),這是最理想的狀況;
右上角表示(低偏差,高方差),低偏差導(dǎo)致預(yù)測結(jié)果與真實(shí)結(jié)果很近,高方差導(dǎo)致個(gè)體預(yù)測結(jié)果不穩(wěn)定,比較不集中;
左下角表示(高偏差,低方差),高偏差導(dǎo)致預(yù)測結(jié)果與真實(shí)結(jié)果很遠(yuǎn),低方差導(dǎo)致個(gè)體預(yù)測結(jié)果穩(wěn)定,比較集中;
右下角表示(高偏差,高方差),高偏差導(dǎo)致預(yù)測結(jié)果與真實(shí)結(jié)果很遠(yuǎn),高方差導(dǎo)致個(gè)體預(yù)測結(jié)果不穩(wěn)定,比較不集中;
偏差和方差的關(guān)系可以通過偏差-方差權(quán)衡(Bias-Variance Tradeoff)來理解。
這是因?yàn)榈推钔ǔ?dǎo)致高方差,反之亦然。理想情況下,希望模型的偏差和方差都很低,但在實(shí)際操作中,常常需要在二者之間找到一個(gè)平衡點(diǎn),以獲得最佳的泛化性能。
