為什麼深度學習對訓練樣本的數量要求較高?

時間 2021-05-12 00:04:39

1樓:趙文泉

目前本人在做的工作是降低深度學習的樣本使用數量,即主動學習(Active Learning)。

從實驗效果來看,(1)並不是說樣本量越多越好,主動學習方法可以大大降低樣本使用數量並且達到很好的實驗效果,沒有overfitting;(2)主動學習結合深度學習可以衍生出深度學習在少量樣本資料上的應用,如遙感影象分類(樣本比普通影象要少很多);(3)樣本本身是有雜訊的,每個樣本的價值是不同的。舉個例子來說,直接用支援向量來訓練乙個支援向量機跟用全部資料訓練乙個支援向量機是差不多的。同樣,深度學習的樣本中也存在這樣的重要的樣本和不重要的樣本。

關鍵是質量。以上

2樓:某翔

首先是因為curse of dimensionality。深度學習往往用於高維空間的學習,但是隨著維度的增高所需要的樣本數呈指數性增長。比如說對於Lipschitz連續的函式,minimax error rate是O(n^(-2/2+d)),其中d代表資料的維度。

由此可見,為了達到同樣的error rate,高維度比低維度函式所需要的樣本數多了太多。

其次在於深度學習並沒有足夠的利用好函式本身的資訊。之所以深度學習這麼流行,是因為他對於所學習的函式的限制非常少,幾乎毫無任何假設(乙個hidden layer的神經網路就可以估計所有的連續函式,而兩個hidden layer則可以估計所有函式)。但是這也帶來了乙個缺憾,當函式足夠smooth足夠光滑的時候深度學習可能難以利用好這個資訊。

相反,local polynomial之類方法可以用更高次數的多項式來估計這個函式,利用好這個條件,達到相對較低的錯誤率。

最後一點就在於深度學習常採用的是梯度下降。梯度下降,加上並不那麼高的learning rate,導致了在樣本量有限的時候各個節點的引數變化有限。何況各個節點的引數已開始往往是隨機的,如果運氣不好+樣本量有限,那麼最後有不那麼理想的錯誤率也是可想而知的。

3樓:Penguin Whisper

畫個train and test error VS 訓練資料量(training set size) 的learningcurve應該會更加直觀了。

可以找個簡單的資料集,比如說handwritten digits或者什麼的,分別用神經網路和決策樹或者knn做出這個learningcurve。

你會看到如果用乙個決策樹去解決這個問題,隨著資料量增加,比如加到500,1000的樣本,test error會不斷降低,train error會不斷增加。最後比如在資料量為2000的地方兩個error就收斂了,在0.20的附近比如說。

但是如果你用神經網路去解決這個問題,你會看到當資料量很小的時候train error就是0.01了,然後資料量從0增到500或者1000,train error還是0.01,就像是一條直線一樣。

直到資料量增加到幾萬的時候,才看到train error有略微明顯的增加(比如到了0.02)。 所以資料量從0到5w,train error只從0.

01增加到0.02。而test error雖然在降低,但是一直都比較大,所以overfitting一直存在。

但是我們有個信念是,如同樓上其他人說的,只要資料量足夠大,那麼test和train會沿著收斂的方向不斷前進,而當資料量足夠大,兩個曲線收斂的那一刻達到的時候,不僅兩個曲線收斂了,同時我們的train和test error都是比較低的,遠低於上面的knn或者其他簡單點的模型。 如果是DL深層的神經網路,可能要幾百萬才能夠達到收斂,那麼這個時候的test error肯定也是非常低的

所以過擬合,欠擬合,是衡量模型擬合能力與資料量之間相對關係的東西。

如果擬合能力很強,資料量相比擬合能力太少了,就是過擬合。 (在圖線上,過擬合就是兩個曲線之間有gap,兩個曲線沒有達到收斂狀態,還在向收斂的方向趨近)

如果擬合能力很弱,資料量大大超過擬合能力大大足夠了,就是欠擬合。(在圖線上,欠擬合就是兩個曲線收斂了,但是這個收斂對應的error值太高了。 那麼怎麼判斷這個值太高了呢?

這個是人視情況來決定的。)

所以從圖線的角度來說,對等劃分應該有三種狀態:

1) 如果兩個圖線未收斂狀態:這就叫過擬合。。

2) 如果兩圖線收斂了,但是收斂處的error值過高,不符合預期,就叫欠擬合。

