日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

机器学习笔记——模型选择与正则化

發(fā)布時(shí)間:2023/12/3 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习笔记——模型选择与正则化 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

機(jī)器學(xué)習(xí)筆記——模型選擇與正則化

  • 一、模型選擇
    • 1.方差與偏差
    • 2.過擬合與欠擬合
    • 3.模型選擇的平衡
    • 4.欠、過擬合解決方法
  • 二、正則化
    • 1.正則化線性回歸
    • 2.正則化對數(shù)回歸
    • 3.訓(xùn)練集規(guī)模對誤差的影響
    • 4.模型性能評估
  • 三.范數(shù)與正則化
    • 1.總體描述
    • 2.L0與L1范數(shù)
    • 3.L2范數(shù)
    • 4.核范數(shù)

一、模型選擇

1.方差與偏差

  • 我們設(shè)定h(x)h(x)h(x)為近似值,y(x)y(x)y(x)為真實(shí)值。我們有如下式子:
  • 近似值的bias我們設(shè)定為所有樣本近似值與真實(shí)值之間差值的期望。近似值的var我們設(shè)定為所有樣本近似值與近似值的期望之間差距的期望的平方(有點(diǎn)繞…,其實(shí)去掉平方的標(biāo)準(zhǔn)差更好理解)。
  • 我們可以看到bias與近似值h(x)h(x)h(x)、真實(shí)值y(x)y(x)y(x)相關(guān)。而variance只與近似值h(x)h(x)h(x)相關(guān)。

2.過擬合與欠擬合

  • 當(dāng)特征過多或者變量階數(shù)過高導(dǎo)致的模型很復(fù)雜時(shí),很容易出現(xiàn)過擬合的情況。

  • 我對過擬合的理解如下:越復(fù)雜的模型其學(xué)習(xí)模仿能力越強(qiáng),而模型學(xué)習(xí)模仿的對象只能是訓(xùn)練集。但訓(xùn)練集只是用來近似模擬真實(shí)數(shù)據(jù)分布,并不能代表一般性,甚至不好的訓(xùn)練集與真實(shí)分布相差很遠(yuǎn)。因此復(fù)雜的模型只是模仿訓(xùn)練集很像,如果訓(xùn)練集的代表性不強(qiáng)的話得到的模型就會(huì)與真實(shí)分布相差甚遠(yuǎn),也就是出現(xiàn)了過擬合的現(xiàn)象。

  • 線性回歸中出現(xiàn)的過擬合現(xiàn)象:

  • 邏輯回歸中出現(xiàn)的過擬合現(xiàn)象:

  • 對上面三張圖進(jìn)一步分析,其實(shí)一大群藍(lán)色圓圈中的紅叉很可能是數(shù)據(jù)收集有誤,并不一定代表反例,而過擬合情況就把這兩個(gè)異常點(diǎn)過于看重導(dǎo)致分類邊界不具備一般性。

  • 其實(shí)過擬合是不可以避免的,因?yàn)閯傞_始我們是不知道該選擇多復(fù)雜的模型的。針對小數(shù)據(jù)集我們一開始就故意過擬合,然后再去診斷修正。即便是很大的數(shù)據(jù)集一開始也是要從小數(shù)據(jù)集開始。過擬合代表著充分利用了訓(xùn)練集數(shù)據(jù),把訓(xùn)練集數(shù)據(jù)中每一細(xì)枝末節(jié)都學(xué)習(xí)到了。

