機器學習02 機器學習中「損失loss」的詳解

2021-10-08 02:28:38 字數 1942 閱讀 7307

東陽的學習記錄,堅持就是勝利!

如何判斷model的bias和variance時不是過大

如何處理bias大和variance大

如何選擇適當的模型

應該這樣做

loss有兩個部分:來自bias的loss,和來自variance的loss。

對於同乙個模型,使用不同資料集訓練會得到不同的引數值。bias表示這些不同模型訓練出來的總多模型**值的平均與真實值的誤差;variance表示這些不同結果與真實值的誤差和。

更複雜的模型並不總是有更好的表現。

如果將不同資料集的**值求平均為f

∗f^*

f∗,是接近真實值f

ff的。

下面是實驗結果。從圖中可以看到,雖然五次方的model看著亂七八糟,每一次的誤差都比較大,但是平均起來是接近與真實值的(因為其對資料樣本的敏感程度高,容易出現過擬合),有著比較小的bias。比較簡單的一次model每一次的結果都有更小的誤差,但是有著比較大的bias。

如下圖所示:圖中的藍色圈表示function space(類似值域,比較簡單的function是包含於比較複雜的function的。)。當model比較簡單時,此時function space不包含target,此時無論怎麼訓練都只能接近於target。當model比較複雜時,雖然包含target,但是並沒有能力找到真實值,但是平均起來接近。

如下圖所示,當model月來越複雜時,bias帶來的誤差越來越小,但同時variance帶來的誤差越來越大(過擬合);反之,model越簡單,variance帶來的誤差越小,但是此時bias誤差大(欠擬合)。

為什麼會出現這樣的影響

因為比較複雜的模型對於資料樣本更敏感,導致了variance比較大,其function space較大(過擬合);model簡單時,雖然有著比較小的variance,但由於其function space不包含target,所以bias比較大(欠擬合)。

對於bias過大,則需要重新設計模型(單純增大資料量是沒用的)

增大輸入資料量(資料增強)

正則化

不要使用自己手上的test資料集來選擇最好的model。這個結果並不可靠(不具有普適性,只是看起來比較好)。

可能出現對於這個測試集表現比較好,但是另乙個資料集表現差。(所以說並不可靠)

將訓練集分出一部分進行測試,這樣在公共資料集上的表現才能真正反映model的好壞。

防止分「壞」, 分做多份,取平均值最小的部分。

機器學習 機器學習中的損失函式

在機器學習中,損失函式是用來衡量 結果與實際值之間差別大小的指標。一般的損失函式有5五種 l m 01ifm 0ifm 0 主要用於maximum margin的分類演算法,如svm演算法。hinge損失函式的描述如下式 l y max 0 1 t y 這裡t 1 or 1 y是 值,而t 是實際真...

機器學習 降低損失

迭代學習可能會讓您想到 hot and cold 這種尋找隱藏物品 如頂針 的兒童遊戲。在我們的遊戲中,隱藏的物品 就是最佳模型。剛開始,您會胡亂猜測 w1 的值為 0。等待系統告訴您損失是多少。然後,您再嘗試另一種猜測 w1 的值為 0.5。看看損失是多少。哎呀,這次更接近目標了。實際上,如果您以...

機器學習中的損失函式

監督學習問題是在假設空間中選取模型作為決策函式,對於給定的輸入x,由f x 給出對應的輸出y,這個輸出的 值可能與真實值一致或不一致,可以用損失函式 loss function 或代價函式 cost function 來度量 錯誤的程度。f x 1,y f x 0,y f x f x 1 y f x...