3) 如果兩圖線收斂了,而且收斂處的error值比較低,符合預期,那麼就叫成功了。這正是我們想要的。

另外,其實具體情況,還是要根據問題本身的複雜程度,模型的複雜程度,資料量,這三者一起來看的。

如果有不對的地方請斧正。

4樓:仁孟

大家說的都有一定的道理,dl的模型本身的表達能力比較強,樣本太少資料就是過於簡單,容易出現overfitting,這必然導致泛化能力弱。

另外樓上有人提到乙個svm中「支撐向量的概念」,我一般稱之為「邊界樣本」,對之對應的便是「典型樣本」了。其實這類樣本是模型的後續優化是非常有意義的,後面好多人在原來的模型上採用hard negative mining出來了更好的效果,原因就在這裡了...

5樓:

我覺得模型沒有必要訓練資料多,而是需要更具有代表性的資料(可以理解為SVM中的支撐向量)。

1. 回到這個問題上來,深層神經網路之所以需要這麼多的訓練資料,就是因為我們根本不知道哪些是具有代表性的資料,訓練資料多了,這種包含代表性資料的概率就上來了。

2. 過擬合的問題,資料量不夠所謂代表資料不足,這樣得到的模型不容易形成對整個資料的描述,泛化能力不夠。

6樓:felix

深度學習都是幾w的特徵 ,用vc維來看,特徵越多模型越複雜,如果ein要跟eout差不多,那麼樣本量是需要很巨大的,也就是我們說的overfit的問題。一般來說資料量是要十倍的vc維

7樓:

對於classification model,有這樣乙個結論:

上式中N是訓練樣本數量,η大於等於0小於等於1,h是classification model的VC dimension。具體見wiki:VC dimension。

其中的這項:

也叫model complexity penalty。

可以看到,test error小於training error加上model complexity penalty的概率是1-η。如果現在訓練模型的演算法能使得training error很小,而model complexity penalty又很小,就能保證test error也很小的概率是 1-η。所以要使得模型的generalization比較好,要保證training error和model complexity penalty都能比較小。

觀察model complexity penalty項,可以看到,h越大,model complexity penalty就會越大。N越大,model complexity penalty則會越小。大致上講,越複雜的模型有著越大的h(VC dimension),所以為了使得模型有著好的generalization,需要有較大的N來壓低model complexity penalty。

這就是為什麼深度學習的模型需要大量的資料來訓練,否則模型的generalization會比較差,也就是過擬合。

ps:排版有點渣,見諒

8樓:

機器學習裡,模型越複雜、越具有強表達能力越容易犧牲對未來資料的解釋能力,而專注於解釋訓練資料。這種現象會導致訓練資料效果非常好,但遇到測試資料效果會大打折扣。這一現象叫過擬合(overfitting)

深層神經網路因為其結構,所以具有相較傳統模型有很強的表達能力,從而也就需要更多的資料來避免過擬合的發生,以保證訓練的模型在新的資料上也能有可以接受的表現。

AI或機器學習,如何確定訓練樣本資料的規模?是越多越好嗎?還是適度就好,資料量適度的評判標準是什麼?

李鵬宇 這個問題也困擾我好多年了,這裡拋個磚。據我所知沒有公式或工具可以告訴我們乙個AI類任務需要多少訓練樣本。總的來說,我們在做AI類任務的時候,是不知道到底需要多少訓練樣本的。順利的情況下,我們基於經驗拍腦袋定下的資料集大小,正好可以完成任務 大多情況下,訓練集最終的大小,是需要逐步確定的。在決...

深度學習裡面訓練模型的時候,為什麼新增正則項它的超引數都是自己調的?

走在邊沿上 一般,乙個引數之所以成為超引數,要麼是因為關於它的任何資訊都不能被訓練資料集表示,要麼是因為一旦讓它成為trainable的,我們總會得到乙個trivial的值。從第乙個角度看,正則化的本質是限制目標函式空間的大小,保證目標函式的smoothness。資料集本身顯然並不會包含關於它的任何...

為什麼目前的深度學習 Deep Learning 只是比較成功運用到影象 語音上?

尋常巷陌 在振動訊號上也是比較成功的。深度殘差收縮網路就能夠很好地從含噪振動資料中提取有用特徵,用於機械故障診斷。其實,在很大程度上,問題在於大部分企業不公開裝置監測資料。Minghang Zhao,Shisheng Zhong,Xuyun Fu,Baoping Tang,and Michael P...