3.模型選擇的平衡

  • 過擬合現(xiàn)象發(fā)生時(shí),我們會(huì)發(fā)現(xiàn)訓(xùn)練誤差會(huì)非常小,那么如果我們有多個(gè)模型得到了多組訓(xùn)練誤差,訓(xùn)練誤差的大小比較能作為我們模型選擇的依據(jù)嗎?
  • 顯然是不可以的。我們將訓(xùn)練集隨機(jī)分成兩部分,訓(xùn)練集training set)用于最優(yōu)化參數(shù),驗(yàn)證集validation set)用于模型選擇。
  • 如下圖所示我們將初始訓(xùn)練集分為了兩部分。藍(lán)色代表訓(xùn)練集,綠色代表驗(yàn)證集。需要注意的是劃分的時(shí)候訓(xùn)練集與驗(yàn)證集需要保證同分布,可以使用分層采樣的方法。
  • 分析以下兩張圖,一張是4階多項(xiàng)式模型,一張是30階多項(xiàng)式模型。可以看出30階多項(xiàng)式模型更加完美的貼合于訓(xùn)練集(藍(lán)色數(shù)據(jù)點(diǎn)),在圖的左半部分明顯波動(dòng)離譜與驗(yàn)證集之間存在較大誤差也就是發(fā)生了過擬合現(xiàn)象。

  • 以下展示的是訓(xùn)練誤差與驗(yàn)證誤差隨著多項(xiàng)式階數(shù)變化的曲線圖:
  • 可以看出:只要學(xué)習(xí)率η\etaη選擇的適當(dāng)(即可以快速正確收斂)訓(xùn)練誤差總會(huì)越來越小的。但驗(yàn)證誤差可能會(huì)先降低后升高。上圖僅僅代表的是變化趨勢,實(shí)際獲得的圖不會(huì)這么平滑簡單。
  • 訓(xùn)練誤差小對我們來說沒有用處。而驗(yàn)證誤差則可以代表一部分該模型適應(yīng)新數(shù)據(jù)的能力,因此我們要選擇的是驗(yàn)證誤差最小的模型。
  • 模型越復(fù)雜其bias越低但variance越高。而最終我們想要的泛化誤差由三部分組成:bias、variance、noise。在noise不可調(diào)控的情況下我們想要使得bias與variance的總和最小,因此需要尋得二者之間的平衡(trade-off)。

4.欠、過擬合解決方法

  • 針對欠擬合我們需要做的就是提高模型的復(fù)雜程度。具體包含兩個(gè)方面:1.增加更多的特征維度,但這條對于一般問題來說增加數(shù)據(jù)比較難以實(shí)現(xiàn)。2.提高多項(xiàng)式的階數(shù)。
  • 針對過擬合并不是說模型一定不合適,而是相對于我們掌握貧乏的數(shù)據(jù)來說模型過于復(fù)雜。最好的解決方法就是收集并增加數(shù)據(jù),不會(huì)影響bias,不用修改模型就可以解決問題,因?yàn)閿?shù)據(jù)集越大訓(xùn)練集的特征就會(huì)越接近于真實(shí)。
  • 除此之外就是降低模型的復(fù)雜度。可以通過減少部分特征或者正則化來實(shí)現(xiàn)。正則化在小幅度增加bias的前提下大幅度降低variance,也會(huì)降低總體的泛化誤差。
  • 總結(jié)來說機(jī)器學(xué)習(xí)數(shù)據(jù)為王。我們機(jī)器學(xué)習(xí)的目的其實(shí)就是利用有限的數(shù)據(jù)通過學(xué)習(xí)一定模型盡可能地去模擬逼近真實(shí)規(guī)律。所以我們掌握地?cái)?shù)據(jù)大概率就是最大可能,因此更多使用正則化地方法處理過擬合。

二、正則化

