自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一文淺談深度學習泛化能力

人工智能 深度學習
本文是從一個簡單通用的角度解釋——在神經(jīng)網(wǎng)絡(luò)的梯度下降優(yōu)化過程上,探索泛化能力的原因。

一、DNN泛化能力的問題

論文主要探討的是, 為什么過參數(shù)的神經(jīng)網(wǎng)絡(luò)模型還能有不錯的泛化性?即并不是簡單記憶訓練集,而是從訓練集中總結(jié)出一個通用的規(guī)律,從而可以適配于測試集(泛化能力)。

以經(jīng)典的決策樹模型為例, 當樹模型學習數(shù)據(jù)集的通用規(guī)律時:一種好的情況,假如樹第一個分裂節(jié)點時,剛好就可以良好區(qū)分開不同標簽的樣本,深度很小,相應的各葉子上面的樣本數(shù)是夠的(即統(tǒng)計規(guī)律的數(shù)據(jù)量的依據(jù)也是比較多的),那這會得到的規(guī)律就更有可能泛化到其他數(shù)據(jù)。(即:擬合良好, 有泛化能力)。

另外一種較差的情況,如果樹學習不好一些通用的規(guī)律,為了學習這個數(shù)據(jù)集,那樹就會越來越深,可能每個葉子節(jié)點分別對應著少數(shù)樣本(少數(shù)據(jù)帶來統(tǒng)計信息可能只是噪音),最后,死記硬背地記住所有數(shù)據(jù)(即:過擬合 無泛化能力)。我們可以看到過深(depth)的樹模型很容易過擬合。

那么過參數(shù)化的神經(jīng)網(wǎng)絡(luò)如何達到良好的泛化性呢?

二、 DNN泛化能力的原因

本文是從一個簡單通用的角度解釋——在神經(jīng)網(wǎng)絡(luò)的梯度下降優(yōu)化過程上,探索泛化能力的原因:

我們總結(jié)了梯度相干理論 :來自不同樣本的梯度產(chǎn)生相干性,是神經(jīng)網(wǎng)絡(luò)能有良好的泛化能力原因。當不同樣本的梯度在訓練過程中對齊良好,即當它們相干時,梯度下降是穩(wěn)定的,可以很快收斂,并且由此產(chǎn)生的模型可以有良好的泛化性。否則,如果樣本太少或訓練時間過長,可能無法泛化。

基于該理論,我們可以做出如下解釋。

2.1 寬度神經(jīng)網(wǎng)絡(luò)的泛化性

更寬的神經(jīng)網(wǎng)絡(luò)模型具有良好的泛化能力。這是因為,更寬的網(wǎng)絡(luò)都有更多的子網(wǎng)絡(luò),對比小網(wǎng)絡(luò)更有產(chǎn)生梯度相干的可能,從而有更好的泛化性。換句話說,梯度下降是一個優(yōu)先考慮泛化(相干性)梯度的特征選擇器,更廣泛的網(wǎng)絡(luò)可能僅僅因為它們有更多的特征而具有更好的特征。

  • 論文原文:Generalization and width.  Neyshabur et al. [2018b] found that wider networks generalize better.  Can  we  now  explain  this?  Intuitively,  wider  networks  have  more  sub-networks  at any given level, and so the sub-network with maximum coherence in a wider network may be more coherent than its counterpart in a thinner network, and hence generalize better.  In other words,  since—as discussed in Section 10—gradient descent is a feature selector that prioritizes  well-generalizing  (coherent)  features,  wider  networks  are  likely  to  have  better features  simply  because  they  have  more  features.  In  this  connection,  see  also  the  Lottery Ticket Hypothesis [Frankle and Carbin, 2018]
  • 論文鏈接:https://github.com/aialgorithm/Blog

但是個人覺得,這還是要區(qū)分下網(wǎng)絡(luò)輸入層/隱藏層的寬度。特別對于數(shù)據(jù)挖掘任務的輸入層,由于輸入特征是通常是人工設(shè)計的,需要考慮下做下特征選擇(即減少輸入層寬度),不然直接輸入特征噪音,對于梯度相干性影響不也是有干擾的。

2.2 深度神經(jīng)網(wǎng)絡(luò)的泛化性

越深的網(wǎng)絡(luò),梯度相干現(xiàn)象被放大,有更好的泛化能力。

在深度模型中,由于層之間的反饋加強了有相干性的梯度,存在相干性梯度的特征(W6)和非相干梯度的特征(W1)之間的相對差異在訓練過程中呈指數(shù)放大。從而使得更深的網(wǎng)絡(luò)更偏好相干梯度,從而更好泛化能力。

