神經網絡解析和深度學習簡介

一、前言
  我們首先來看一個經典的神經網絡結構:

  上面的神經網絡是有三個部分組成,分別爲輸入層、隱藏層和輸出層。輸入層有3個輸入單元,隱藏層有4個單元,輸出層有2個單元。根據這個神經網絡我們說明三點:
  (1)設計一個神經網絡時,輸入層與輸出層的節點數往往是固定的,而中間層則可以自由指定;
  (2)神經網絡結構圖中的拓撲與箭頭代表着預測過程時數據的流向,跟訓練時的數據流有一定的區別;
  (3)結構圖裏的關鍵不是圓圈(代表“神經元”),而是連接線(代表“神經元”之間的連接)。每個連接線對應一個不同的權重(其值稱爲權值),這是需要訓練得到的。

二、單層神經網絡(感知器)
2.1、感知器的出現
  1958年,計算科學家Rosenblatt提出了由兩層神經元組成的神經網絡。他給它起了一個名字–“感知器”(Perceptron)。感知器是當時首個可以學習的人工神經網絡。Rosenblatt現場演示了其學習識別簡單圖像的過程,在當時的社會引起了轟動。
  人們認爲已經發現了智能的奧祕,許多學者和科研機構紛紛投入到神經網絡的研究中。美國軍方大力資助了神經網絡的研究,並認爲神經網絡比“原子彈工程”更重要。這段時間直到1969年才結束,這個時期可以看作神經網絡的第一次高潮。
2.2、單層神經網絡的結構
  在原來MP模型的“輸入”位置添加神經元節點,標誌其爲“輸入單元”。其餘不變,於是我們就有了下圖:在圖中開始將權值w1, w2, w3寫到“連接線”的中間。

  在“感知器”中,有兩個層次。分別是輸入層和輸出層。輸入層裏的“輸入單元”只負責傳輸數據,不做計算。輸出層裏的“輸出單元”則需要對前面一層的輸入進行計算。我們把需要計算的層次稱之爲“計算層”,並把擁有一個計算層的網絡稱之爲“單層神經網絡”。
  相比於前面的一個圖,下圖增加了一個輸出結點。並對輸入節點進行了加權計算,公式中的a1,a2,a3爲輸入變量,W爲對應節點的權重。a與W進行相乘計算後在進行函數變換,如sigmoid變換,將數據樣本分成兩類。

2.3、單層神經網絡的效果
  可以利用單層神經網絡在二維平面中劃出決策分界線,下圖爲感知器的分類效果。

2.4、出現的問題
  感知器只能做簡單的線性分類任務。但是當時的人們熱情太過於高漲,並沒有人清醒的認識到這點。於是,當人工智能領域的巨擘Minsky指出這點時,事態就發生了變化。
  Minsky在1969年出版了一本叫《Perceptron》的書,裏面用詳細的數學證明了感知器的弱點,尤其是感知器對XOR(異或)這樣的簡單分類任務都無法解決。Minsky認爲,如果將計算層增加到兩層,計算量則過大,而且沒有有效的學習算法。所以,他認爲研究更深層的網絡是沒有價值的。
  由於Minsky的巨大影響力以及書中呈現的悲觀態度,讓很多學者和實驗室紛紛放棄了神經網絡的研究。神經網絡的研究陷入了冰河期。這個時期又被稱爲“AI winter”。接近10年以後,對於兩層神經網絡的研究才帶來神經網絡的復甦。

三、兩層神經網絡(多層感知器)
3.1、背景
  Minsky說過單層神經網絡無法解決異或問題。但是當增加一個計算層以後,兩層神經網絡不僅可以解決異或問題,而且具有非常好的非線性分類效果。不過兩層神經網絡的計算是一個問題,沒有一個較好的解法。
  1986年,Rumelhar和Hinton等人提出了反向傳播(Backpropagation,BP)算法,解決了兩層神經網絡所需要的複雜計算量問題,從而帶動了業界使用兩層神經網絡研究的熱潮。目前,大量的教授神經網絡的教材,都是重點介紹兩層(帶一個隱藏層)神經網絡的內容。
  那個時候的Hinton還很年輕,30年以後,正是他重新定義了神經網絡,帶來了神經網絡復甦的又一春。
3.2、兩層神經網絡的結構
  兩層神經網絡除了包含一個輸入層,一個輸出層以外,還增加了一箇中間層。此時,中間層和輸出層都是計算層。我們擴展上節的單層神經網絡,在右邊新加一個層次(只含有一個節點)。
  現在,我們的權值矩陣增加到了兩個,我們用上標來區分不同層次之間的變量。以下圖爲例來說明具體的結構和計算過程:

  然後利用計算得到的a1和a2去計算最終的z。

3.3、兩層神經網絡的效果
  下面就是一個例子,紅色的線與藍色的線代表數據。而紅色區域和藍色區域代表由神經網絡劃開的區域,兩者的分界線就是決策分界。

  可以發現,面對複雜的非線性分類任務,兩層(帶一個隱藏層)神經網絡可以分類的很好。

