機器學習之誤差函數理解

1.基本理解

在機器學習中,我們期望的就是在給出的數據中訓練出一個modle,也可以理解爲一個函數function,當我們將我們的測試數據輸入到這個modle的時候,就可以得到我們預想的結果。然而在我們訓練數據的時候,我們就會遇到這個問題,通過不斷地訓練和測試我們發現,有時候越複雜的modle,在測試集的效果反而越差,可見並不是我們的modle越貼合訓練數據越好,這就需要我們找到一個平衡點。
在這裏插入圖片描述
像這個圖片所描述的(此模型結果是臺灣大學李宏毅教授對多個模型多次測試得出的結果圖),橫座標表示的是所設置的預測模型所攜帶的參數,縱座標表示所有測試集在modle中預測的數值與真實數值之間的差距之和。再上圖中我們可以清楚的看到當我們的參數選擇在1-3的時候,我們發現總的錯誤值是逐漸減少的,但是當設置爲4個參數的時候,錯誤率開始“雪崩式”增長。那麼這些error到底是來自哪裏呢?我們又該如何找出這些錯誤並作出改進呢?

2. 誤差來源:bias && variance

我們對數據集的預測,理論上來說,這個預測有一個最佳的函數進行預測。但是這個最佳函數,我們只能通過在訓練集中訓練去得到一個函數來接近這個最佳函數。而這之間是存在誤差的,這個誤差主要來源於bias和variance。

2.1 原理依據

例如,我們要估算一個變量的平均值和方差。我們利用採樣點估算出的平均值和方差和真實的平均值肯定是不一樣的。但是如果我們再利用其樣本平均值再求期望的話,這個值會接近真實平均值,這樣我們的估計其實是無偏估計。
在這裏插入圖片描述
但這個每次的估計雖然會接近真實平均值,但始終又和真實平均值是有誤差的。而這個誤差就可以用方差variance來表示,variance的值和我們的樣本數量密切相關。
在這裏插入圖片描述
那我們怎麼去估算variance呢?同樣的我們進行多次採樣,然後多次計算方差,但這個時候多次採樣計算發現,我們的估算出的方差並不會更接近真實方差。這個時候我們發現,我們這麼去估算方差是有偏估計。這個偏差主要來源於下圖的(N-1/N),如果樣本數很大時,這個式子趨向於1,這樣和真實值偏差也會減小。
在這裏插入圖片描述
如果發現我們得到的結果,和真實的值(圖中靶點)都相差很大的話,那怎麼去確定,我們的誤差是從哪來的呢?這個時候,我們就可以利用前文提到的平均值估計的方法,來估計這個函數。假設,我們可以做很多次試驗,每次試驗可以得到一個函數,最後求期望。發現我們得到的期望和真實值都有很大的差距,那這說明我們一開始瞄準的時候就沒瞄準,是存在偏差bias的。同時,我們也發現我們得出的期望值和之前的樣本值之間的差異也很大,那麼這說明我們的誤差也有一部分是來自variance。所以,第四個圖的情況中,誤差是同時來源於bias和variance。
在這裏插入圖片描述
但是在上節課中,我們只訓練得到了一個函數。那我們怎麼去得到很多的函數,然後再求期望呢?

2.2 不同模型下的比較

因爲李宏毅教授是基於寶可夢的升級作爲例子講解,所以此處我也繼續沿用老師的說法:這裏假設有很多個平行宇宙,每個平行宇宙都有寶可夢,然後去得到這個函數。
在這裏插入圖片描述
這裏我們使用相同的模型,但得到不同的函數。這樣就可以求函數的期望值了。
在這裏插入圖片描述
最後我們用了100個平行宇宙的數據,得到了100個不同的函數。把這100個函數都畫出來,可以看下圖。一次,三次和五次的模型,都有。
在這裏插入圖片描述
上面的圖,我們可以得出結論:

  1. 一次的模型是比較集中的,因此這個模型的variance是比較小的
  2. 五次的模型是比較亂的,因此這個模型的variance是比較大的

爲什麼會有這個情景呢?因爲越簡單的模型被樣本數的影響越小。舉個特別極端的例子,如果這個函數是常數,那麼樣本怎麼改變,函數都不會變,variance就是0。

2.3 bias

接下來我們看看bias。bias只要是看平均值與靶心的接近程度。那這裏,針對我們剛剛的問題,我們不知道靶心(真實的最佳函數)在哪裏,那怎麼辦呢?我們就先隨便假設一個這樣的最佳函數,然後從這個假設的最佳函數中,進行採樣。用這個採樣數據去訓練不同的模型。這樣我們就可以看出我們不同模型與真實模型之間的bias了,(感覺這個方法真的好機智!)
在這裏插入圖片描述
下圖中黑色表示的是函數原來的樣子,紅色的是5000條functions函數,藍色則是這五千條函數的均值,其結果如下所示:
在這裏插入圖片描述
上圖中,靶心爲黑色的直線,我們可以得出以下結論:

  1. 一次模型,可以發現我們得出的平均值(藍線)和黑色的直線差很多,因此bias比較大
  2. 三次模型,可以發現我們得出的平均值(藍線)和黑色的直線差小了一些,因此bias也小了一些
  3. 五次模型,可以發現我們得出的平均值(藍線)和黑色的直線差最小,因此bias也是最小的

所以可以得出,越複雜的模型bias越小,但variance越大。越簡單的模型bias越大,但variance越小,爲什麼會這樣呢?
如果說我們的函數屬於一個集合,如果是一個比較簡單的模型,那麼這個集合就會比較小,variance也就會比較小,但是同時這個集合也沒有包含靶心,因此bias就會很大。相反的,複雜的模型屬於的集合就會非常大,因此variance很大,但是這個集合包含了靶心,因此bias會比較小。

3.總結

哈哈,總結到這,相信大家對於這幅圖片有了更加深入的理解了吧。
在這裏插入圖片描述

還有下邊的這個圖:
在這裏插入圖片描述
在這裏我們看到還介紹了兩個概念,欠擬合(Underfitting)過擬合(Overfitting)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章