<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # 15 -- Validation 上節課我們主要講了為了避免overfitting,可以使用regularization方法來解決。在之前的![](https://img.kancloud.cn/5b/cf/5bcf9eebe555c8380ea4c84aea710839_23x14.jpg)上加上一個regularizer,生成![](https://img.kancloud.cn/32/26/3226a8971528cd68f194ccc55cf51e84_31x16.jpg),將其最小化,這樣可以有效減少模型的復雜度,避免過擬合現象的發生。那么,機器學習領域還有許多選擇,如何保證訓練的模型具有良好的泛化能力?本節課將介紹一些概念和方法來解決這個選擇性的問題。 ### **一、Model Selection Problem** 機器學習模型建立的過程中有許多選擇,例如對于簡單的二元分類問題,首先是算法A的選擇,有PLA,pocket,linear regression,logistic regression等等;其次是迭代次數T的選擇,有100,1000,10000等等;之后是學習速率![](https://img.kancloud.cn/fa/a8/faa8fa58ba31bedd69c7f03b2b3885e9_9x10.jpg)的選擇,有1,0.01,0.0001等等;接著是模型特征轉換![](https://img.kancloud.cn/48/f8/48f827e6c5f24a9af72129d2b62785dc_11x13.jpg)的選擇,有linear,quadratic,poly-10,Legendre-poly-10等等;然后是正則化regularizer的選擇,有L2,L1等等;最后是正則化系數![](https://img.kancloud.cn/6c/9a/6c9a2d4cdadb3b3dd53f11c31c8be95e_9x11.jpg)的選擇,有0,0.01,1等等。不同的選擇搭配,有不同的機器學習效果。我們的目標就是找到最合適的選擇搭配,得到一個好的矩g,構建最佳的機器學習模型。 ![這里寫圖片描述](https://img.kancloud.cn/af/3d/af3dc781672fc24b1b9f21edec68af88_471x239.jpg) 假設有M個模型,對應有![](https://img.kancloud.cn/3d/4a/3d4af6b65719d3c131a7c55b9c22dcd9_113x15.jpg),即有M個hypothesis set,演算法為![](https://img.kancloud.cn/34/48/3448343a35d0eaf5257e645be6701de4_109x15.jpg),共M個。我們的目標是從這M個hypothesis set中選擇一個模型![](https://img.kancloud.cn/0c/49/0c496e20cd8ab89e754230feb4ba9eaa_28x14.jpg),通過演算法![](https://img.kancloud.cn/dc/8d/dc8d991b5b67fe3f12c7c73e0c0f4bb6_27x14.jpg)對樣本集D的訓練,得到一個最好的矩![](https://img.kancloud.cn/6a/37/6a3763934ae3ca97a4e7842acba5d128_23x10.jpg),使其![](https://img.kancloud.cn/d1/b8/d1b8433f059616b0c44aed6deafcdcca_66x18.jpg)最小。所以,問題的關鍵就是機器學習中如何選擇到最好的矩![](https://img.kancloud.cn/6a/37/6a3763934ae3ca97a4e7842acba5d128_23x10.jpg)。 考慮有這樣一種方法,對M個模型分別計算使![](https://img.kancloud.cn/5b/cf/5bcf9eebe555c8380ea4c84aea710839_23x14.jpg)最小的矩g,再橫向比較,取其中能使![](https://img.kancloud.cn/5b/cf/5bcf9eebe555c8380ea4c84aea710839_23x14.jpg)最小的模型的矩![](https://img.kancloud.cn/6a/37/6a3763934ae3ca97a4e7842acba5d128_23x10.jpg): ![這里寫圖片描述](https://img.kancloud.cn/cf/c4/cfc4bd0010630d72cc254233357ca622_272x54.jpg) 但是![](https://img.kancloud.cn/5b/cf/5bcf9eebe555c8380ea4c84aea710839_23x14.jpg)足夠小并不能表示模型好,反而可能表示訓練的矩![](https://img.kancloud.cn/6a/37/6a3763934ae3ca97a4e7842acba5d128_23x10.jpg)發生了過擬合,泛化能力很差。而且這種“模型選擇+學習訓練”的過程,它的VC Dimension是![](https://img.kancloud.cn/8f/1a/8f1a8e3c55bce947c8d19e840fe3a6be_98x18.jpg),模型復雜度增加。總的來說,泛化能力差,用![](https://img.kancloud.cn/5b/cf/5bcf9eebe555c8380ea4c84aea710839_23x14.jpg)來選擇模型是不好的。 另外一種方法,如果有這樣一個獨立于訓練樣本的測試集,將M個模型在測試集上進行測試,看一下![](https://img.kancloud.cn/d2/84/d284a15cfc886dddd01bfa54b2211a1e_30x14.jpg)的大小,則選取![](https://img.kancloud.cn/d2/84/d284a15cfc886dddd01bfa54b2211a1e_30x14.jpg)最小的模型作為最佳模型: ![這里寫圖片描述](https://img.kancloud.cn/ba/c7/bac7d025f86ea2c43a771c23fb2a1766_273x48.jpg) 這種測試集驗證的方法,根據finite-bin Hoffding不等式,可以得到: 由上式可以看出,模型個數M越少,測試集數目越大,那么![](https://img.kancloud.cn/49/38/4938d48d795384dc992a6295253ef631_83x41.jpg)越小,即![](https://img.kancloud.cn/d2/84/d284a15cfc886dddd01bfa54b2211a1e_30x14.jpg)越接近于![](https://img.kancloud.cn/d1/b8/d1b8433f059616b0c44aed6deafcdcca_66x18.jpg)。 下面比較一下之前講的兩種方法,第一種方法使用![](https://img.kancloud.cn/5b/cf/5bcf9eebe555c8380ea4c84aea710839_23x14.jpg)作為判斷基準,使用的數據集就是訓練集D本身;第二種方法使用![](https://img.kancloud.cn/d2/84/d284a15cfc886dddd01bfa54b2211a1e_30x14.jpg)作為判斷基準,使用的是獨立于訓練集D之外的測試集。前者不僅使用D來訓練不同的![](https://img.kancloud.cn/f1/3b/f13b04c0ac0e0a2a8740bb6d170e51ec_19x10.jpg),而且又使用D來選擇最好的![](https://img.kancloud.cn/6a/37/6a3763934ae3ca97a4e7842acba5d128_23x10.jpg),那么![](https://img.kancloud.cn/6a/37/6a3763934ae3ca97a4e7842acba5d128_23x10.jpg)對未知數據并不一定泛化能力好。舉個例子,這相當于老師用學生做過的練習題再來對學生進行考試,那么即使學生得到高分,也不能說明他的學習能力強。所以最小化![](https://img.kancloud.cn/5b/cf/5bcf9eebe555c8380ea4c84aea710839_23x14.jpg)的方法并不科學。而后者使用的是獨立于D的測試集,相當于新的考試題能更好地反映學生的真實水平,所以最小化![](https://img.kancloud.cn/d2/84/d284a15cfc886dddd01bfa54b2211a1e_30x14.jpg)更加理想。 ![這里寫圖片描述](https://img.kancloud.cn/18/38/1838872514eb3e9433ff84bbd6212a56_565x142.jpg) 但是,我們拿到的一都是訓練集D,測試集是拿不到的。所以,尋找一種折中的辦法,我們可以使用已有的訓練集D來創造一個驗證集validation set,即從D中劃出一部分![](https://img.kancloud.cn/13/dd/13dda61bb54614a8280b36e509487068_28x14.jpg)作為驗證集。D另外的部分作為訓練模型使用,![](https://img.kancloud.cn/13/dd/13dda61bb54614a8280b36e509487068_28x14.jpg)獨立開來,用來測試各個模型的好壞,最小化![](https://img.kancloud.cn/4d/24/4d24643e6d4a16f2093805d591a1ff89_27x14.jpg),從而選擇最佳的![](https://img.kancloud.cn/6a/37/6a3763934ae3ca97a4e7842acba5d128_23x10.jpg)。 ![這里寫圖片描述](https://img.kancloud.cn/dc/21/dc21caebda10b8df7ec0ccb663380e98_280x138.jpg) ### **二、Validation** 從訓練集D中抽出一部分K個數據作為驗證集![](https://img.kancloud.cn/13/dd/13dda61bb54614a8280b36e509487068_28x14.jpg),![](https://img.kancloud.cn/13/dd/13dda61bb54614a8280b36e509487068_28x14.jpg)對應的error記為![](https://img.kancloud.cn/4d/24/4d24643e6d4a16f2093805d591a1ff89_27x14.jpg)。這樣做的一個前提是保證![](https://img.kancloud.cn/13/dd/13dda61bb54614a8280b36e509487068_28x14.jpg)獨立同分布(iid)于P(x,y),也就是說![](https://img.kancloud.cn/13/dd/13dda61bb54614a8280b36e509487068_28x14.jpg)的選擇是從D中平均隨機抽樣得到的,這樣能夠把![](https://img.kancloud.cn/4d/24/4d24643e6d4a16f2093805d591a1ff89_27x14.jpg)與![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)聯系起來。D中去除![](https://img.kancloud.cn/13/dd/13dda61bb54614a8280b36e509487068_28x14.jpg)后的數據就是供模型選擇的訓練數據![](https://img.kancloud.cn/80/33/80339ac589f42f97131228e8a6f52069_40x14.jpg),其大小為N-k。從![](https://img.kancloud.cn/80/33/80339ac589f42f97131228e8a6f52069_40x14.jpg)中選擇最好的矩,記為![](https://img.kancloud.cn/f1/3b/f13b04c0ac0e0a2a8740bb6d170e51ec_19x10.jpg)。 ![這里寫圖片描述](https://img.kancloud.cn/74/69/746966c50c143373e7f98b2fb16fd46c_566x154.jpg) 假如D共有1000個樣本,那么可以選擇其中900個![](https://img.kancloud.cn/80/33/80339ac589f42f97131228e8a6f52069_40x14.jpg),剩下的100個作為![](https://img.kancloud.cn/13/dd/13dda61bb54614a8280b36e509487068_28x14.jpg)。使用![](https://img.kancloud.cn/80/33/80339ac589f42f97131228e8a6f52069_40x14.jpg)訓練模型,得到最佳的![](https://img.kancloud.cn/f1/3b/f13b04c0ac0e0a2a8740bb6d170e51ec_19x10.jpg),使用![](https://img.kancloud.cn/f1/3b/f13b04c0ac0e0a2a8740bb6d170e51ec_19x10.jpg)對![](https://img.kancloud.cn/13/dd/13dda61bb54614a8280b36e509487068_28x14.jpg)進行驗證,得到如下Hoffding不等式: 假設有M種模型hypothesis set,![](https://img.kancloud.cn/13/dd/13dda61bb54614a8280b36e509487068_28x14.jpg)的數量為K,那么從每種模型m中得到一個在![](https://img.kancloud.cn/13/dd/13dda61bb54614a8280b36e509487068_28x14.jpg)上表現最好的矩,再橫向比較,從M個矩中選擇一個最好的![](https://img.kancloud.cn/18/41/1841a81e0cae9a806abba95319a711da_22x8.jpg)作為我們最終得到的模型。 ![這里寫圖片描述](https://img.kancloud.cn/83/51/835154d4ccd80cb6e8d33c8b3e6a6322_320x49.jpg) 現在由于數量為N的總樣本D的一部分K作為驗證集,那么只有N-k個樣本可供訓練。從![](https://img.kancloud.cn/80/33/80339ac589f42f97131228e8a6f52069_40x14.jpg)中得到最好的![](https://img.kancloud.cn/6a/37/6a3763934ae3ca97a4e7842acba5d128_23x10.jpg),而總樣本D對應的最好的矩為![](https://img.kancloud.cn/6a/37/6a3763934ae3ca97a4e7842acba5d128_23x10.jpg)。根據之前的leraning curve很容易知道,訓練樣本越多,得到的模型越準確,其hypothesis越接近target function,即D的![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)比![](https://img.kancloud.cn/80/33/80339ac589f42f97131228e8a6f52069_40x14.jpg)的![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)要小: ![這里寫圖片描述](https://img.kancloud.cn/c5/d0/c5d06a8d31f4c872e7a26b14132f889e_292x107.jpg) 所以,我們通常的做法是通過![](https://img.kancloud.cn/13/dd/13dda61bb54614a8280b36e509487068_28x14.jpg)來選擇最好的矩![](https://img.kancloud.cn/6a/37/6a3763934ae3ca97a4e7842acba5d128_23x10.jpg)對應的模型![](https://img.kancloud.cn/2b/46/2b46d2ec0ad1409a33acff21456e55a6_20x12.jpg),再對整體樣本集D使用該模型進行訓練,最終得到最好的矩![](https://img.kancloud.cn/6a/37/6a3763934ae3ca97a4e7842acba5d128_23x10.jpg)。 總結一下,使用驗證集進行模型選擇的整個過程為:先將D分成兩個部分,一個是訓練樣本![](https://img.kancloud.cn/80/33/80339ac589f42f97131228e8a6f52069_40x14.jpg),一個是驗證集![](https://img.kancloud.cn/13/dd/13dda61bb54614a8280b36e509487068_28x14.jpg)。若有M個模型,那么分別對每個模型在![](https://img.kancloud.cn/80/33/80339ac589f42f97131228e8a6f52069_40x14.jpg)上進行訓練,得到矩![](https://img.kancloud.cn/ba/c0/bac00faa5d1ba3f8ef86b9bc051d9758_19x13.jpg),再用![](https://img.kancloud.cn/13/dd/13dda61bb54614a8280b36e509487068_28x14.jpg)對每個![](https://img.kancloud.cn/ba/c0/bac00faa5d1ba3f8ef86b9bc051d9758_19x13.jpg)進行驗證,選擇表現最好的矩![](https://img.kancloud.cn/6a/37/6a3763934ae3ca97a4e7842acba5d128_23x10.jpg),則該矩對應的模型被選擇。最后使用該模型對整個D進行訓練,得到最終的![](https://img.kancloud.cn/6a/37/6a3763934ae3ca97a4e7842acba5d128_23x10.jpg)。下圖展示了整個模型選擇的過程: ![這里寫圖片描述](https://img.kancloud.cn/ad/4b/ad4b21397189121e9dc162946bf81b08_287x332.jpg) 不等式關系滿足: 下面我們舉個例子來解釋這種模型選擇的方法的優越性,假設有兩個模型:一個是5階多項式![](https://img.kancloud.cn/7a/2c/7a2c964e4cf12d84e867903e760b4527_26x15.jpg),一個是10階多項式![](https://img.kancloud.cn/53/80/5380def45aaadba61719638d9328bac5_31x16.jpg)。通過不使用驗證集和使用驗證集兩種方法對模型選擇結果進行比較,分析結果如下: ![這里寫圖片描述](https://img.kancloud.cn/74/46/744663110896bca2fb789df18e2ce703_366x280.jpg) 圖中,橫坐標表示驗證集數量K,縱坐標表示![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)大小。黑色水平線表示沒有驗證集,完全使用![](https://img.kancloud.cn/5b/cf/5bcf9eebe555c8380ea4c84aea710839_23x14.jpg)進行判斷基準,那么![](https://img.kancloud.cn/53/80/5380def45aaadba61719638d9328bac5_31x16.jpg)更好一些,但是這種方法的![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)比較大,而且與K無關。黑色虛線表示測試集非常接近實際數據,這是一種理想的情況,其![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)很小,同樣也與K無關,實際中很難得到這條虛線。紅色曲線表示使用驗證集,但是最終選取的矩是![](https://img.kancloud.cn/6a/37/6a3763934ae3ca97a4e7842acba5d128_23x10.jpg),其趨勢是隨著K的增加,它對應的![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)先減小再增大,當K大于一定值的時候,甚至會超過黑色水平線。藍色曲線表示也使用驗證集,最終選取的矩是![](https://img.kancloud.cn/6a/37/6a3763934ae3ca97a4e7842acba5d128_23x10.jpg),其趨勢是隨著K的增加,它對應的![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)先緩慢減小再緩慢增大,且一直位于紅色曲線和黑色直線之下。從此可見,藍色曲線對應的方法最好,符合我們之前討論的使用驗證集進行模型選擇效果最好。 這里提一點,當K大于一定的值時,紅色曲線會超過黑色直線。這是因為隨著K的增大,![](https://img.kancloud.cn/13/dd/13dda61bb54614a8280b36e509487068_28x14.jpg)增大,但可供模型訓練的![](https://img.kancloud.cn/80/33/80339ac589f42f97131228e8a6f52069_40x14.jpg)在減小,那得到的![](https://img.kancloud.cn/6a/37/6a3763934ae3ca97a4e7842acba5d128_23x10.jpg)不具有很好的泛化能力,即對應的![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)會增大,甚至當K增大到一定值時,比![](https://img.kancloud.cn/5b/cf/5bcf9eebe555c8380ea4c84aea710839_23x14.jpg)模型更差。 那么,如何設置驗證集K值的大小呢?根據之前的分析: ![這里寫圖片描述](https://img.kancloud.cn/a4/61/a4618808c0f7de0ffa1392fb877177c2_566x71.jpg) 當K值很大時,![](https://img.kancloud.cn/4d/24/4d24643e6d4a16f2093805d591a1ff89_27x14.jpg),但是![](https://img.kancloud.cn/f1/3b/f13b04c0ac0e0a2a8740bb6d170e51ec_19x10.jpg)與![](https://img.kancloud.cn/f1/3b/f13b04c0ac0e0a2a8740bb6d170e51ec_19x10.jpg)相差很大;當K值很小是,![](https://img.kancloud.cn/f1/3b/f13b04c0ac0e0a2a8740bb6d170e51ec_19x10.jpg),但是![](https://img.kancloud.cn/4d/24/4d24643e6d4a16f2093805d591a1ff89_27x14.jpg)與![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)可能相差很大。所以有個折中的辦法,通常設置![](https://img.kancloud.cn/5b/b2/5bb256517890ba92fcb8118b661c5df1_48x33.jpg)。值得一提的是,劃分驗證集,通常并不會增加整體時間復雜度,反而會減少,因為![](https://img.kancloud.cn/80/33/80339ac589f42f97131228e8a6f52069_40x14.jpg)減少了。 ### **三、Leave-One-Out Cross Validation** 假如考慮一個極端的例子,k=1,也就是說驗證集大小為1,即每次只用一組數據對![](https://img.kancloud.cn/f1/3b/f13b04c0ac0e0a2a8740bb6d170e51ec_19x10.jpg)進行驗證。這樣做的優點是![](https://img.kancloud.cn/f1/3b/f13b04c0ac0e0a2a8740bb6d170e51ec_19x10.jpg),但是![](https://img.kancloud.cn/4d/24/4d24643e6d4a16f2093805d591a1ff89_27x14.jpg)與![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)可能相差很大。為了避免![](https://img.kancloud.cn/4d/24/4d24643e6d4a16f2093805d591a1ff89_27x14.jpg)與![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)相差很大,每次從D中取一組作為驗證集,直到所有樣本都作過驗證集,共計算N次,最后對驗證誤差求平均,得到![](https://img.kancloud.cn/c8/aa/c8aaa1ba9eebec3bf2da34460c724dc6_84x18.jpg),這種方法稱之為留一法交叉驗證,表達式為: 這樣求平均的目的是為了讓![](https://img.kancloud.cn/c8/aa/c8aaa1ba9eebec3bf2da34460c724dc6_84x18.jpg)盡可能地接近![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)。 下面用一個例子圖解留一法的過程: ![這里寫圖片描述](https://img.kancloud.cn/aa/71/aa716e12e3863fd98cf0c50264bcfb01_566x347.jpg) 如上圖所示,要對二維平面上的三個點做擬合,上面三個圖表示的是線性模型,下面三個圖表示的是常數模型。對于兩種模型,分別使用留一交叉驗證法來計算![](https://img.kancloud.cn/43/80/43800452ee325390a59a222a3d077406_39x14.jpg),計算過程都是每次將一個點作為驗證集,其他兩個點作為訓練集,最終將得到的驗證誤差求平均值,就得到了![](https://img.kancloud.cn/43/80/43800452ee325390a59a222a3d077406_39x14.jpg)和![](https://img.kancloud.cn/43/80/43800452ee325390a59a222a3d077406_39x14.jpg),比較兩個值的大小,取值小對應的模型即為最佳模型。 ![這里寫圖片描述](https://img.kancloud.cn/37/39/3739b9d41af372c670990cd772ad604e_372x53.jpg) 接下來,我們從理論上分析Leave-One-Out方法的可行性,即![](https://img.kancloud.cn/c8/aa/c8aaa1ba9eebec3bf2da34460c724dc6_84x18.jpg)是否能保證![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)的矩足夠好?假設有不同的數據集D,它的期望分布記為![](https://img.kancloud.cn/44/cd/44cdcb62db2af58f098705f91ca538b0_18x10.jpg),則其![](https://img.kancloud.cn/c8/aa/c8aaa1ba9eebec3bf2da34460c724dc6_84x18.jpg)可以通過推導,等于![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)的平均值。由于N-1近似為N,![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)的平均值也近似等于![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)的平均值。具體推導過程如下: ![這里寫圖片描述](https://img.kancloud.cn/61/ec/61ecfb75f08234cc4c2a99c1fd04c777_566x257.jpg) 最終我們得到的結論是![](https://img.kancloud.cn/c8/aa/c8aaa1ba9eebec3bf2da34460c724dc6_84x18.jpg)的期望值和![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)的期望值是相近的,這代表得到了比較理想的![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg),Leave-One-Out方法是可行的。 舉一個例子,使用兩個特征:Average Intensity和Symmetry加上這兩個特征的非線性變換(例如高階項)來進行手寫數字識別。平面特征分布如下圖所示: ![這里寫圖片描述](https://img.kancloud.cn/3c/63/3c631d8fc5a0c1f61b4531231a7316d3_302x296.jpg) Error與特征數量的關系如下圖所示: ![這里寫圖片描述](https://img.kancloud.cn/46/17/4617a2f04f3aff68c41cb35aaace2509_414x337.jpg) 從圖中我們看出,隨著特征數量的增加,![](https://img.kancloud.cn/5b/cf/5bcf9eebe555c8380ea4c84aea710839_23x14.jpg)不斷減小,![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)先減小再增大,雖然![](https://img.kancloud.cn/5b/cf/5bcf9eebe555c8380ea4c84aea710839_23x14.jpg)是不斷減小的,但是它與![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)的差距越來越大,發生了過擬合,泛化能力太差。而![](https://img.kancloud.cn/71/f6/71f6e53be64f54109e174ca39d576fc4_23x14.jpg)與![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)的分布基本一致,能較好地反映![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)的變化。所以,我們只要使用Leave-One-Out方法得到使![](https://img.kancloud.cn/71/f6/71f6e53be64f54109e174ca39d576fc4_23x14.jpg)最小的模型,就能保證其![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)足夠小。下圖是分別使用![](https://img.kancloud.cn/5b/cf/5bcf9eebe555c8380ea4c84aea710839_23x14.jpg)和![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)進行訓練得到的分類曲線: ![這里寫圖片描述](https://img.kancloud.cn/83/c5/83c5273d69ff36ad2763d18e82090e3c_538x309.jpg) 很明顯可以看出,使用![](https://img.kancloud.cn/5b/cf/5bcf9eebe555c8380ea4c84aea710839_23x14.jpg)發生了過擬合,而![](https://img.kancloud.cn/43/80/43800452ee325390a59a222a3d077406_39x14.jpg)分類效果更好,泛化能力強。 ### **四、V-Fold Cross Validation** 接下來我們看看Leave-One-Out可能的問題是什么。首先,第一個問題是計算量,假設N=1000,那么就需要計算1000次的![](https://img.kancloud.cn/43/80/43800452ee325390a59a222a3d077406_39x14.jpg),再計算其平均值。當N很大的時候,計算量是巨大的,很耗費時間。第二個問題是穩定性,例如對于二分類問題,取值只有0和1兩種,預測本身存在不穩定的因素,那么對所有的![](https://img.kancloud.cn/43/80/43800452ee325390a59a222a3d077406_39x14.jpg)計算平均值可能會帶來很大的數值跳動,穩定性不好。所以,這兩個因素決定了Leave-One-Out方法在實際中并不常用。 針對Leave-One-Out的缺點,我們對其作出了改進。Leave-One-Out是將N個數據分成N分,那么改進措施是將N個數據分成V份(例如V=10),計算過程與Leave-One-Out相似。這樣可以減少總的計算量,又能進行交叉驗證,得到最好的矩,這種方法稱為V-折交叉驗證。其實Leave-One-Out就是V-折交叉驗證的一個極端例子。 所以呢,一般的Validation使用V-折交叉驗證來選擇最佳的模型。值得一提的是Validation的數據來源也是樣本集中的,所以并不能保證交叉驗證的效果好,它的模型一定好。只有樣本數據越多,越廣泛,那么Validation的結果越可信,其選擇的模型泛化能力越強。 ### **五、總結** 本節課主要介紹了Validation驗證。先從如何選擇一個好的模型開始切入,例如使用![](https://img.kancloud.cn/5b/cf/5bcf9eebe555c8380ea4c84aea710839_23x14.jpg)、![](https://img.kancloud.cn/d2/84/d284a15cfc886dddd01bfa54b2211a1e_30x14.jpg)都是不太好的,最終使用![](https://img.kancloud.cn/4d/24/4d24643e6d4a16f2093805d591a1ff89_27x14.jpg)來進行模型選擇。然后詳細介紹了Validation的過程。最后,介紹了Leave-One-Out和V-Fold Cross兩種驗證方法,比較它們各自的優點和缺點,實際情況下,V-Fold Cross更加常用。 **_注明:_** 文章中所有的圖片均來自臺灣大學林軒田《機器學習基石》課程
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看