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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

深度学习基础系列(八)| 偏差和方差

發布時間:2025/7/14 pytorch 74 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度学习基础系列(八)| 偏差和方差 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  當我們費勁周章不斷調參來訓練模型時,不可避免地會思考一系列問題,模型好壞的評判標準是什么?改善模型的依據何在?何時停止訓練為佳?

  要解決上述問題,我們需要引入偏差和方差這兩個概念,理解他們很重要,也是后續了解過擬合、正則化、提早終止訓練、數據增強等概念和方法的前提。

?

一、概念定義

  • 偏差(bias):偏差衡量了模型的預測值與實際值之間的偏離關系。通常在深度學習中,我們每一次訓練迭代出來的新模型,都會拿訓練數據進行預測,偏差就反應在預測值與實際值匹配度上,比如通常在keras運行中看到的準確度為96%,則說明是低偏差;反之,如果準確度只有70%,則說明是高偏差。
  • 方差(variance):方差描述的是訓練數據在不同迭代階段的訓練模型中,預測值的變化波動情況(或稱之為離散情況)。從數學角度看,可以理解為每個預測值與預測均值差的平方和的再求平均數。通常在深度學習訓練中,初始階段模型復雜度不高,為低方差;隨著訓練量加大,模型逐步擬合訓練數據,復雜度開始變高,此時方差會逐漸變高。

?

二、圖形定義

     

  這是一張常見的靶心圖。可以想象紅色靶心表示為實際值,藍色點集為預測值。在模型不斷地訓練迭代過程中,我們能碰到四種情況:

  • 低偏差,低方差:這是訓練的理想模型,此時藍色點集基本落在靶心范圍內,且數據離散程度小,基本在靶心范圍內;
  • 低偏差,高方差:這是深度學習面臨的最大問題,過擬合了。也就是模型太貼合訓練數據了,導致其泛化(或通用)能力差,若遇到測試集,則準確度下降的厲害;
  • 高偏差,低方差:這往往是訓練的初始階段;
  • 高偏差,高方差:這是訓練最糟糕的情況,準確度差,數據的離散程度也差。

?

三、數學定義

  我們從簡單的回歸模型來入手,對于訓練數據集S = {(xi , yi)},令yi = f(xi) +?ε,假設為實際方程,其中ε是滿足正態分布均值為0,標準差為σ的值。

  我們再假設預測方程為h(x) = wx + b,這時我們希望總誤差Err(x) =?∑i?[yi - h(xi)]2 能達到最小值。給定某集合樣本(x, y),我們可以展開誤差公式,以生成用方差、偏差和噪音組合的方式。

  在此之前,我們來引入一個輔助公式,令z為滿足正態分布的隨機值集合,再令z = E(z),即z 為z的平均值。

  則E [(z - z)2] = E [z2 -2zz + z2]

         = E [z2] - 2E [z]z + z2 ? ? 注:E[z] = z,因為z是一個均值,其誤差即是自己

         =?E [z2] - 2zz?+?z2 

         =??E [z2] -?z2 

  可以得到一個輔助公式:?E [z2] =?E [(z -?z)2] +?z2?,最后讓我們來開展誤差公式:

  E?[y?- h(x)]2?= E [y2 - 2yh(x) + h(x)2]?

        = E [y2] - 2E[y] E[h(x)] + E[h(x)2]

        = E [(y - y)2] + y2 - 2E[y]h(x) + E [(h(x) - h(x))2] + h(x)2 ? ? ? ?

        =?E [(y - (fx))2] + f(x)2?- 2f(x)h(x)?+ E [(h(x) -?h(x))2] +?h(x)2 ??

        =?E [(h(x) -?h(x))2] + (h(x) - f(x))2 + E[(y - (fx))2] ? ? ? ? ? ? ? ? ??

        = variance + bias2 + noise

  注:y?= E[y] = E[f(x) + ?ε] = E[f(x)] + E[ε] = E[f(x)] = f(x),ε均值已經被假定為0,對于具體的x,其E[f(x)] = f(x)

  由此可見,誤差 = 方差 + 偏差2 + 噪音 組成,一般來說,隨著模型復雜度的增加,方差會逐漸增大,偏差會逐漸減小,見下圖:

?

  

四、過擬合、欠擬合和恰好

  偏差的變化趨勢相信大家都容易理解,隨著模型的不斷訓練,準確度不斷上升,自然偏差逐漸降低。但方差的變化趨勢卻不易理解,為何訓練初始階段是低方差,訓練后期易是高方差?

  注意方差的數學公式為:E [(h(x) -?h(x))2] ,也就是說為每個預測值與預測均值差的平方和再求平均數,可以表現為一種波動變化,低方差意味低變化,高方差意味高變化。那我們可以通過訓練的不同階段來直觀感受方差的變化:

  上圖為訓練初始階段,我們的模型(藍線)對訓練數據(紅點)擬合度很差,是高偏差,但藍線近似線性組合,其波動變化小,套用數學公式也可知數值較小,故為低方差,這個階段也稱之為欠擬合(underfitting),需要加大訓練迭代數。

  上圖為訓練的后期階段,可明顯看出模型的擬合度很好,是低偏差,但藍線的波動性非常大,為高方差,這個階段稱之為過擬合(overfitting),問題很明顯,藍線模型很適合這套訓練數據,但如果用測試數據來檢驗模型,就會發現泛化能力差,準確度下降。

  因此我們需要兩者之間的一個模型。

  上圖這個藍色模型可認為是“恰好”的一個模型,既能跟訓練數據擬合,又離完美擬合保持一定距離,模型更具通用性,用測試數據驗證會發現準確度也不錯。

  這個模型怎么來呢?我們可以采取很多手段,比如:

  • 加大數據量,數據越多,自然其泛化能力也越強。但現實情況我們不能像大公司那樣擁有很多資源,那怎么辦?一種可行的辦法就是根據已有的數據做數據增強,比如旋轉、反轉、白增強等操作造出很多數據;
  • 正則化(regularization,個人感覺中文翻譯未能表達英文原義,應該是表達約束、調整的意思),通常來說有dropout、L2、L1等正則化手段;
  • 提早結束訓練,防止訓練過擬合化。

?

五、結論  

  由此看出,深度學習不但是一門科學,更像是一門藝術。我們選擇一個好的模型,不斷調整參數來跨越欠擬合,避免過擬合,建立心目中理想的“恰好”模型。這看上去更像一個不斷升級打怪的經驗之學,需要我們多多練習,但其背后支撐的數學原理也是需要我們去好好理解和掌握。

?

轉載于:https://www.cnblogs.com/hutao722/p/9921788.html

總結

以上是生活随笔為你收集整理的深度学习基础系列(八)| 偏差和方差的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。