深度學習之神經網絡與支持向量機

從人人上轉過來的html

前言:本文翻譯自deeplearning網站,主要綜述了一些論文、算法已經工具箱。python

 

引言:神經網絡(Neural Network)與支持向量機(Support Vector Machines,SVM)是統計學習的表明方法。能夠認爲神經網絡與支持向量機都源自於感知機(Perceptron)。感知機是1958年由Rosenblatt發明的線性分類模型。感知機對線性分類有效,但現實中的分類問題一般是非線性的。web

神經網絡與支持向量機(包含核方法)都是非線性分類模型。1986年,Rummelhart與McClelland發明了神經網絡的學習算法Back Propagation。後來,Vapnik等人於1992年提出了支持向量機。神經網絡是多層(一般是三層)的非線性模型,支持向量機利用核技巧把非線性問題轉換成線性問題。算法

神經網絡與支持向量機一直處於「競爭」關係。網絡

Scholkopf是Vapnik的大弟子,支持向量機與核方法研究的領軍人物。據Scholkopf說,Vapnik當初發明支持向量機就是想"幹掉"神經網絡(He wanted to kill Neural Network)。支持向量機確實頗有效,一段時間支持向量機一派佔了上風。架構

近年來,神經網絡一派的大師Hinton又提出了神經網絡的Deep Learning算法(2006年),使神經網絡的能力大大提升,可與支持向量機一比。函數

Deep Learning假設神經網絡是多層的,首先用Boltzman Machine(非監督學習)學習網絡的結構,而後再經過Back Propagation(監督學習)學習網絡的權值。工具

關於Deep Learning的命名,Hinton曾開玩笑地說: I want to call SVM shallow learning. (注:shallow 有膚淺的意思)。其實Deep Learning自己的意思是深層學習,由於它假設神經網絡有多層。學習

總之,Deep Learning是值得關注的統計學習新算法。測試

 

深度學習(Deep Learning)是ML研究中的一個新的領域,它被引入到ML中使ML更接近於其原始的目標:AI。查看a brief introduction to Machine Learning for AI 和 an introduction to Deep Learning algorithms.

 

深度學習是關於學習多個表示和抽象層次,這些層次幫助解釋數據,例如圖像,聲音和文本。

對於更多的關於深度學習算法的知識,能夠參看:

這篇綜述主要是介紹一些最重要的深度學習算法,並將演示如何用Theano來運行它們。

Theano是一個python庫,使得寫深度學習模型更加容易,同時也給出了一些關於在GPU上訓練它們的選項。

 

這個算法的綜述有一些先決條件。首先你應該知道一個關於python的知識,並熟悉numpy。因爲這個綜述是關於如何使用Theano,你應該先閱讀Theano basic tutorial。一旦你完成這些,閱讀咱們的Getting Started章節---它將介紹概念定義,數據集,和利用隨機梯度降低來優化模型的方法。

 

純有監督學習算法能夠按照如下順序閱讀:

  1. Logistic Regression - using Theano for something simple

  2. Multilayer perceptron - introduction to layers

  3. Deep Convolutional Network - a simplified version of LeNet5

無監督和半監督學習算法能夠用任意順序閱讀(auto-encoders能夠被獨立於RBM/DBM地閱讀):

關於mcRBM模型,也有一篇新的關於從能量模型中抽樣的綜述:

  • HMC Sampling - hybrid (aka Hamiltonian) Monte-Carlo sampling with scan()

 

上文翻譯自http://deeplearning.net/tutorial/

 

 

查看最新論文

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

相關文章
相關標籤/搜索