深度學習簡介

Yoshua Bengio, Learning Deep Architectures for AI, Foundations and Trends in Machine Learning, 2(1), 2009

深度(Depth)

從一個輸入中產生一個輸出所涉及的計算可以通過一個流向圖(flow graph)來表示:流向圖是一種能夠表示計算的圖,在這種圖中每一個節點表示一個基本的計算並且一個計算的值(計算的結果被應用到這個節點的孩子節點的值)。考慮這樣一個計算集合,它可以被允許在每一個節點和可能的圖結構中,並定義了一個函數族。輸入節點沒有孩子,輸出節點沒有父親。

對於表達1 的流向圖,可以通過一個有兩個輸入節點2 和3 的圖表示,其中一個節點通過使用23 作爲輸入(例如作爲孩子)來表示4 ;一個節點僅使用2 作爲輸入來表示平方;一個節點使用6 和7 作爲輸入來表示加法項(其值爲5 );最後一個輸出節點利用一個單獨的來自於加法節點的輸入計算SIN。

這種流向圖的一個特別屬性是深度(depth):從一個輸入到一個輸出的最長路徑的長度。

傳統的前饋神經網絡能夠被看做擁有等於層數的深度(比如對於輸出層爲隱層數加1)。SVMs有深度2(一個對應於核輸出或者特徵空間,另一個對應於所產生輸出的線性混合)。

 

深度架構的動機

學習基於深度架構的學習算法的主要動機是:

不充分的深度是有害的;

大腦有一個深度架構;

認知過程是深度的;

 

不充分的深度是有害的

在許多情形中深度2就足夠(比如logical gates, formal [threshold] neurons, sigmoid-neurons, Radial Basis Function [RBF] units like in SVMs)表示任何一個帶有給定目標精度的函數。但是其代價是:圖中所需要的節點數(比如計算和參數數量)可能變的非常大。理論結果證實那些事實上所需要的節點數隨着輸入的大小指數增長的函數族是存在的。這一點已經在logical gates, formal [threshold] neurons 和rbf單元中得到證實。在後者中Hastad說明了但深度是d時,函數族可以被有效地(緊地)使用O(n)個節點(對於n個輸入)來表示,但是如果深度被限制爲d-1,則需要指數數量的節點數O(2^n)。

我們可以將深度架構看做一種因子分解。大部分隨機選擇的函數不能被有效地表示,無論是用深地或者淺的架構。但是許多能夠有效地被深度架構表示的卻不能被用淺的架構高效表示(see the polynomials example in the Bengio survey paper)。一個緊的和深度的表示的存在意味着在潛在的可被表示的函數中存在某種結構。如果不存在任何結構,那將不可能很好地泛化。

大腦有一個深度架構

例如,視覺皮質得到了很好的研究,並顯示出一系列的區域,在每一個這種區域中包含一個輸入的表示和從一個到另一個的信號流(這裏忽略了在一些層次並行路徑上的關聯,因此更復雜)。這個特徵層次的每一層表示在一個不同的抽象層上的輸入,並在層次的更上層有着更多的抽象特徵,他們根據低層特徵定義。

需要注意的是大腦中的表示是在中間緊密分佈並且純局部:他們是稀疏的:1%的神經元是同時活動的。給定大量的神經元,任然有一個非常高效地(指數級高效)表示。

認知過程看起來是深度的
  • 人類層次化地組織思想和概念;
  • 人類首先學習簡單的概念,然後用他們去表示更抽象的;
  • 工程師將任務分解成多個抽象層次去處理;

學習/發現這些概念(知識工程由於沒有反省而失敗?)是很美好的。對語言可表達的概念的反省也建議我們一個稀疏的表示:僅所有可能單詞/概念中的一個小的部分是可被應用到一個特別的輸入(一個視覺場景)。

 

學習深度架構的突破

 

2006年前,嘗試訓練深度架構都失敗了:訓練一個深度有監督前饋神經網絡趨向於產生壞的結果(同時在訓練和測試誤差中),然後將其變淺爲1(1或者2個隱層)。

 

2006年的3篇論文改變了這種狀況,由Hinton的革命性的在深度信念網(Deep Belief Networks, DBNs)上的工作所引領:

在這三篇論文中以下主要原理被發現:

  • 表示的無監督學習被用於(預)訓練每一層;
  • 在一個時間裏的一個層次的無監督訓練,接着之前訓練的層次。在每一層學習到的表示作爲下一層的輸入;
  • 用無監督訓練來調整所有層(加上一個或者更多的用於產生預測的附加層);

DBNs在每一層中利用用於表示的無監督學習RBMs。Bengio et al paper 探討和對比了RBMs和auto-encoders(通過一個表示的瓶頸內在層預測輸入的神經網絡)。Ranzato et al paper在一個convolutional架構的上下文中使用稀疏auto-encoders(類似於稀疏編碼)。Auto-encoders和convolutional架構將在以後的課程中講解。

從2006年以來,大量的關於深度學習的論文被髮表,一些探討了其他原理來引導中間表示的訓練,查看Learning Deep Architectures for AI

本文英文版出處http://www.iro.umontreal.ca/~pift6266/H10/notes/deepintro.html


查看最新論文

