多項式擬合,模型的複雜度以及權重的變化

1.1多項式擬合

生成目標數據

目標數據集的生成方式:
  • 首先計算函數sin (2πx) 的對應的值
  • 然後給每個點增加一個小的符合高斯分佈的隨機噪聲
  • 通過使用這種方式產生數據,它們擁有一個內在的規律,這個規律是我們想要學習的。同時也包含隨即噪聲,這種噪聲可能由隨機的過程產生,也可能是由於存在沒有被觀察到的具有變化性的噪聲源。

訓練數據和測試數據:

  • 訓練數據用來訓練多項式模型,來學習數據中的規律
  • 測試數據,測試模型在新數據上的泛化能力(測試集由100個數據點組成,這100個數據點的生成方式與訓練集的生成方式完全相同,但是在目標值中包含的隨機噪聲的值不同.)

1.2數據可視化:

  • 10 個數據點組成的訓練集的圖像,用藍色圓圈標記.
  • 100 個數據點組成的測試數據集,用黃色的圓圈標記.
  • 紅色曲線給出了用來生成數據的sin (2πx) 函數.
  • 我們的目標是對於某些新的 x 值,預測 y 的值.

在這裏插入圖片描述

1.3 多項式函數擬合

f(x,w)=w0+w1x+w2x2+...+wMxM=j=0Mwjxj f(x, w) = w_0 + w_1x + w_2x^2 + ... + w_Mx^M = \sum^{M}_{j=0} w_jx^j

  • MM : 多項式的階數
  • ww : 代表係數向量, w0,w2,w3,....wmw_0,w_2,w_3,....w_m

1.4 誤差函數

  • 誤差函數衡量了對於任意給定的 ww 值,函數 f(x,w)f(x, w) 與訓練集數據目標值的差別。

E(w)=12i=1N(f(xi,w)y)2 E(w) = \frac{1}{2} \sum^{N}_{i=1} (f(x_i, w) - y)^2

  • ww : 係數向量,通過最小化誤差函數來確定
  • f(x,w)f(x, w) : 從數據中學習得到的函數
  • 12\frac{1}{2} : 係數爲了方便計算
  • NN : 樣本的數量

1.5 多項式特徵

例如,如果輸入樣本是二維的並且形式爲[ab][a,b],則2次多項式特徵是[1aba2abb2][1,a,b,a^2,ab,b^2]

sklearn,提供了多項式特徵的方法:
from sklearn.preprocessing import PolynomialFeatures

X = np.arange(6).reshape(3, 2)

poly = PolynomialFeatures(2)
poly.fit_transform(X)

>>> array([[ 1.,  0.,  1.,  0.,  0.,  1.],
          [ 1.,  2.,  3.,  4.,  6.,  9.],
          [ 1.,  4.,  5., 16., 20., 25.]])

1.6 LinearRegression擬合多項式特徵

在這裏插入圖片描述

1.6.1 擬合結果

  • ( M = 0 )和一階( M = 1 )多項式對於數據的擬合效果相當差
  • 三階( M = 3 )多項式似乎給出了對函數sin (2πx) 的最好的擬合
  • 當我們達到更高階的多項式( M = 9 ),我們得到了對於訓練數據的一個完美的擬合事實上,E(w)=0E(w^*) = 0
  • 高階多項式特徵雖然完美擬合,然而,但是,擬合的曲線劇烈震盪,就表達函數sin (2πx) 而言表現很差。
  • 圖四這種行爲叫做過擬合( over-fitting )

1.7 測試

測試:通過對新數據的預測情況判斷模型(f(x,w)f(x, w))的泛化性。

測試的方式爲:
  • 通過一個額外的測試集,這個測試集由100個數據點組成,這100個數據點的生成方式與訓練集的生成方式完全相同,但是在目標值中包含的隨機噪聲的值不同。我們可以定量考察模型的泛化性與 M(階數) 的關係,對於每個 M ,計算測試集的 E(w)E(w)

有時候使用根均方(RMS)誤差更方便。這個誤差由下式定義:
Erms=2E(w)N E_{rms} = \sqrt{\frac{2E(w^*)}{N}}

  • N : (樣本點的數量)以相同的基礎對比不同大小的數據集,
  • 平方根確保了ErmsE_{rms}與目標變量yy使用相同的規模和單位進行度量。
     在這裏插入圖片描述