1.正則化線性回歸

  • 一個(gè)越復(fù)雜的模型通過學(xué)習(xí)過程計(jì)算出的參數(shù)θ\thetaθ可能會(huì)很大,尤其是高階的θ\thetaθ。參數(shù)過大會(huì)使xxx對于hθ(x)h_\theta(x)hθ?(x)影響很大,因此我們要通過減小θ\thetaθ來平滑曲線。
  • 如上圖所示,加入了正則化地線性回歸,優(yōu)化的目標(biāo)函數(shù)由損失函數(shù)L(θ)L(\theta)L(θ)變?yōu)榱?span id="ozvdkddzhkzd" class="katex--inline">J(θ)J(\theta)J(θ)
  • R(θ)R(\theta)R(θ)為對參數(shù)進(jìn)行的運(yùn)算,我們這里接觸到的計(jì)算方法是二范數(shù)的平方:R(θ)=∣∣θ∣∣22R(\theta)={||\theta||}^2_2R(θ)=θ22?其實(shí)正則化項(xiàng)不只有這一種形式,還可為一范數(shù):R(θ)=∣∣θ∣∣1R(\theta)={||\theta||}_1R(θ)=θ1?,這就是我們熟知的可用于特征選擇的LASSO算法。還可以為R(θ)=λ1∣∣θ∣∣22+λ2∣∣θ∣∣1R(\theta)=\lambda_1{||\theta||}^2_2+\lambda_2||\theta||_1R(θ)=λ1?θ22?+λ2?θ1?,這就是彈性網(wǎng)算法。
  • 對于正則化參數(shù)λ\lambdaλ,取值范圍是[0,+∞)[0,+\infty)[0,+)。該值越大,所有參數(shù)的值越小,模型越簡單,曲線越平滑。當(dāng)λ=+∞\lambda=+\inftyλ=+時(shí),會(huì)使所有的參數(shù)值趨向于0。
  • 需要注意的是仔細(xì)觀察Σ\SigmaΣ求和從1開始,也就是說正則化的過程θ0\theta_0θ0?并不參與。因?yàn)槠鋵τ?span id="ozvdkddzhkzd" class="katex--inline">xxx沒有影響。
  • 具體到梯度下降過程中獲得下述式子。我們可以看作先把參數(shù)θj\theta_jθj?衰減一定比例然后再進(jìn)行梯度下降。這就是我們了解的權(quán)重衰減。機(jī)器學(xué)習(xí)包中有這個(gè)函數(shù),傳入的參數(shù)就是正則化參數(shù)λ\lambdaλ
  • 正則化參數(shù)λ\lambdaλ決定了參數(shù)值的大小與過擬合的矯正程度,那么我們應(yīng)該如何選擇正則化參數(shù)呢?分析如下圖像可得(圖像的縱坐標(biāo)要使用L(θ)L(\theta)L(θ)計(jì)算而不是J(θ)J(\theta)J(θ)):λ\lambdaλ的值越大過擬合程度越低,欠擬合程度越高,也就是說訓(xùn)練誤差會(huì)不斷增大。而驗(yàn)證誤差在λ?\lambda^*λ?處會(huì)出現(xiàn)拐點(diǎn),我們想要找的便是這個(gè)拐點(diǎn)。
  • 針對線性回歸的另一種解法正規(guī)方程,我們也有正則化后的公式表達(dá):

2.正則化對數(shù)回歸

  • 我們可以分析得到,對數(shù)回歸的正則化原理上與線性回歸相同,只不過他們擁有不同的損失函數(shù)而已。線性回歸使用的是平方損失函數(shù),而對數(shù)回歸使用的是交叉熵?fù)p失函數(shù)。J(θ)J(\theta)J(θ)的結(jié)構(gòu)、梯度下降的方法都如出一轍。
  • 我們同樣可以得到如下的函數(shù)圖像:
  • 那么問題來了,我們是否可以使用其他的Lval(θ)L_{val}(\theta)Lval?(θ),也就是驗(yàn)證集validation上的損失評價(jià)函數(shù)。當(dāng)然是可以的,我們完全可以在這里使用0-1損失等其他評估方式,因?yàn)樵隍?yàn)證集上只進(jìn)行模型選擇評估,而當(dāng)時(shí)我們選擇訓(xùn)練集使用交叉熵?fù)p失的原因主要是方便梯度下降優(yōu)化。