Yoshua Bengio, Learning Deep Architectures for AI, Foundations and Trends in Machine Learning, 2(1), 2009

 

深度(Depth)

從一個輸入中產生一個輸出所涉及的計算可以通過一個流向圖(flow graph)來表示:流向圖是一種能夠表示計算的圖,在這種圖中每一個節點表示一個基本的計算並且一個計算的值(計算的結果被應用到這個節點的孩子節點的值)。考慮這樣一個計算集合,它可以被允許在每一個節點和可能的圖結構中,並定義了一個函數族。輸入節點沒有孩子,輸出節點沒有父親。

 

對於表達1 的流向圖,可以通過一個有兩個輸入節點2 和3 的圖表示,其中一個節點通過使用23 作爲輸入(例如作爲孩子)來表示4 ;一個節點僅使用2 作爲輸入來表示平方;一個節點使用6 和7 作爲輸入來表示加法項(其值爲5 );最後一個輸出節點利用一個單獨的來自於加法節點的輸入計算SIN。

 

這種流向圖的一個特別屬性是深度(depth):從一個輸入到一個輸出的最長路徑的長度。

 

傳統的前饋神經網絡能夠被看做擁有等於層數的深度(比如對於輸出層爲隱層數加1)。SVMs有深度2(一個對應於核輸出或者特徵空間,另一個對應於所產生輸出的線性混合)。

 

深度架構的動機

學習基於深度架構的學習算法的主要動機是:

不充分的深度是有害的;

大腦有一個深度架構;

認知過程是深度的;

 

不充分的深度是有害的

在許多情形中深度2就足夠(比如logical gates, formal [threshold] neurons, sigmoid-neurons, Radial Basis Function [RBF] units like in SVMs)表示任何一個帶有給定目標精度的函數。但是其代價是:圖中所需要的節點數(比如計算和參數數量)可能變的非常大。理論結果證實那些事實上所需要的節點數隨着輸入的大小指數增長的函數族是存在的。這一點已經在logical gates, formal [threshold] neurons 和rbf單元中得到證實。在後者中Hastad說明了但深度是d時,函數族可以被有效地(緊地)使用O(n)個節點(對於n個輸入)來表示,但是如果深度被限制爲d-1,則需要指數數量的節點數O(2^n)。

 

我們可以將深度架構看做一種因子分解。大部分隨機選擇的函數不能被有效地表示,無論是用深地或者淺的架構。但是許多能夠有效地被深度架構表示的卻不能被用淺的架構高效表示(see the polynomials example in the Bengio survey paper)。一個緊的和深度的表示的存在意味着在潛在的可被表示的函數中存在某種結構。如果不存在任何結構,那將不可能很好地泛化。

 

大腦有一個深度架構

例如,視覺皮質得到了很好的研究,並顯示出一系列的區域,在每一個這種區域中包含一個輸入的表示和從一個到另一個的信號流(這裏忽略了在一些層次並行路徑上的關聯,因此更復雜)。這個特徵層次的每一層表示在一個不同的抽象層上的輸入,並在層次的更上層有着更多的抽象特徵,他們根據低層特徵定義。

 

需要注意的是大腦中的表示是在中間緊密分佈並且純局部:他們是稀疏的:1%的神經元是同時活動的。給定大量的神經元,任然有一個非常高效地(指數級高效)表示。

 

認知過程看起來是深度的
  • 人類層次化地組織思想和概念;
  • 人類首先學習簡單的概念,然後用他們去表示更抽象的;
  • 工程師將任務分解成多個抽象層次去處理;

學習/發現這些概念(知識工程由於沒有反省而失敗?)是很美好的。對語言可表達的概念的反省也建議我們一個稀疏的表示:僅所有可能單詞/概念中的一個小的部分是可被應用到一個特別的輸入(一個視覺場景)。

 

學習深度架構的突破

 

2006年前,嘗試訓練深度架構都失敗了:訓練一個深度有監督前饋神經網絡趨向於產生壞的結果(同時在訓練和測試誤差中),然後將其變淺爲1(1或者2個隱層)。

 

2006年的3篇論文改變了這種狀況,由Hinton的革命性的在深度信念網(Deep Belief Networks, DBNs)上的工作所引領:

在這三篇論文中以下主要原理被發現:

  • 表示的無監督學習被用於(預)訓練每一層;
  • 在一個時間裏的一個層次的無監督訓練,接着之前訓練的層次。在每一層學習到的表示作爲下一層的輸入;
  • 用無監督訓練來調整所有層(加上一個或者更多的用於產生預測的附加層);

DBNs在每一層中利用用於表示的無監督學習RBMs。Bengio et al paper 探討和對比了RBMs和auto-encoders(通過一個表示的瓶頸內在層預測輸入的神經網絡)。Ranzato et al paper在一個convolutional架構的上下文中使用稀疏auto-encoders(類似於稀疏編碼)。Auto-encoders和convolutional架構將在以後的課程中講解。

 

從2006年以來,大量的關於深度學習的論文被髮表,一些探討了其他原理來引導中間表示的訓練,查看Learning Deep Architectures for AI

 

 

本文英文版出處http://www.iro.umontreal.ca/~pift6266/H10/notes/deepintro.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章