2.3 早停(early-stopping)

通過早停我們可以減少非相干梯度的過多影響,提高泛化性。

在訓練的時候,一些容易樣本比其他樣本(困難樣本)更早地擬合。訓練前期,這些容易樣本的相干梯度做主導,并很容易擬合好。訓練后期,以困難樣本的非相干梯度主導了平均梯度g(wt),從而導致泛化能力變差,這個時候就需要早停。

  • (注:簡單的樣本,是那些在數(shù)據(jù)集里面有很多梯度共同點的樣本,正由于這個原因,大多數(shù)梯度對它有益,收斂也比較快。)

2.4  全梯度下降 VS  學習率

我們發(fā)現(xiàn)全梯度下降也可以有很好的泛化能力。此外,仔細的實驗表明隨機梯度下降并不一定有更優(yōu)的泛化,但這并不排除隨機梯度更易跳出局部最小值、起著正則化等的可能性。

  • Based on our theory, finite learning rate, and mini-batch stochasticity are not necessary for generalization

我們認為較低的學習率可能無法降低泛化誤差,因為較低的學習率意味著更多的迭代次數(shù)(與早停相反)。

  • Assuming  a  small  enough  learning  rate,  as  training  progresses,  the  generalization  gap cannot  decrease.  This  follows  from  the  iterative  stability  analysis  of  training:  with 40 more  steps,  stability  can  only  degrade.  If  this  is  violated  in  a  practical  setting,  it  would point to an interesting limitation of the theory

2.5 L2、L1正則化

目標函數(shù)加入L2、L1正則化,相應的梯度計算, L1正則項需增加的梯度為sign(w) ,L2梯度為w。以L2正則為例,相應的梯度W(i+1)更新公式為:圖片

我們可以把“L2正則化(權(quán)重衰減)”看作是一種“背景力”,可將每個參數(shù)推近于數(shù)據(jù)無關(guān)的零值 ( L1容易得到稀疏解,L2容易得到趨近0的平滑解) ,來消除在弱梯度方向上影響。只有在相干梯度方向的情況下,參數(shù)才比較能脫離“背景力”,基于數(shù)據(jù)完成梯度更新。

2.6 梯度下降算法的進階

  • Momentum 、Adam等梯度下降算法

Momentum 、Adam等梯度下降算法,其參數(shù)W更新方向不僅由當前的梯度決定,也與此前累積的梯度方向有關(guān)(即,保留累積的相干梯度的作用)。這使得參數(shù)中那些梯度方向變化不大的維度可以加速更新,并減少梯度方向變化較大的維度上的更新幅度,由此產(chǎn)生了加速收斂和減小震蕩的效果。

  • 抑制弱梯度方向的梯度下降

我們可以通過優(yōu)化批次梯度下降算法,來抑制弱梯度方向的梯度更新,進一步提高了泛化能力。比如,我們可以使用梯度截斷(winsorized gradient descent),排除梯度異常值后的再取平均值?;蛘呷√荻鹊闹形粩?shù)代替平均值,以減少梯度異常值的影響。

小結(jié)

文末說兩句,對于深度學習的理論,有興趣可以看下論文提及的相關(guān)研究。

責任編輯:龐桂玉 來源: Python開發(fā)者
相關(guān)推薦

2023-10-07 08:45:47

2018-07-03 09:12:23

深度學習正則化Python

2023-02-01 07:34:41

讀寫分離數(shù)據(jù)庫

2017-10-24 11:19:16

深度學習機器學習數(shù)據(jù)

2017-11-20 05:08:16

深度學習激活函數(shù)神經(jīng)網(wǎng)絡(luò)

2018-07-20 14:58:16

深度學習梯度下降損失函數(shù)

2023-10-23 18:04:42

Rust深度學習框架

2018-08-31 14:51:30

人工智能深度學習機器學習

2022-06-14 09:01:06

TypeScript泛型

2023-11-20 13:51:00

泛型函數(shù)TypeScript

2021-07-23 11:35:49

架構(gòu)運維技術(shù)

2017-10-25 19:05:18

深度學習語音分離

2018-08-16 08:19:30

2019-11-06 17:00:51

深度學習神經(jīng)網(wǎng)絡(luò)人工智能

2025-04-27 09:59:38

深度學習AI人工智能

2024-03-01 19:26:22

2018-08-08 16:08:45

深度學習機器學習NLP

2023-12-26 07:33:45

Redis持久化COW

2022-02-15 08:07:17

測試軟件開發(fā)

2019-02-13 15:38:09

存儲虛擬化云計算
點贊
收藏

51CTO技術(shù)棧公眾號