深度學習筆記

2022-06-28 07:39:13 字數 2245 閱讀 2613

1、啟用函式

(1)由於sgmoid函式自身的特性,在反向傳播時,很容易出現梯度消失的情況,從而難以完成網路的訓練。

2、過擬合問題

欠擬合:根本原因是特徵維度過少,模型過於簡單,導致擬合的函式無法滿足訓練集,誤差較大; 

解決方法:增加特徵維度,增加訓練資料; 

過擬合:根本原因是特徵維度過多,模型假設過於複雜,引數過多,訓練資料過少,雜訊過多,導致擬合的函式完美的**訓練集,但對新資料的測試集**結果差。 過度的擬合了訓練資料,而沒有考慮到泛化能力。

解決方法:(1)減少特徵維度;(2)正則化,降低引數值。

減少過擬合總結:過擬合主要是有兩個原因造成的:資料太少+模型太複雜 

(1)獲取更多資料 :從資料源頭獲取更多資料;資料增強(data augmentation) 

(2)使用合適的模型:減少網路的層數、神經元個數等均可以限制網路的擬合能力; 

(3)dropout ;

(4)正則化,在訓練的時候限制權值變大; 

(5)限制訓練時間;通過評估測試; 

(6)增加雜訊 noise: 輸入時+權重上(高斯初始化) ;

(7)資料清洗(data ckeaning/pruning):將錯誤的label 糾正或者刪除錯誤的資料。

(8)結合多種模型: bagging用不同的模型擬合不同部分的訓練集;boosting只使用簡單的神經網路;

產生過擬合根本原因:

1、 觀察值與真實值存在偏差:

訓練樣本的獲取,本身就是一種 抽樣。抽樣操作就會存在誤差, 也就是你的訓練樣本 取值 x, x = x(真值) + u(隨機誤差),機器學習的 優化函式 多為 min cost函式,自然就是盡可能的擬合 x,而不是真實的x,所以 就稱為過擬合了,實際上是學習到了真實規律以外的 隨機誤差。舉個例子說,你想做人臉識別,人臉裡有背景吧,要是你這批人臉背景a都相似,學出來的模型,見到背景a,就會認為是人臉。這個背景a就是你樣本引入的誤差。

2、 資料太少,導致無法描述問題的真實分布

舉個例子,投硬幣問題 是乙個 二項分布,但是如果 你碰巧投了10次,都是正面。那麼你根據這個資料學習,是無法揭示這個規律的,根據統計學的大數定律(通俗地說,這個定理就是,在試驗不變的條件下,重複試驗多次,隨機事件的頻率近似於它的概率),當樣本多了,這個真實規律是必然出現的。

為什麼說 資料量大了以後 就能防止過擬合,資料量大了,

問題2,不再存在,

問題1,在求解的時候因為資料量大了, 求解min cost函式時候, 模型為了求解到最小值過程中,需要兼顧真實資料擬合 和 隨機誤差擬合,所有樣本的真實分布是相同的(都是人臉),而隨機誤差會一定程度上抵消(背景),

(1)資料有雜訊。

我們可以理解地簡單些:有噪音時,更複雜的模型會盡量去覆蓋噪音點,即對資料過擬合。這樣,即使訓練誤差ein 很小(接近於零),由於沒有描繪真實的資料趨勢,eout 反而會更大。

即噪音嚴重誤導了我們的假設。還有一種情況,如果資料是由我們不知道的某個非常非常複雜的模型產生的,實際上有限的資料很難去「代表」這個複雜模型曲線。我們採用不恰當的假設去盡量擬合這些資料,效果一樣會很差,因為部分資料對於我們不恰當的複雜假設就像是「噪音」,誤導我們進行過擬合。

如下面的例子,假設資料是由50次冪的曲線產生的(下圖右邊),與其通過10次冪的假設曲線去擬合它們,還不如採用簡單的2次冪曲線來描繪它的趨勢。

(2)訓練資料不足,有限的訓練資料。

(3)訓練模型過度,導致模型非常複雜。

3、卷積神經網路就相當於是採用乙個核心,即乙個規模較小的矩陣,去處理乙個比較小的區域,然後去通過移動這個小矩陣,去處理不同的這個塊。

這種方式乙個直觀的乙個意義就是:一般的影象上相鄰區域的內容是相似的。然後通過這樣的乙個潛在的東西,

就可以去把乙個淺層的表達變成乙個更深層的表達。也就是相當於自動從影象中去提取特徵。

4、計算圖:搭建神經網路的計算過程,只搭建, 不運算。

深度學習筆記

在深度神經網路中,通常使用一種叫修正線性單元 rectified linear unit,relu 作為神經元的啟用函式。relu函式其實是分段線性函式,把所有的負值都變為0,而正值不變,這種操作被成為單側抑制。可別小看這個簡單的操作,正因為有了這單側抑制,才使得神經網路中的神經元也具有了稀疏啟用性...

深度學習筆記

如果沒有啟用函式,或則是線性啟用函式,g z z,那麼在深度神經網路中,相當於都做的是線性變換,多個線性變換的組合還是線性變換。這樣的結果和邏輯回歸沒什麼區別,也就是說,這種情況下,無論神經網路的深度有多深,也就等價於乙個一層的網路,隱藏層沒什麼作用。因此需要非線性啟用函式。1.什麼時候插入,ski...

深度學習筆記

tensorflow 不僅是乙個實現機器學習演算法的介面,也是一種框架,也可用於線性回歸 邏輯回歸 隨機森林等演算法 tensorflow 使用資料流圖來規劃計算流程,每個運算操作作為乙個節點 node,節點之間的連線稱為邊,邊中流動的資料稱為張量,故而得名 tensorflow,預算操作可以有自己...