您可以在我的個人博客 blog.pengwill.info 獲得更好的閱讀體驗。
思維導圖
系統的誤差來自兩個方面,Bias和Variance
數理統計中的方差和偏差
當我們需要隨機變量x所服從的總體分佈的均值和方差的時候,有不同的估計方法。然而在選擇估計量進行估計的時候,可能會有偏差,據此可以分爲有偏估計和無偏估計。下面爲均值和方差的估計方法。
估計均值μ
- 首先從總體抽樣,獲得一個樣本集,如抽N個樣本X1,X2,…,XN構成一個樣本集
- 計算此樣本集的均值m=N∑i=1NXi
- 多次採樣,即得出多個樣本集,如共得到K個樣本集,計算樣本集均值的均值E[m]=E[N1∑i=1NXi]=N1E[∑i=1NXi]
上述表述即爲中心極限定理,m爲總體均值μ的一個無偏估計。
估計方差σ2
- 首先從總體抽樣,獲得一個樣本集,如抽N個樣本X1,X2,…,XN構成一個樣本集
- 計算此樣本集的均值m=N∑i=1NXi,計算樣本集的二階中心矩S2=N1∑i=1N(Xi−m)2
- 多次採樣,即得出多個樣本集,如共得到K個樣本集,計算樣本集二階中心距的均值E[S2]=N1E[∑i=1N(Xi−m)2]
- 此時的估計爲有偏估計,與真實的方差之間的差別爲E[S2]=NN−1σ2
由此可知S2爲總體方差的σ2的一個有偏估計。
爲什麼會有這樣的結果
假定我們對於參數爲θ的某個分別連續採樣,想要通過觀測值來估計參數θ,估計的到的參數記爲θ^,那麼估計的偏差爲Bias[θ^]=E[θ^]−θ。那麼無偏估計爲Bias[θ^]=0的估計。
對於均值的估計偏差
\[
\begin{align*}
E[m] &=\frac{1}{N}E[\sum_{i=1}^{N}X_i] \\ &= \frac{1}{N}\sum_{i=1}^NE(X_i) \\ &=\frac{1}{N}\sum_{i=1}^{N}\mu\&=\mu
\end{align*}
\]
可以看到樣本均值即爲總體均值,故爲無偏估計。
對於方差估計偏差
E[S2] =E[n1i=1∑n(Xi−m)2]=E[n1i=1∑n((Xi−μ)−(m−μ))2]=E[n1i=1∑n((Xi−μ)2−2(m−μ)(Xi−μ)+(m−μ)2)]=E[n1i=1∑n(Xi−μ)2−n2(m−μ)i=1∑n(Xi−μ)+n1(m−μ)2⋅n]=E[n1i=1∑n(Xi−μ)2−n2(m−μ)i=1∑n(Xi−μ)+(m−μ)2]=E[n1i=1∑n(Xi−μ)2−n2(m−μ)⋅n⋅(m−μ)+(m−μ)2]=E[n1i=1∑n(Xi−μ)2−2(m−μ)2+(m−μ)2]=E[n1i=1∑n(Xi−μ)2−(m−μ)2]=E[n1i=1∑n(Xi−μ)2]−E[(m−μ)2]=σ2−E[(m−μ)2]=(1−n1)σ2<σ2
當樣本均值m和總體均值μ相等時,二階中心矩的期望和總體方差σ2相等,否則二階中心距期望小於總體方差σ2。
話說回來
如果我們對一個量進行估計,若估計的本身就是有偏的,那麼無論我們估計的再準,最終結果也會有偏差。這就好比使用二階中心距來估計總體方差,無論二階中心距計算的再準,也是會有偏差的(即bias)。使用修正後的公式後則不會出現這個問題。
如果我們在估計時選擇無偏估計量,那麼如何進一步評價這個估計量的好壞呢?我們一般認爲越有效的估計量越好。有效性指的是估計量與總體參數的離散程度,即方差的大小,方差越小,則估計量越有效。
模型的方差和偏差
模型的方差
簡單的模型受數據的影響較小,因爲簡單模型參數少,在數據不同的時候,變化較小。
複雜的模型受數據的影響較大,因爲複雜模型參數多,在數據不同的時候,變化較大。
複雜系統的穩定性小,簡單模型的穩定性大。
模型的偏差
簡單模型的偏差可能會很大,因爲簡單模型所能表達的有限,故有可能會使得最後的偏差很大。當出現這種情況的時候,這是說明沒有很好的擬合數據(underfitting)。
複雜模型的表達能力更強,但是受數據影響較大,即每次得出的模型方差會很大,出現這種情況的時候,說明已經過頭擬合了數據(overfitting)。
模型診斷
判斷
- 如果模型在訓練集上的表現很差(高bias),即不能很好的擬合訓練集,則說明模型比較簡單,處於欠擬合(underfitting)的狀態。
- 如果模型在訓練集上的表現很好,但是在測試集上的表現不好(高variance),則說明模型複雜,且處於過擬合(overfitting)的狀態。
調整
- 當欠擬合的狀態,應該提高模型複雜度,在模型中加入更多的特徵。
- 當過擬合的時候,應該增加數據量,或者增加正則項。
模型選擇
我們希望找到一個模型,他的方差很小,他的偏差也很小。
劃分驗證集
將Training Set分爲兩組,一組爲Training Set,另一組爲Validation Set(驗證集)。首先使用Training Set進行訓練,訓練出多個模型後,使用Validation Set選擇一個誤差最小的模型。然後提交這個模型。這個模型在Public Set上的誤差可以代表在Private Set上的誤差。
切記不要通過Public Set來調整模型。比如在貓狗分類中,查看在Public Set上誤分類的貓,來進一步提高貓的分類效果。這樣的操作相當於過擬合Public Set,會導致看起來在Public Set上的效果很好,但是最後在Private Set的效果很差,最後訓練的模型沒有很好的泛化能力。
N折交叉驗證
將Training Set平均爲N組,每一次訓練,都將N組中其中一組作爲Validation Set,其餘作爲Training Set。當訓練好多個模型的時候,進行評估時,同樣執行N次,每一次用其中的Validation Set評估,計算出誤差,最後求出N個誤差的均值,作爲這個模型的平均誤差。選取平均誤差最小的作爲最後的模型。