<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          從 0 開始機(jī)器學(xué)習(xí) - 機(jī)器學(xué)習(xí)算法診斷

          共 3439字,需瀏覽 7分鐘

           ·

          2020-07-20 00:18

          5f231198117e1d145ee81f770c47022b.webp


          登龍

          這是我的第 135?篇原創(chuàng)


          今天跟大家分享下如何診斷一個(gè)算法是否存在偏差或者方差的問題,以及如何選擇優(yōu)化算法的方向。

          一、如何確定下一步的計(jì)劃?

          當(dāng)我們設(shè)計(jì)了一個(gè)機(jī)器學(xué)習(xí)算法,比如線性回歸或邏輯回歸,并且算法已經(jīng)能夠正常工作,只是效果還不是太好,那用什么方法來提高算法的性能或者準(zhǔn)確度呢?或者說在想辦法提升性能之前,有沒有一種方法來告訴我們下一步對(duì)我們設(shè)計(jì)的機(jī)器學(xué)習(xí)算法該采取什么步驟,比如:

          1. 獲得更多的訓(xùn)練樣本
          2. 嘗試減少特征的數(shù)量
          3. 嘗試獲得更多的特征
          4. 嘗試增加多項(xiàng)式特征
          5. 嘗試減少正則化程度
          6. 嘗試增加正則化程度
          7. ...

          上面 6 種思路都可以作為提升一個(gè)算法性能的選擇,可是我們對(duì)一個(gè)算法到底該選擇哪一種優(yōu)化的思路呢?今天就跟大家分享下如何來評(píng)估一個(gè)機(jī)器學(xué)習(xí)算法,也稱為機(jī)器學(xué)習(xí)診斷法,這個(gè)方法可以明確地告訴我們:要想進(jìn)一步提升算法的性能,我們到底該采取什么方法是比較有效地,是增加訓(xùn)練集數(shù)量,還是增加或者減少特征數(shù)等。

          使用這個(gè)方法的必要性是可以幫助我們節(jié)省時(shí)間,讓我們可以更加明確優(yōu)化算法的方向,不至于像無頭蒼蠅一樣胡亂的選擇優(yōu)化思路,最終效果還不行。

          二、訓(xùn)練集、交叉驗(yàn)證集,測試集

          在學(xué)習(xí)診斷法之前,需要先對(duì)訓(xùn)練數(shù)據(jù)集進(jìn)行處理,對(duì)于特征變量比較少的情況,我們可以直接畫出假設(shè)函數(shù)在訓(xùn)練集上的擬合效果,比如:

          2438e70aae5130970080787d986ddc5d.webp

          但是當(dāng)特征數(shù)量很多以至于不能用曲線表示擬合效果時(shí),就需要用另外一種代價(jià)函數(shù)誤差指標(biāo)的方法來衡量假設(shè)函數(shù)的擬合效果,為此需要把原始數(shù)據(jù)集進(jìn)行拆分:

          • 70% 作為訓(xùn)練集 training set
          • 30% 作為測試集 test set

          這樣我們就有了用來評(píng)估模型效果的測試數(shù)據(jù)集了,首先把模型在訓(xùn)練集上進(jìn)行訓(xùn)練,然后用測試集計(jì)算模型的代價(jià)函數(shù)誤差 ,但是在訓(xùn)練集上擬合較好的模型不一定能適應(yīng)新的樣本,為此我們再拆分一個(gè) 交叉驗(yàn)證集幫助我們選擇訓(xùn)練集上訓(xùn)練的模型,為此再對(duì)數(shù)據(jù)集拆分:

          • 60% 作為訓(xùn)練集 training set
          • 20% 作為交叉驗(yàn)證集 cross validation set
          • 20% 作為測試集 test set

          之后使用這 3 個(gè)數(shù)據(jù)集對(duì)多個(gè)模型進(jìn)行訓(xùn)練或者評(píng)估:

          1. 在訓(xùn)練集上訓(xùn)練個(gè)模型,并計(jì)算訓(xùn)練誤差
          2. 在交叉驗(yàn)證集上計(jì)算代價(jià)函數(shù)的交叉驗(yàn)證誤差
          3. 選擇交叉驗(yàn)證誤差最小的模型
          4. 在測試集上計(jì)算上一步選擇的最小模型的代價(jià)函數(shù)推廣誤差

          以上的 3 個(gè)誤差均為平方誤差代價(jià)函數(shù),只是在不同的數(shù)據(jù)集上進(jìn)行的計(jì)算:

          接下來我們分別在訓(xùn)練集和交叉驗(yàn)證集上用曲線做對(duì)比分析,以此來分析當(dāng)前算法存在高偏差問題還是高方差問題。

          三、多項(xiàng)式次數(shù)與偏差和方差的曲線

          通過之前博客的學(xué)習(xí)我們已經(jīng)知道:

          • 高偏差問題:模型欠擬合 (underfitting)
          • 高方差問題:模型過擬合(overfitting)

          通過前面拆分的訓(xùn)練集合交叉驗(yàn)證集,我們可以畫出一個(gè)模型的多項(xiàng)式次數(shù) - 代價(jià)函數(shù)誤差的曲線,以此通過曲線來幫助我們分析當(dāng)前的模型是欠擬合還是過擬合,比如下面的曲線:

          c1cf461ea33517b7de3f35f1baa9f91d.webp

          解釋下:

          • 橫坐標(biāo)代表假設(shè)函數(shù)(模型)的多項(xiàng)式次數(shù) d
          • 縱坐標(biāo)表示代價(jià)函數(shù)的誤差 error
          • 表示模型在交叉驗(yàn)證集上的代價(jià)函數(shù)誤差
          • 表示模型在訓(xùn)練集上的代價(jià)函數(shù)誤差

          從上面的曲線中我們可以發(fā)現(xiàn) 3 個(gè)關(guān)鍵位置及其含義:

          78874870f7272a77d8ac96465d5d2789.webp

          3.1 多項(xiàng)式次數(shù) d 較小

          因?yàn)槟P偷拇螖?shù)低,所以擬合訓(xùn)練集和交叉驗(yàn)證集的誤差都比較大,從曲線上看 與 誤差近似,都挺大的。

          3.2 多項(xiàng)式次數(shù) d 合適

          當(dāng)我們選擇一個(gè)合適的模型時(shí),訓(xùn)練集和交叉驗(yàn)證集的誤差都比較小,并且交叉驗(yàn)證集的誤差處于最低點(diǎn),這說明當(dāng)前多項(xiàng)式次數(shù)對(duì)應(yīng)的模型擬合交叉驗(yàn)證集的效果最好。

          3.3 多項(xiàng)式次數(shù) d 較大

          但是當(dāng)我們繼續(xù)增大模型的多項(xiàng)式次數(shù)后,會(huì)發(fā)現(xiàn)訓(xùn)練集誤差繼續(xù)減少,但是交叉驗(yàn)證誤差卻反而增大了,這是因?yàn)槲覀冞x擇的多項(xiàng)式次數(shù)太高,模型在交叉驗(yàn)證集上產(chǎn)生了過擬合,也即方差太大。

          通過以上 3 個(gè)關(guān)鍵的位置,可以得出以下的結(jié)論:

          • 與 近似時(shí):模型欠擬合,偏差(Bias)較大
          • 遠(yuǎn)大于 時(shí):模型過擬合,方差(Variance)較大

          四、正則化系數(shù)與偏差和方差的曲線

          除了分析模型的多項(xiàng)式次數(shù)與偏差方法的關(guān)系,我們還可以分析正則化系數(shù),這可以幫助我們選擇一個(gè)合適的正則化系數(shù)來防止過擬合,通過前面的學(xué)習(xí)我們知道:

          • 正則化系數(shù) 太大:模型容易欠擬合,偏差較大
          • 正則化系數(shù) 合適:模型擬合效果較好
          • 正則化系數(shù) 太小:模型容易過擬合,方差較大

          如:

          ![](https://dlonng.oss-cn-shenzhen.aliyuncs.com/blog/multi_lamda .jpg)

          為了分析正則化系數(shù)對(duì)模型的影響,我們同樣可以在前面的 3 個(gè)數(shù)據(jù)集上進(jìn)行多組不同正則化系數(shù)模型的誤差計(jì)算:

          • training set 上訓(xùn)練多組不同正則化系數(shù)的模型
          • 分別在 cross validation set 上計(jì)算每組的代價(jià)函數(shù)交叉驗(yàn)證誤差
          • 選擇交叉驗(yàn)證誤差最小的模型
          • 將誤差最小的模型在 test set 上計(jì)算推廣誤差

          在這個(gè)過程中,我們可以畫出正則化系數(shù)與代價(jià)函數(shù)誤差的關(guān)系:

          bb18475b089e0bfb45c7edf7d5e11f41.webp

          解釋下曲線上關(guān)鍵的 3 個(gè)位置:

          4.1 較小

          因?yàn)檎齽t化系數(shù)較小,模型在訓(xùn)練集上產(chǎn)生過擬合,雖然誤差 比較小,但是在交叉驗(yàn)證集上的誤差 很大,這是因?yàn)樵谟?xùn)練集上過擬合的模型不能很好的適應(yīng)未知的樣本。

          4.2 合適

          當(dāng)選擇了一個(gè)合適的正則化系數(shù)時(shí),模型在訓(xùn)練集和交叉驗(yàn)證集上的誤差都比較小,這也是我們想要的情況。

          4.3 較大

          當(dāng)正則化系數(shù)很大,模型在訓(xùn)練集上都不能很好地?cái)M合數(shù)據(jù)(欠擬合),更別說在未知上交叉驗(yàn)證集上測試了,所以這兩者的誤差都很大。

          也簡單總結(jié)下這個(gè)曲線:

          • 當(dāng) 較?。河?xùn)練集誤差小,交叉驗(yàn)證集誤差大
          • 當(dāng) 不斷增大:訓(xùn)練集誤差逐漸增大,而交叉驗(yàn)證集誤差先減小再增大

          五、學(xué)習(xí)曲線

          除了以上的多項(xiàng)式次數(shù)、正則化系數(shù)與誤差的關(guān)系之外,還有一種很重要的稱為「學(xué)習(xí)曲線」的關(guān)系,它主要用來說明交叉驗(yàn)證誤差和訓(xùn)練集誤差隨著樣本數(shù)量變化的關(guān)系,可以用這個(gè)曲線幫助我們判斷一個(gè)算法在給定樣本規(guī)模的情況下是否存在偏差或者方差的問題。

          我們還是分析以下 2 個(gè)代價(jià)函數(shù)誤差:

          我們把這 2 者和樣本數(shù)量的關(guān)系畫成學(xué)習(xí)曲線:

          5c89ebe78d79a37817f3e4616eae1c70.webp

          因?yàn)槭欠治鰳颖緮?shù)量與這 2 個(gè)誤差的關(guān)系,所以我們分 2 種情況來討論。

          5.1 模型存在高偏差(欠擬合)問題

          當(dāng)模型欠擬合時(shí),比如多項(xiàng)式次數(shù)太少(特征太少了),不管把樣本數(shù)量增大到多少,訓(xùn)練集誤差和交叉驗(yàn)證集誤差都不會(huì)下降很多,這種情況就說明我們的模型存在高偏差問題,也就是欠擬合了:

          81b05997926df5625923b79dc0d68483.webp

          這種情況下,如果你不用學(xué)習(xí)曲線來分析,而是直接憑感覺出發(fā)覺得我應(yīng)該多增加一些數(shù)據(jù),這樣模型的擬合效果應(yīng)該會(huì)更好,那就選錯(cuò)了優(yōu)化的方向,從曲線上來看,不管你增加多少樣本,誤差是不會(huì)降低的。

          5.2 模型存在高方差(過擬合)問題

          現(xiàn)在假設(shè)我們有一個(gè)非常高次的多項(xiàng)式模型(特征很多),并且正則化系數(shù)很小時(shí),如果訓(xùn)練樣本數(shù)很少,那么在訓(xùn)練集上會(huì)過擬合,導(dǎo)致在交叉驗(yàn)證集上誤差較大(過擬合不能很好的適應(yīng)新樣本),而當(dāng)增加樣本數(shù)量的時(shí)候,因?yàn)槲覀兡P陀凶銐蚨嗟奶卣?,所以不?huì)輕易的過擬合,這樣隨著數(shù)量增多,訓(xùn)練集和交叉驗(yàn)證集的誤差都會(huì)減?。?/p>85d768bd03f3ba092d5cbc24660b2e51.webp

          簡單總結(jié)下就是:

          • 高偏差(欠擬合)的模型,增大樣本數(shù)量不一定對(duì)算法有幫助
          • 高方差(過擬合)的模型,增大樣本數(shù)量可能提升算法的效果

          這里也只可能的情況,因?yàn)閷?shí)際的模型可能很復(fù)雜,可能會(huì)存在一些特殊情況。

          六、現(xiàn)在決定下一步的思路

          學(xué)習(xí)完了如何診斷一個(gè)算法是否存在偏差或者方差問題后,我們就可以回答文章開頭提出的問題了,到底如何選擇優(yōu)化方向:

          1. 獲得更多的訓(xùn)練樣本 - 適用于高方差的模型
          2. 嘗試減少特征的數(shù)量 - 適用于高方差的模型
          3. 嘗試獲得更多的特征 - 適用于高偏差的模型
          4. 嘗試增加多項(xiàng)式特征 - 適用于高偏差的模型
          5. 嘗試減少正則化程度 - 適用于高偏差的模型
          6. 嘗試增加正則化程度 - 適用于高方差的模型

          知道如何診斷算法存在的問題后,就可以選擇對(duì)應(yīng)的優(yōu)化方向進(jìn)行針對(duì)性的工作,就不用盲目地選擇優(yōu)化方向,最后還可能是無用功。

          OK!今天就到這,大家下期見:)

          推薦閱讀:

          從 0 開始機(jī)器學(xué)習(xí) - 神經(jīng)網(wǎng)絡(luò)反向 BP 算法!

          從 0 開始機(jī)器學(xué)習(xí) - 神經(jīng)網(wǎng)絡(luò)識(shí)別手寫字符!

          從 0 開始機(jī)器學(xué)習(xí) - 邏輯回歸識(shí)別手寫字符!



          廈大同學(xué),與你分享編程,AI 算法等技術(shù)干貨!精品文章創(chuàng)作不易,謝謝關(guān)注,歡迎在看。


          26ecdf834452a5cb27555dd688697094.webp

          點(diǎn)擊閱讀原文,查看更多原創(chuàng)文章!

          瀏覽 39
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产国内精品灰色夫妻网 | 青娱乐精品视频分类免费 | 欧美日比视频在线观看 | 天天日,天天干,天天射 | 青春草在线观看国产 |