過擬合,欠擬合,並行

2021-10-05 20:47:02 字數 2021 閱讀 3986

假設我們正在嘗試為以下資料集構建機器學習模型。

出於簡單性原因,讓我們在示例中選擇「單變數線性回歸」。 線性回歸使我們能夠將數字輸入對映到數字輸出,從而將一條線插入資料點。 這種線擬合過程是過度擬合和欠擬合的媒介。

過擬合

當我們在資料集上執行訓練演算法時,我們允許總成本(即從每個點到線的距離)隨著更多的迭代而變小。 長時間執行此訓練演算法可以使總成本降至最低。 但是,這意味著該線將適合所有點(包括雜訊)。

回到我們的示例,如果我們使學習演算法長時間執行,那麼它最終將以以下方式擬合該行:

看起來不錯吧?但是可靠嗎?並不是的。

線性回歸之類的演算法的本質是捕獲主導趨勢並使我們的線適應該趨勢。在上圖中,該演算法捕獲了所有趨勢,但未捕獲主要趨勢。如果我們想在超出我們所能限制的輸入範圍內測試模型(即泛化),那條線會是什麼樣?無法得出答案。因此,輸出不可靠。如果該模型沒有捕捉到我們所有人都能看到的主導趨勢(在我們的案例中為正增長),那麼它就無法為從未見過的輸入**可能的輸出-違背了機器學習的初衷!

過度擬合是指總體成本確實很小,但模型的推廣不可靠的情況。這是由於模型從訓練資料集中學習「太多」。

解決方案

訓練更多資料

並非每次都有效,但是訓練更多資料可以幫助演算法更好地檢測訊號。

當然,並非總是如此。 如果我們僅新增更多嘈雜的資料,可能仍無濟於事。 因此,您應始終確保資料乾淨且相關。(清洗資料)

刪除功能

一些演算法具有內建功能選擇。

對於那些沒有的,您可以通過刪除不相關的輸入功能來手動提高其通用性。

正則化正則化是指廣泛地用於人為地迫使模型更簡單的技術。

方法將取決於您所使用的學習者的型別。 例如,您可以修剪決策樹,在神經網路上使用dropout或在回歸中向成本函式新增懲罰引數。

通常,正則化方法也是一種超引數,這意味著可以通過交叉驗證對其進行調整。

我們在這裡對演算法和正則化方法進行更詳細的討論。

欠擬合

我們希望模型從訓練資料中學習,但我們不希望模型學習太多(即模式太多)。 一種解決方案是盡早停止培訓。 但是,這可能會導致模型無法從訓練資料中學習足夠的模式,甚至可能無法掌握主導趨勢。 這種情況稱為欠擬合。

解決方法

增加ml模型中引數的大小或數量。

增加模型的複雜性或型別。

增加訓練時間,直到最小化ml中的成本函式。

並行

可以想到幾種在多台機器和多核之間並行化和/或分布計算的方法。 我列出了一些用於縮短培訓時間的方法:

本地訓練:

-模型和資料儲存在單個計算機上。並行和分布式深度學習。

多核處理:這裡,我們假設整個模型和資料可以放入具有多核的單台計算機的記憶體中。 這些多個核心共享記憶體(pram模型)。 有兩種使用多個核心來加快培訓過程的方法。

∗使用核心在每一層中一次處理多個影象。

∗使用多個核心並行執行多個迷你批次的sgd。

–將gpu用於計算密集型子例程,例如矩陣乘法。

–同時使用多核處理和gpu,其中所有核共享gpu,並且將計算密集型子例程推送到gpu。

分布式訓練:當不可能在單個機器上儲存整個資料集或模型時,有必要在多台機器上儲存資料或模型。

–資料並行性:資料分布在多個計算機上。 如果資料太大而無法儲存在單台機器上或實現更快的訓練,則可以使用此方法。

–模型並行性:如果模型太大而無法放入單台計算機中,則可以將其拆分為多台計算機。 例如,單層可以適合單台機器的儲存器,並且正向和反向傳播涉及以序列方式從一台機器到另一台機器的輸出通訊。 僅當模型無法裝入單個機器且不能過多地固定訓練過程時,才訴諸模型並行性。

在模型並行性中,分布式系統中的不同機器負責單個網路中不同部分的計算-例如,神經網路中的每一層都可以分配給不同的機器。

在資料並行性中,不同的機器擁有模型的完整副本; 每台機器僅獲取資料的不同部分,並且以某種方式組合來自每台機器的結果。

過擬合欠擬合

一篇文章,帶你明白什麼是過擬合,欠擬合以及交叉驗證 在本文中也許你會掌握機器學習中最核心的概念 偏差 方差權衡.其主要想法是,你想建立盡可能 準確並且仍能適用於新資料的模型 這是泛化 危險的是,你可以輕鬆的在你制定的資料中建立過度擬合本地噪音的模型,這樣的模型是無用的,並且導致弱泛化能力,因為雜訊是...

過擬合 欠擬合

無論在機器學習還是深度學習建模當中都可能會遇到兩種最常見結果,一種叫過擬合 over fitting 另外一種叫欠擬合 under fitting 所謂過擬合 over fitting 其實就是所建的機器學習模型或者是深度學習模型在訓練樣本中表現得過於優越,導致在驗證資料集以及測試資料集中表現不佳。...

欠擬合與過擬合

在用機器學習搭建模型時,經常會碰到這樣一種情況,你的模型演算法在樣本資料中匹配的非常完美。但用新資料測試,發現模型結果和實際差距非常大。那麼恭喜你!你掉進了機器學習中常見的乙個大坑 過擬合。什麼是過擬合呢?機器學習本質上是通過建立資料模型,使其和現有資料相吻合,從而找到資料中內在的規律。如下面三張圖...