3.訓(xùn)練集規(guī)模對誤差的影響

  • 一般情況下,當(dāng)訓(xùn)練集的規(guī)模增大的時(shí)候,訓(xùn)練誤差也會(huì)跟著增大后趨于穩(wěn)定,驗(yàn)證誤差會(huì)隨之減小后趨于穩(wěn)定。形象的理解是:學(xué)生做的題越多,做題時(shí)出現(xiàn)的錯(cuò)題就會(huì)越多,但是考試時(shí)出現(xiàn)的錯(cuò)題就會(huì)變少。因此合適的模型,增大訓(xùn)練集的規(guī)模可以減小驗(yàn)證誤差,解決過擬合。
  • 但對于上圖來說,即使在訓(xùn)練集數(shù)據(jù)很少的情況下,我們也能看出所選擇直線模型非常不適合該數(shù)據(jù)集的分布,也就是出現(xiàn)了欠擬合的情況。即便增加訓(xùn)練集的規(guī)模,也不會(huì)對模型的訓(xùn)練產(chǎn)生好的影響。
  • 綜上出現(xiàn)過擬合現(xiàn)象時(shí),增大訓(xùn)練集規(guī)模可以收獲很好的效果。而當(dāng)出現(xiàn)欠擬合現(xiàn)象時(shí),增大訓(xùn)練集規(guī)模并不會(huì)有好的收益。

4.模型性能評估

  • 對于我們掌握的帶標(biāo)注的數(shù)據(jù),訓(xùn)練集我們用來優(yōu)化參數(shù),驗(yàn)證集我們用來選擇模型,但在訓(xùn)練集與驗(yàn)證集上的誤差都不可以代表在新的測試數(shù)據(jù)上的性能。
  • 因此我們將帶標(biāo)注的數(shù)據(jù)分為三類,除了已知的訓(xùn)練集與驗(yàn)證集以外,我們再單獨(dú)分出一類測試集(Testing Set),不用于學(xué)習(xí)調(diào)參只用于模擬訓(xùn)練出的模型處理新數(shù)據(jù)的能力。
  • 但這三部分的劃分一直都是個(gè)難題。不同劃分比例,涉及到模型訓(xùn)練的好壞、模型選擇的優(yōu)劣、以及測試集能否很好代表處理新數(shù)據(jù)能力等等問題。我們常見的分類標(biāo)準(zhǔn)為6:2:2或者7:1.5:1.5。我們的原則是在驗(yàn)證集與訓(xùn)練集保證基本功能的基礎(chǔ)上,盡可能擴(kuò)大訓(xùn)練集。
  • 有一條原則就是訓(xùn)練集一定不可以參與到模型調(diào)參中。但驗(yàn)證集可以偶爾參與。存在一種方法:訓(xùn)練集訓(xùn)練出多個(gè)模型,驗(yàn)證集篩選出一個(gè)最優(yōu)的模型,然后針對該模型用訓(xùn)練集+驗(yàn)證集再次參數(shù)優(yōu)化。
  • 除此之外我們還可以使用交叉驗(yàn)證的方法。

三.范數(shù)與正則化

1.總體描述

  • 正則化不僅可以解決過擬合的問題,還可以約束我們的模型的特性。這樣就可以將人對這個(gè)模型的先驗(yàn)知識融入到模型的學(xué)習(xí)當(dāng)中,強(qiáng)行地讓學(xué)習(xí)到的模型具有人想要的特性,例如稀疏、低秩、平滑等等。
  • 正則化后的目標(biāo)函數(shù)中,損失函數(shù)的選擇決定了這是一種什么模型。如果是Square loss,那就是最小二乘了;如果是Hinge Loss,那就是著名的SVM了;如果是exp-Loss,那就是牛逼的 Boosting了;如果是log-Loss,那就是Logistic Regression了。
  • 規(guī)則化項(xiàng)可以是模型參數(shù)向量的范數(shù),在論文中常見的都聚集在:零范數(shù)、一范數(shù)、二范數(shù)、跡范數(shù)、Frobenius范數(shù)和核范數(shù)等等。

