1.訓練誤差和泛化誤差
訓練誤差:模型在訓練資料集上表現出的誤差。
泛化誤差:模型在任意乙個測試資料樣本上表現出的誤差的期望,並常常通過測試資料集上的誤差來近似。
機器學習模型應關注降低泛化誤差。
2.模型選擇
(1)驗證資料集:測試資料集、訓練資料集之外的資料集,用於調參。
(2)k折交叉驗證:一種常用方法,通常在訓練資料不夠的時候。指將所有資料(原始訓練資料集)分割成k個不重合的子資料集,然後我們做k次模型訓練和驗證。每一次,我們使用乙個子資料集驗證模型,並使用其他k-1個子資料集來訓練模型。在這k次訓練和驗證中,每次用來驗證模型的子資料集都不同。最後,我們對這k次訓練誤差和驗證誤差分別求平均。
3.過擬合和欠擬合
欠擬合:模型無法得到較低的訓練誤差。
過擬合:模型的訓練誤差遠小於它在測試資料集上的誤差。
兩個重點因素:
(1)模型複雜度:多項式擬合的目標是找到乙個k階多項式函式。多項式函式擬合也使用平方損失函式。特別地,一階多項式函式擬合又叫線性函式擬合。模型複雜度過大,易過擬合;過小,以欠擬合。
(2)訓練資料集大小:樣本數過少時,易發生過擬合。泛化誤差不會隨訓練資料集中樣本數增加而增大。在計算資源允許的範圍之內,通常希望增大訓練資料集。
1.初始化模型引數:n_train為訓練樣本數,n_test為測試樣本數,poly_features為聚合特徵(x,x2,x3)。
2.定義、訓練和測試模型:semilogy函式(化度函式),用來方便觀察訓練誤差和泛化誤差的關係。
3.三階多項式函式擬合(正常):輸入為poly_features,訓練到最後的時候,訓練誤差和泛化誤差都達到乙個比較小的水平。它們的值也一直是非常接近的。
4.線性函式擬合(欠擬合):輸入改為features即x,最後訓練和測試的誤差都是在102的級別,沒有達到很好的擬合效果,是乙個欠擬合的現象。
5.訓練樣本不足(過擬合):輸入的是poly_features,但是樣本數只有2個(0,1)。最後訓練誤差達到比較低的水平,但測試誤差還是在很高的水平(102)。
1.方法:權重衰減等價於l2範數正則化(regularization)。正則化通過為模型損失函式新增懲罰項使訓練出的模型引數值較小,是應對過擬合的常用手段。
2.l2範數正則化:l2範數懲罰項指的是模型權重引數每個元素的平方和與乙個正的常數的乘積。這種新增l2範數懲罰項來改變權重的方式,稱為權重衰減。權重衰減通過懲罰絕對值較大的模型引數為需要學習的模型增加了限制,這可能對過擬合有效。
3.高維線性回歸實驗從零開始的實現:
(1)初始化模型引數
(2)定義l2範數懲罰項:(w2)求和,正數留在了後面步驟。
(3)定義訓練和測試:fit_and_plot函式,新增懲罰項,傳入lambd,即要乘的正數。求權重後加上懲罰項。
(4)觀察過擬合:使lambd=0,即不使用權重衰減來進行訓練。
(5)使用權重衰減:使lambd=3,最後訓練誤差達到10-3,測試誤差也達到10-1,已經達到乙個很好的效果了。
4.簡潔實現:
用pytorch來完成fit_and_plot_pytorch函式的定義。引數初始化用init模組來完成,優化函式採用optim模組中隨機梯度下降函式(權重衰減已經封裝在其中,採用乙個weight_decay值來控制)。
在隱藏層對每乙個隱藏單元設定丟棄的概率。丟棄法不改變其輸入的期望值(均值)。用來應對過擬合。
1.丟棄法從零開始的實現:dropout函式,assert來判斷丟棄率drop_prob是否合法,keep_prob為儲存率,若為零則丟棄x。net函式,使用了兩層隱藏層,需輸入兩個丟棄率。evaluate_accuracy函式來判斷模型準確率,也需要考慮如丟棄法,net.eval函式為評估模式,自動關閉丟棄法,net.train函式則改回訓練模式(開啟丟棄法)。
2.簡潔實現:神經網路的定義直接呼叫nn.sequential函式來進行定義,定義了兩個線性的隱藏層,包含丟棄法。隨後用init模組進行初始化。用optim模組進行優化。最後封裝、訓練。
1.欠擬合現象:模型無法達到乙個較低的誤差。
2.過擬合現象:訓練誤差較低但是泛化誤差依然較高,二者相差較大。
伯禹 公益AI學習打卡 Task02
1.文字預處理 記錄一哈文字資料的常見預處理步驟 1 讀入文字 2 分詞 3 建立字典,將每個詞對映到乙個唯一的索引 index 4 將文字從詞的序列轉換為索引的序列,方便輸入模型 2.基於統計學的語言模型 主要理論是乙個n元語法,它是乙個基於n 1階馬爾可夫鏈的概率語言模型,主要解釋如下 3.迴圈...
深度學習 學習筆記二
理論 1.線性判別函式和決策邊界 線性判別函式 若分屬於 1,2的兩類模式可用一方程d x 0來劃分,那麼稱d x 為判別函式,或稱判決函式 決策函式。乙個線性分類模型 linear classi cation model 或線性分類器 linear classi er 是由乙個 或多個 線性的判別...
深度學習筆記 二
miou計算方法 p ij表示類 i被識別為類j的畫素總數,即p ii表示識別正確的真正例 true positive,tp 總數,而p ij和p ji則分別表示識別錯誤的假正例fp false positive,fp 總數和假反例fn false negative,fn 總數。語義分割j and ...