RBM(受限玻爾茲曼機)和深層信念網路(Deep Brief Network)
目錄:
一、RBM
1、定義【無監督學習】
RBM記住三個要訣:1)兩層結構圖,可視層和隱藏層;【沒輸出層】2)層內無連線,層間全連線;3)二值狀態值,前向反饋和逆向傳播求權參。定義如下:
一般來說,可見層單元用來描述觀察資料的一個方面或一個特徵,而隱藏層單元的意義一般來說並不明確,可以看作特徵提取層。
比較通俗解釋RBM的部落格:https://blog.csdn.net/u013631121/article/details/76652647
玻爾茲曼機的模型,它一共有兩層:如下圖,下邊4個圈為可見層【即輸入層】,上面3個圈為隱藏層。雙向箭頭【因為前向傳播和後向傳播,無監督學習】
前向傳播:
- b為偏置,如左上角的圈計算:y1=x1*w11+x2*w21+x3*w31+x4*w41+b1。將y1,y2,y3求出,加上啟用函式即可。
- a為偏置。通過算出來的y1,y2,y3再回求一遍x1~x4。為了方便區分,回求的值我們叫做x‘1~x’4。舉個例子求x'1,把隱含層3個數據與權值相乘,之後把偏置量a1給加上就完事兒了,公式寫作x1=y1*w11+y2*w12+y3*w13+a1。其餘3個也按照這個方式求出。
- 求完x‘1~x’4後用x‘1~x’4對隱含層再次求一遍值,得到y'1~y'3三個數。
反向傳播:
目標函式:我們要做的就是讓我們求得x與x'儘量相等,但是我們通過計算他們的差值,不為0,那怎麼辦呢,那就是反向傳播。
權重計算:x和y的向量做乘積,x'與y'做乘積,求出z與z'兩個矩陣,這兩個矩陣shape(x,y),z與z'相減,然後加入到權值裡面,例如w11,那麼新的w11值就為:w11=w11+alpha*(z11-z'11),alpha為學習速率,其它的權值也是一樣計算。
偏置量計算:隱含層偏置量b1更新值為:b1=b1+alpha*(y1-y'1),可視層偏置量a1=a1+alpha*(x1-x'1),其餘偏置量同理計算。
前向、後向傳播迭代訓練直到輸入x和訓練x'近乎相等。
前向、後向傳播的例子解釋:區分以下大象和狗的圖。
正向更新:給定這些畫素,權重應該送出一個更強的訊號給大象還是狗?
反向更新:給定大象和狗,我應該送出一個什麼樣的畫素分佈?
2、RBM原理:
能量模型:一般認為物體的能量越高越不穩定,能量越低越趨於穩定。比如說,斜坡上的一個箱子,它位於越高的位置,則擁有更高的重力勢能。能量模型把箱子停在哪個位置定義為一種狀態,每個狀態對應著一個能量。這個能量由能量函式來定義,箱子位於某個位置(某個位置)的概率。比如箱子位於斜坡1/2高度上的概率為p,它可以用E表示成p=f(E)。
RBM結構:
這裡為了簡單描述,假設每個節點的取值為{0,1}。
計算過程:
求解極大似然:梯度上升。參考http://lib.csdn.net/article/deeplearning/59097?knId=1746
二、 Deep Brief Network概念:多個Restricted Boltlzmann Machines
通俗解釋:深度信念網路就是指能夠通過概率大小學習的神經網路。把RBM堆疊在一塊,然後形成一大串連線的RBM,最後在頂端加入一個輸出層,就是深度信念神經網路。
如圖:
執行圖:就是把原始資料輸入到最下面的RBM可視層中,然後訓練RBM1,訓練完成之後把RBM1的隱含層作為RBM2的可視層,繼續訓練RBM2,接下來把RBM2的隱含層做為RBM3的可視層,直到訓練完成為止。
每層的神經元不與本層的其他神經元交流。最後一層通常是分類層(eg,softmax)
除了第一層和最後一層,每層都有兩個作用:對於前一層作為隱藏層,作為後一層的輸入層。
三、Deep Autoencoders:有兩個Deep Brief Network組成
自編碼作用:用來降低維度,影象搜尋(壓縮),資料壓縮,資訊檢索
下圖:中間藍色:相當於學習到的特徵向量,左邊為自編碼,右邊為解編碼。
每層由RBM組成。