3.4、出現的問題
  兩層神經網絡在多個地方的應用說明了其效用與價值。10年前困擾神經網絡界的異或問題被輕鬆解決。神經網絡在這個時候,已經可以發力於語音識別,圖像識別,自動駕駛等多個領域。
  歷史總是驚人的相似,神經網絡的學者們再次登上了《紐約時報》的專訪。人們認爲神經網絡可以解決許多問題。就連娛樂界都開始受到了影響,當年的《終結者》電影中的阿諾都趕時髦地說一句:我的CPU是一個神經網絡處理器,一個會學習的計算機。
  但是神經網絡仍然存在若干的問題:儘管使用了BP算法,一次神經網絡的訓練仍然耗時太久,而且困擾訓練優化的一個問題就是局部最優解問題,這使得神經網絡的優化較爲困難。同時,隱藏層的節點數需要調參,這使得使用不太方便,工程和研究人員對此多有抱怨。
  90年代中期,由Vapnik等人發明的SVM(Support Vector Machines,支持向量機)算法誕生,很快就在若干個方面體現出了對比神經網絡的優勢:無需調參;高效;全局最優解。基於以上種種理由,SVM迅速打敗了神經網絡算法成爲主流。神經網絡的研究再次陷入了冰河期。當時,只要你的論文中包含神經網絡相關的字眼,非常容易被會議和期刊拒收,研究界那時對神經網絡的不待見可想而知。

四、多層神經網絡(深度學習)
4.1、背景
  在被人摒棄的10年中,有幾個學者仍然在堅持研究。這其中的棋手就是加拿大多倫多大學的Geoffery Hinton教授。
  2006年,Hinton在《Science》和相關期刊上發表了論文,首次提出了“深度信念網絡”的概念。與傳統的訓練方式不同,“深度信念網絡”有一個“預訓練”(pre-training)的過程,這可以方便的讓神經網絡中的權值找到一個接近最優解的值,之後再使用“微調”(fine-tuning)技術來對整個網絡進行優化訓練。這兩個技術的運用大幅度減少了訓練多層神經網絡的時間。他給多層神經網絡相關的學習方法賦予了一個新名詞 —“深度學習”。
  很快,深度學習在語音識別領域暫露頭角。接着,2012年,深度學習技術又在圖像識別領域大展拳腳。Hinton與他的學生在ImageNet競賽中,用多層的卷積神經網絡成功地對包含一千類別的一百萬張圖片進行了訓練,取得了分類錯誤率15%的好成績,這個成績比第二名高了近11個百分點,充分證明了多層神經網絡識別效果的優越性。
  在這之後,關於深度神經網絡的研究與應用不斷湧現。由於篇幅原因,本文不介紹CNN(Conventional Neural Network,卷積神經網絡)與RNN(Recurrent Neural Network,遞歸神經網絡)的架構,下面我們只討論普通的多層神經網絡。
4.2、多層神經網絡的結構
  在兩層神經網絡的輸出層後面,繼續添加層次。原來的輸出層變成中間層,新加的層次成爲新的輸出層。所以可以得到下圖。

  多層神經網絡中,輸出也是按照一層一層的方式來計算。從最外面的層開始,算出所有單元的值以後,再繼續計算更深一層。只有當前層所有單元的值都計算完畢以後,纔會算下一層。有點像計算向前不斷推進的感覺。所以這個過程叫做“正向傳播”。
  在實際應用中,我們發現可以在參數不變的情況下通過增加層數來對數據樣本進行更深層次的表達。用下面兩個圖就可以說明問題:

  上圖的網絡中,雖然參數數量仍然是33,但卻有4箇中間層,是原來層數的接近兩倍。這意味着一樣的參數數量,可以用更深的層次去表達。
  更深層次的表示特徵可以這樣理解,隨着網絡的層數增加,每一層對於前一層次的抽象表示更深入。在神經網絡中,每一層神經元學習到的是前一層神經元值的更抽象的表示。例如第一個隱藏層學習到的是“邊緣”的特徵,第二個隱藏層學習到的是由“邊緣”組成的“形狀”的特徵,第三個隱藏層學習到的是由“形狀”組成的“圖案”的特徵,最後的隱藏層學習到的是由“圖案”組成的“目標”的特徵。通過抽取更抽象的特徵來對事物進行區分,從而獲得更好的區分與分類能力。

五、總結
5.1、神經網絡的發展歷程
  神經網絡的發展歷史曲折盪漾,既有被人捧上天的時刻,也有摔落在街頭無人問津的時段,中間經歷了數次大起大落。從單層神經網絡(感知器)開始,到包含一個隱藏層的兩層神經網絡,再到多層的深度神經網絡,一共有三次興起過程。如下圖所示:

5.2、神經網絡的效果
  隨着神經網絡的發展,其表示性能越來越強。從單層神經網絡,到兩層神經網絡,再到多層神經網絡,隨着網絡層數的增加,以及激活函數的調整,神經網絡所能擬合的決策分界平面的能力越來越強。如下圖所示:

5.3、神經網絡發展的外在原因
  光有強大的內在能力,並不一定能成功。一個成功的技術與方法,不僅需要內因的作用,還需要時勢與環境的配合。神經網絡的發展背後的外在原因可以被總結爲:更強的計算性能,更多的數據,以及更好的訓練方法。只有滿足這些條件時,神經網絡的函數擬合能力才能得已體現,如下圖所示:

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