深度學習 PyTorch實戰計算機視覺2

2021-09-28 17:58:04 字數 1649 閱讀 1514

搭建的模型是否發生過擬合或者欠擬合可作為評價模型擬合程度好壞的指標。欠擬合和過擬合地模型**新資料地準確性都不理想,最顯著的區別就是欠擬合的模型對已有資料地匹配性很差,但是對雜訊不敏感;而過擬合的模型對資料的匹配性太好,對雜訊很敏感。

舉例:

上圖為已有的房屋面積與**的關係資料。

上圖就是乙個欠擬合模型。雖然捕獲了資料的一部分特徵,但是不能很好地對新資料進行準確**。這個欠擬合模型缺點明顯,若輸入的新資料的真實**在模型的上下抖動,那麼相同面積的房屋在模型中**的**會與真實**有較大的誤差。

上圖是乙個比較不錯的擬合模型,從某種程度上講,該模型已經捕獲了原始資料的大部分特徵,與欠擬合模型相比,不會存在那麼嚴重的問題。

解決欠擬合問題的三個方法:

增加特徵項:多數情況下,出現欠擬合是因為沒有準確把握資料的主要特徵,所以可以嘗試在模型中加入更多的、和原始資料有重要相關性的特徵來訓練模型,這樣得到的模型可能會有更好的泛化能力。

構造複雜的多項式:這種方法比較容易理解,例如:一次項函式就是一條直線,二次項函式就是一條拋物線,一項項和二次項函式的特性決定了它們的泛化能力是有侷限性的。如果資料不在直線或者拋物線附近,那麼必然會出現過擬合的情況。所以可以通過增加函式的次項來增強模型的變化能力,從而提公升泛化能力。

減少正則化引數:使用正則化引數是為了防止過擬合,但若模型已經出現了欠擬合的情況,就可以通過減少正則化引數來消除欠擬合。

舉例:上圖為房屋面積與**之間的關係資料。

上圖是乙個過擬合模型,已經過度捕獲了原始資料的特徵,受原始資料中雜訊資料的影響很嚴重。

如上圖,若雜訊資料嚴重偏離既定的資料軌道,則擬合出來的模型會發生很大改變,這個影響是災難性的。

解決過擬合問題的三個辦法:

增大訓練的資料量:多數情況下,發生過擬合是因為用於訓練模型的資料量太小,模型過度捕獲資料的有限特徵,就會出現過擬合。增加訓練資料後,模型就能捕獲資料的更多特徵,就不會過於依賴資料的個別特徵。

採用正則化方法:正則化一般指在目標函式之後加上範數,用來防止模型過擬合。實踐中常用的正則化方法有l0正則、l1正則和l2正則。

dropout方法:dropout方法在神經網路模型中使用頻率高。簡單來說,dropout就是在神經網路模型進行前向傳播過程中,隨機選取和丟棄指定層次之間的部分神經連線。因為整個過程是隨機的,所以能有效防止過擬合。

《深度學習之pytorch實戰計算機視覺》筆記

後向傳播 優化函式 1.梯度下降 pytorch使用autograd 2.批量梯度下降 多個資料集組成乙個批次,在進行梯度下降 3.隨機梯度下降 選取部分資料集 tensor運算 1.abs 絕對值 2.add 相加 3.clamp 裁剪 input,max,min 4.div 每個元素逐個求商 5...

pytorch 深度學習

pytorch深度學習實踐 訓練集 開發集 模型評估 測試集。f x wx b f x wx b f x w x bloss 乙個樣本 cost mean square error training set 區域性最優,不一定全域性最優。鞍點 梯度為0,但無法繼續迭代。w w c ost ww w ...

深度學習實戰(2)用Pytorch搭建雙向LSTM

應最近的課程實驗要求,要做lstm和gru的實驗效果對比。lstm的使用和gru十分相似,歡迎參考我的另外一篇介紹搭建雙向gru的blog 參考pytorch介紹lstm的官方文件 其中其定義層時的引數宣告方法與gru完全一致 所以,我定義lstm使用以下 torch.nn.lstm out cha...