深度神經網路算法,近幾年在工業界和學術界新型的一個機器學習領域的流行話題。DNN算法成功的將以往的識別率提高了一個顯著的檔次。
人工神經網路起源於上世紀40年代,第一個神經元模型是1943年McCulloch和Pitts提出的,稱為threshold logic,它可以實現一些邏輯運算的功能。自此以後,神經網路的研究分化為兩個方向,一個專注於生物信息處理的過程,稱為生物神經網路;一個專注於工程套用,稱為人工神經網路。
直到2006年深度網路(deep network)和深度學習(deep learning)概念的提出,神經網路又開始煥發一輪新的生命。深度網路,從字面上理解就是深層次的神經網路。至於為什麼不沿用以前的術語“多層神經網路”,個人猜測可能是為了與以前的神經網路相區分,表示這是一個新的概念。這個名詞由多倫多大學的Geoff Hinton研究組於2006年創造[3]。事實上,Hinton研究組提出的這個深度網路從結構上講與傳統的多層感知機沒有什麼不同,並且在做有監督學習時算法也是一樣的。唯一的不同是這個網路在做有監督學習前要先做非監督學習,然後將非監督學習學到的權值當作有監督學習的初值進行訓練。這個改變其實對應著一個合理的假設。我們用P(x)表示用無監督學習對網路進行預訓練得到的數據的一種表示,然後用有監督學習對網路進行訓練(如BP算法),得到P(Y|X),其中Y為輸出(比如類別標籤)。該假設認為P(X)的學習有助於P(Y|X)的學習。這種學習思路相對於單純的有監督學習而言有助於降低過擬合的風險,因為它不僅學習了條件機率分布P(Y|X),還學習了X和Y的聯合機率分布。關於預訓練有助於深度學習的原因還有其他解釋,其中最直接的解釋是預訓練將網路參數訓練到一組合適的初始值,從這組初始值出發會令代價函式達到一個更低的值,但Erhan等人的實驗證明並不一定是這樣的。