ANN

適合神經網絡學習的問題

  • 實例是用很多“屬性- 值”對錶示的。要學習的目標函數是定義在可以用向量描述的實例之上的,向量由預先定義的特徵組成,例如 ALVINN 例子中的像素值。這些輸入屬性之間可以高度相關,也可以相互獨立。輸入值可以是任何實數
  • 目標函數的輸出可能是離散值、實數值或者由若干實數屬性或離散屬性組成的向量目標函數的輸出可能是離散值、實數值或者由若干實數屬性或離散屬性組成的向量。例如,在 ALVINN 系統中輸出的是 30 個屬性的向量,每一個分量對應一個建議的駕駛方向。每個輸出值是 0 和 1 之間的某個實數,對應於在預測相應駕駛方向時的置信度(confidence)。我們也可以訓練一個單一網絡,同時輸出行駛方向和建議的加速度,這隻要簡單地把編碼這兩種輸出預測的向量連接在一起就可以了。
  • 訓練數據可能包含錯誤。ANN 學習算法對於訓練數據中的錯誤有非常好的魯棒性。
  • 可容忍長時間的訓練。網絡訓練算法通常比像決策樹學習這樣的算法需要更長的訓練時間。訓練時間可能從幾秒鐘到幾小時,這要看網絡中權值的數量、要考慮的訓練實例的數量、以及不同學習算法參數的設置等因素。
  • 可能需要快速求出目標函數值。儘管 ANN 的學習時間相對較長,但對學習的網絡求值,以便把網絡應用到後續的實例,通常是非常快速的。例如,ALVINN 在車輛向前行駛時,每秒應用它的神經網絡若干次,以不斷地更新駕駛方向。
  • 人類能否理解學到的目標函數是不重要的。神經網絡方法學習到的權值經常是人類難以解釋的。學到的神經網絡比學到的規則難於傳達給人類。

多層網絡和反向傳播算法

可微閾值單元
sigmoid
這裏寫圖片描述

o=σ(wx)

σ(y)=11+ey

dσ(y)dy=σ(y)(1σ(y))

反向傳播算法

因爲要考慮多個輸出單元的網絡,所以我們先重新定義誤差 E,以便對所有網絡輸出的誤差求和。

E(w)12dDkoutputs(tkdokd)2

其中outputs 是網絡輸出單元的集合,tkdokd 是與訓練樣例d和第k個輸出單元相關的輸出
值。

反向傳播算法面臨的學習問題是搜索一個巨大的假設空間,這個空間由網絡中所有單元的所有可能的權值定義。

權重的更新

Δwji=ηδjxji

增加衝量(Momentum)項

衝量有時會使這個球滾過誤差曲面的局部極小值;或使其滾過誤差曲面上的平坦區域,如果沒有衝量這個球有可能在這個區域停止。它也具有在梯度不變的區域逐漸增大搜索步長的效果,從而可以加快收斂。

Δwji(n)=ηδjxji+αΔwji(n1)

任意深度前饋網絡

第m層的單元r的 δr 值是由更深的m+1 層的 δ 值根據下式計算的

δr=or(1or)sm+1wsrδs

任何有向無環網絡

δr=or(1or)sDownStream(r)wsrδs

其中 DownStream(r)是在網絡中單元 r 的立即下游(immediately downstream)單元的集合,或者說輸入中包括 r 的輸出的所有單元

反向傳播算法的說明

緩解局部極小值問題

  • 衝量項, 問題:原則上它也可以帶動梯度下降過程衝過狹窄的全局最小值到其他局部極小值
  • 使用隨機的梯度下降
  • 使用同樣的數據訓練多個網絡,但用不同的隨機權值初始化每個網絡: 形成“網絡委員會”

前饋網絡的表徵能力

  • 布爾函數
  • 連續函數: 任何有界的連續函數可以由一個兩層的網絡以任意小的誤差(在有限的範數下)逼近
  • 任意函數:任意函數可以被一個有三層單元的網絡以任意精度逼近

p.s.

梯度下降是從一個初始的權值開始的,因此搜索範圍裏的網絡權向量可能不包含所有的權向量

反向傳播算法從觀測數據中泛化的歸納偏置

在數據點之間平滑插值: 如果給定兩個正例,它們之間沒有反例,反向傳播算法會傾向於把這兩點之間的點也標記爲正例


隱藏層表示

多層網絡在隱藏層自動發現有用表示的能力是 ANN 學習的一個關鍵特性.
網絡中使用的單元層越多,就可以創造出越複雜的特徵.


泛化,過度擬合和停止判據

過度擬合的問題對小訓練集合最嚴重。在這種情況下,有時使用一種稱爲“k-fold交叉驗證(k-fold cross-validation)”的方法,這種方法進行k次不同的交叉驗證,每次使用數據的不同分割作爲訓練集合和驗證集
合,然後對結果進行平均。

人臉識別

http://www.cs.cmu.edu//~tom/mlbook.html

To-do

後面的習題

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