學習曲線

在這裏插入圖片描述

1.7.1 測試結果

  • M(階數)過大過小都會造成測試誤差很大
  • 當 M 的取值爲 3 ≤ M ≤ 6 時,測試誤差較小

1.8 不同階多項式的係數

0 1 2 3 4 5 6 7 8 9
0 0.0 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
1 0.0 -1.438176 -0.985530 12.997090 17.383902 5.641664 -0.256404 1.924420 -4.560926 -215.451195
2 0.0 0.000000 -0.452646 -37.304887 -59.458286 38.420548 111.186592 75.201286 205.987591 5077.185412
3 0.0 0.000000 0.000000 24.568161 60.101335 -216.569502 -529.761376 -316.364404 -1302.830510 -45179.500599
4 0.0 0.000000 0.000000 0.000000 -17.766587 299.360835 904.596578 301.203617 4022.592501 210149.339158
5 0.0 0.000000 0.000000 0.000000 0.000000 -126.850969 -665.218737 214.704064 -7532.869930 -569098.691158
6 0.0 0.000000 0.000000 0.000000 0.000000 0.000000 179.455923 -459.109693 8579.726633 928109.751580
7 0.0 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 182.447319 -5351.534105 -897238.544636
8 0.0 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 1383.495356 473256.605051
9 0.0 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -104860.691043

係數分析:

  • 對於 M = 9,訓練集的誤差爲0,此時的多項式函數有10個自由度,對應於10個係數w0,...w9w_0,...w_9,所以可以調節模型的參數,使得模型與訓練集中的10個數據點精確匹配。
  • 因爲高階多項式包含了所有低階的多項式函數作爲特殊情況。 M = 9 的多項式因此能夠產生至少與 M = 3 一樣好的結果。
  • 隨着 M 的增大,係數的大小通常會變大。對於 M = 9 的多項式,通過調節係數,讓係數取相當大的正數或者負數,多項式函數可以精確地與數據匹配,但是對於數據之間的點(尤其是臨近區間端點處的點),函數表現出劇烈的震盪。直覺上講,發生了這樣的事情:有着更大的 M 值的更靈活的多項式被過分地調參,使得多項式被調節成了與目標值的隨機噪聲相符。

1.9 曾加訓練數據的數量

  • 給定同樣的階數(即模型的複雜度)
  • 對比在相同階數和測試數據下,不同規模數據上模型的泛化情況
  • 紅色模型的擬合曲線
增加訓練數據.10倍,100倍

在這裏插入圖片描述

不同量級訓練集對模型權重的影響

在這裏插入圖片描述
 在這裏插入圖片描述

1.9.1結果分析

  • 給定的模型複雜度,當數據集的規模增加時,過擬合問題減弱
  • 數據集規模越大,我們能夠用來擬合數據的模型就越複雜(即越靈活)
  • 數據點的數量不應該小於模型的可調節參數的數量的若干倍(比如5或10)
  • 因此,我們需要根據訓練數據的規模來限制模型的複雜度(即參數的數量),根據待解決的問題的複雜性來選擇模型的複雜性

1.10 正則化(regularization)

  • 正則化是一種控制過擬合現象的技術(即可以在不限制模型複雜度的情況下,降低過擬合)
  • 一般給誤差函數增加一個懲罰項,使得係數不會達到很大的值(減小系數的值)
增加L2正則項後的誤差函數

E (w)=12i=1N(f(x,w)y)2+λ2w2 E^~(w) = \frac{1}{2} \sum^{N}_{i=1} (f(x, w) - y)^2 + \frac{\lambda}{2}\parallel w^2 \parallel

  • w2=w02+w12+w22+....wM2\parallel w^2 \parallel = w^{2}_0 + w^{2}_1 + w^{2}_2 + .... w^{2}_M
  • λ\lambda : 控制正則化的程度,λ\lambda越大,ww的值越小.
  • 注意,通常係數w0w_0從正則化項中省略

不同正則化係數對模型泛化效果的影

...未完待續

發佈了200 篇原創文章 · 獲贊 204 · 訪問量 47萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章