2.L0與L1范數(shù)

  • L0范數(shù)是指向量中非0的元素的個(gè)數(shù)。如果我們用L0范數(shù)來正則化一個(gè)參數(shù)矩陣W的話,就是希望W的大部分元素都是0,換句話說,讓參數(shù)W是稀疏的。
  • L1范數(shù)是指向量中各個(gè)元素絕對值之和。L1范數(shù)又名“稀疏規(guī)則算子”,同樣可以使得參數(shù)W變稀疏。
  • 既然L0范數(shù)與L1范數(shù)都可以讓參數(shù)變稀疏。那么到底什么是變稀疏?變稀疏又有什么樣的好處呢?
  • 參數(shù)的稀疏化可以實(shí)現(xiàn)特征選擇。一般來說,xi的大部分特征都是和最終的輸出yi沒有關(guān)系或者不提供任何信息的,在最小化目標(biāo)函數(shù)的時(shí)候考慮xi這些額外的特征,雖然可以獲得更小的訓(xùn)練誤差,但在預(yù)測新的樣本時(shí),這些沒用的信息反而會(huì)被考慮,從而干擾了對正確yi的預(yù)測。也就是說因?yàn)槎嗫紤]訓(xùn)練了無用的特征導(dǎo)致訓(xùn)練模型過擬合。
  • 稀疏正則化化算子的引入就是為了完成特征自動(dòng)選擇的光榮使命,它會(huì)學(xué)習(xí)地去掉這些沒有信息的特征,也就是把這些特征對應(yīng)的權(quán)重置為0。
  • 那既然L0與L1均可以實(shí)現(xiàn)參數(shù)稀疏化而特征選擇,那為什么在實(shí)際正則化時(shí)我們使用L1而不是L0呢?一是因?yàn)長0范數(shù)很難優(yōu)化求解(NP難問題),二是L1范數(shù)是L0范數(shù)的最優(yōu)凸近似,而且它比L0范數(shù)要容易優(yōu)化求解

3.L2范數(shù)

  • L2范數(shù)是指向量各元素的平方和然后求平方根。在回歸里面,有人把有它的回歸叫嶺回歸(Ridge Regression),有人也叫它權(quán)值衰減(weight decay)。
  • L2范數(shù)的使用具體有兩大好處:在學(xué)習(xí)理論角度來說,L2范數(shù)可以防止過擬合,提升模型的泛化能力。在數(shù)值計(jì)算角度來說,L2范數(shù)有助于處理 condition number不好的情況下矩陣求逆很困難的問題。
  • 在不加L2范數(shù)正則項(xiàng)時(shí),我們可以通過正規(guī)方程發(fā)求得參數(shù)表達(dá)式如下。如果當(dāng)我們的樣本X的數(shù)目比每個(gè)樣本的維度還要小的時(shí)候,矩陣XTX將會(huì)不是滿秩的,也就是XTX會(huì)變得不可逆,所以w*就沒辦法直接計(jì)算出來了。
  • 但如果加上L2正則項(xiàng),就變成了下面這種情況,就可以直接求逆了。

4.核范數(shù)

  • 核范數(shù)||W||*是指矩陣奇異值的和,*核范數(shù)是用來約束Low-Rank(低秩)。rank(w)的凸近似就是核范數(shù)||W||**。那么什么是低秩呢?
  • 從物理意義上講,矩陣的秩度量的就是矩陣的行列之間的相關(guān)性。如果矩陣的各行或列是線性無關(guān)的,矩陣就是滿秩的,也就是秩等于行數(shù)。如果矩陣表達(dá)的是結(jié)構(gòu)性信息,例如圖像、用戶-推薦表等等,那么這個(gè)矩陣各行之間存在這一定的相關(guān)性,那這個(gè)矩陣一般就是低秩的。
  • 如果X是一個(gè)m行n列的數(shù)值矩陣,rank(X)是X的秩,假如rank (X)遠(yuǎn)小于m和n,則我們稱X是低秩矩陣。低秩矩陣每行或每列都可以用其他的行或列線性表出,可見它包含大量的冗余信息。利用這種冗余信息,可以對缺失數(shù)據(jù)進(jìn)行恢復(fù),也可以對數(shù)據(jù)進(jìn)行特征提取。

總結(jié)

以上是生活随笔為你收集整理的机器学习笔记——模型选择与正则化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。