深度信任網絡的快速學習算法(Hinton的論文)

也沒啥原創,就是在學習深度學習的過程當中豐富一下個人博客,嘿嘿。 git

不喜勿噴! 算法

Hinton是深度學習方面的大牛,跟着大牛走通常不會錯吧…… 網絡

來源:A fast learning algorithm for deep belief nets 性能

看着引用次數,何時我也能來一篇(不要笑我這個學渣)。 學習

摘要中出現的幾個詞就讓我有點茫然: ui

complementary priors,這是一個啓發規則仍是什麼鬼的 spa

explaining away effects,沒據說過這個效應捏 3d

聽說他的這種快速的貪心算法(fast, greedy algorithm)可以一次訓練一層的深度直接信任網絡(deep, directed belief networks rest

而這種快速的貪心算法是爲了給後面的利用較慢的wake-sleep algorithm精細調節權重的過程進行初始化。最後獲得一個具備很 code

好泛化性能的網絡,並且效果還要比最好的分類學習算法(the best discriminative learning algorithms)還好。(反正我用神經網

絡都是單隱層的,通常說法是多隱層具備很好的擬合效果,可是會形成過擬合,即over fitting,可是這裏又能快速訓練,並且文

中也說多層的效果也很好)。文中也是主要利用這個deep belief nets來作圖片的分類。

 

首先Hinton是創建了一個模型,這個模型以下圖所示,我也要好好看看這個模型:

這個模型的有三個隱含層,最上面兩個隱含層造成了一個undirected associative memory(沒有直接相關聯的記憶?),剩下的隱含層

則造成了一個directed acyclic graph將相關記憶(associative memory)轉化爲可觀測的變量,例如圖片的像素。接着談到了創建一個

這樣的混合的模型的好處(反正我是沒有很好的理解這個模型的):

1)即便對於有上百萬個參數和不少隱含層的深度網絡中,對於這樣的模型也存在着很快的貪心算法,找到至關好的參數;

2)這個模型的訓練算法是unsupervised,可是又能夠用於labeled data,是由於該訓練算法能夠訓練模型生成labeldata(第2點的

意思是否是,這個模型不只能產生label,還能反推會data);

3)有精細的訓練算法能調節參數的模型使得模型具備很好的泛化性能,並且分類能力要比通常的分類方法強;

4)訓練好的模型可以很好的解釋深度隱含層的分佈表示(distributed representations);

5The inference required for forming a percept is both fast and accurate(目前還不知道這個該怎麼理解);

6)該學習算法是局部的,也就是說調節參數只會根據前驅突觸和後繼神經元突觸的強度;

7)(神經元之間的)交流也特別簡單,神經元之間只須要交流它們隨機的二進制狀態。

   

2部分介紹了消除explaining away現象的方法,即complementary prior

3部分說明restricted Boltzmann machinesinfinite directed networks with tied weights之間是等價的。

4部分介紹了那個快速的貪心算法(一次訓練一層數據,這樣來看是否是就訓練一層就完了,不會從頭訓練吧),隨着新的隱含層加入,

模型總體的泛化能力提升了。The greedy algorithm bears some resemblance to boosting in its repeated use of the same weak learner, but

instead of reweighting each data-vector to ensure that the next step learns something new, it represents it(這裏他不是每次都從新調整權重,

而是從新表示,是這個意思嗎?)。

5部分介紹了通過快速貪心算法初始化以後的權重,怎麼利用wake-sleep算法進行fine-tune

6部分展現了包含3個隱層1.7 million個權重的網絡對MNIST set of handwriting digits模式識別性能(我擦,這麼多參數)。沒有提供這

些手寫體的任何幾何信息,也沒有通過任何的預處理,所創建網絡的識別偏差是1.25%,比最好的back-propagation的網絡的1.5%要好,同

時也比支持向量機的1.4%的偏差稍好。

7部分咱們要看看這個網絡是在想什麼,若是沒有對可視輸入進行約束。從這個網絡的高層表示生成一張圖片(我感受這個牛叉,就像人眼

看到一幅圖片,而後通過大腦的抽象以後,刻在腦子裏,也就是突觸之間的權重會保存信息,而後咱們在根據這些信息重構一張圖麼?)。

   

講到這裏,首先是一個具備不少特性的網絡結構提出來了,它有不少的隱含層,並且這些變量的值都是二進制(也能夠說是二元的,binary),

而後咱們得對模型提出某個訓練算法,讓它可以學習,訓練的過程大致上分爲兩個階段,第一個階段是fast greedy algorithm來對每一層的參數

進行訓練,這個過程很快。第二階段就是一個fine-tunewake-sleep算法,因爲沒有具體的去看算法,目前也就只能從總體上把握這個過程,

如今就具體的去看看怎麼實現的吧!(啓發:一直以來的印象就是多隱層的泛化效果很差,恰恰就有人反其道而行之,要多整幾層;網絡結構上

也有改變,算法上也有新的)。

   

2 Complementary priors

explaining away現象是什麼?

相關文章
相關標籤/搜索