国科大高级人工智能3-DNN(BM/RBM/DBN/DBM)
生活随笔
收集整理的這篇文章主要介紹了
国科大高级人工智能3-DNN(BM/RBM/DBN/DBM)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.深層、淺層、BP
| 淺層神經網絡 | 為了解決非線性問題 | 可以擬合任何函數 | 參數多,神經元多,需要更多的計算資源和數據 |
| BP算法(對p(label | input)建模 | 為了計算神經網絡 | 損失回傳 |
| 深度神經網絡(>=5) | (時代背景數據爆炸,計算資源提升,希望自動學習特征(有個好的初始值)) | 1.比淺層更好的表達性(計算單元少,高層可利用低層,高層全局,低層局部,更有語義化),2.層次化地學習特征,3.多層隱變量允許統計上的組合共享;4.有效 | - |
| 改進的BP(對p(input)建模 | 為了讓BP適應深度神經網絡,建立產生輸入的生成式模型,調整參數使得p最大 | - | - |
- 訓練
- 監督
- 誤差自頂向下,對網絡微調
- 微調特征,使之與問題更相關
- 非監督
- 自下向上(greedy layer-wise traing
- 監督
自動編碼器
- 自動編碼器
- 無監督
- loss:重構誤差(輸入,輸出)最小–>盡可能復現輸入
- 輸入=輸出——盡可能復現輸入
- input–encoder–>code–decoder–>output
- code:輸入的特征表達
- 若有多層,則有多個code,多個不同的表達
- 網絡結構:
- 三層
- 輸入x->y
- 隱藏y->z
- 輸出z
- 公式
- y=sigmoid(Wx+b)
- z=sigmoid(W’y+b’)
- 條件
- 輸入神經元數量=輸出(因為要一樣
- 隱藏<輸入
- 想要得到輸入的一個壓縮表示、抽象表示
- 三層
- 簡化:W′=WTW'=W^TW′=WT——這樣只要訓練一組權值向量就可以
- 再加一個約束,若不考慮sigmoid的話:
- 若W?1=WTW^{-1}=W^TW?1=WT:正交矩陣,也就是說W是可以訓練成正交矩陣的
- 再加一個約束,若不考慮sigmoid的話:
- 深度結構
- 預測時,只看encoder:encoder1–>encoder2–>encoder3
- 逐層訓練(訓練時才看解碼過程)
- 將input–encoder1–>code1–decoder1–>input’,訓練好后,去除decoder1
- 將input–>encoder1–>code1–encoder2–>code2–decoder2–>code1’
- 依次讓每一層都得到最小的重構誤差,每一層都一個好的表達
- 監督學習
- encoder(已經得到了一個很好地表達,有一個好的初始值)+分類器
- 有監督微調訓練
- 只調整分類器
- 整體調整(端對端,更好)
- 擴展(通過增加約束來發現輸入數據的結構
- 稀疏自編碼器
- 約束:限制使得得到的表達code盡量稀疏
- L1范數項
- y=wTxy=w^Txy=wTx
- loss(x,w)=∣∣wy?x∣∣2+λΣj∣yj∣loss(x,w)=||wy-x ||^2+\lambda\Sigma_j|y_j|loss(x,w)=∣∣wy?x∣∣2+λΣj?∣yj?∣–>y長度小,loss要最小化,
- z=wy
- 稀疏容易得到更好的表達
- 約束:限制使得得到的表達code盡量稀疏
- 降噪自編碼器
- 存在噪聲
- 提高魯棒性
- 操作
- x–>x’:以一定概率分布擦除x中項(置0)
- x’->y–>z:loss(z,x)做誤差迭代—>這樣就學習到了x’(破損數據)
- 破損數據的優點
- 破損數據訓練出來的w噪聲小
- 破損數據一定程度減輕了訓練數據與測試數據的代購(去除了噪聲)
- 破損數據不影響記憶(人腦也是如此,雖然是隨意擦除)
- 稀疏自編碼器
- 棧式自編碼器的優點
- 有強大的表達能力
- 深度神經網絡的所有優點
- 可以獲得輸入的層次型分組/部分-整體分解結構
- 學習方式:逐層訓練(前一層的輸出是后一層的輸入–依次訓練
深度玻爾茲曼機DBM(deep boltzmann machine(DBM)
| Hopfield網絡 | 單層,全連接(有權,無向圖)wij=wji,wii=0 | 1,-1(0),確定性地取1、0 | E=?12STωSE=-\frac{1}{2}S^T\omega SE=?21?STωS | 1.確定性地接受能量下降方向;2.會達到局部極小(模擬退火解決,以一定概率接受能量上升) |
| Boltzman機器 | p(v)符合玻爾茲曼分布,生成模型,有隱層(與外部無連接),有可見層(輸入層、輸出層)(與外部有鏈接,收到外部約束),全連接(同層也有)(有權無向圖)wij=wji,wii=0 | 1(on),0(off),狀態滿足boltzman分布,以p取1(二值神經元) | PαPβ=exp(?(E(Sα)?E(Sβ))/T)\frac{P_\alpha}{P_\beta}=exp(-(E(S^\alpha)-E(S^\beta))/T)Pβ?Pα??=exp(?(E(Sα)?E(Sβ))/T) | 1.接受能量下降,以p(p(si=1)=11+exp(?bi?Σjsjwji)p(s_i=1)=\frac{1}{1+exp(-b_i-\Sigma_js_jw_{ji})}p(si?=1)=1+exp(?bi??Σj?sj?wji?)1?)接受能量上升(模擬退火)2.訓練時間長,3.結構復雜,4.也可能局部極小;5.功能強大 |
| RBM(受限Boltzman機 | p(v)符合玻爾茲曼分布,生成模型,區別:同層無連接,其他全連接,可見層1(輸入v)、隱藏層1(h,給定可視層下,條件獨立)(二部圖) | vi,hj,{0,1},以p取1(二值神經元) | 聯合組態能量函數E(v,h;θ)=?Σijwijvihj?Σibivi?Σjajhj,pθ(v,h)=1Z(θ)exp(?E),目標函數log(pθ(v))(極大似然)E(v,h;\theta)=-\Sigma_{ij}w_{ij}v_ih_j-\Sigma_{i}b_{i}v_i-\Sigma_{j}a_{j}h_j, p_\theta(v,h)=\frac{1}{Z(\theta)}exp(-E),目標函數log(p_\theta(v))(極大似然)E(v,h;θ)=?Σij?wij?vi?hj??Σi?bi?vi??Σj?aj?hj?,pθ?(v,h)=Z(θ)1?exp(?E),目標函數log(pθ?(v))(極大似然) | |
| DBN | 生成模型,多層,頂層無向圖(RBM)(hn-1-hn),低層(v<-hn-1),去除上層,下層是個RBM | (二值神經元) | 從下到上逐層當做RBM訓練 | 低層是單向的與RBM不一致,所以提出了DBM |
| DBM | p(v)符合玻爾茲曼分布,生成模型,多層,全無向圖 | (二值神經元) | 雙向,每層需要考慮上下層神經元(多層)E(v,h1,h2;θ)=?vTW1h1?h1TW2h2;p(v)=Σh1,h21Zexp(?E)E(v,h^1,h^2;\theta)=-v^TW^1h^1-h^{1T}W^2h^2;p(v)=\Sigma_{h1,h2}\frac {1}{Z}exp(-E)E(v,h1,h2;θ)=?vTW1h1?h1TW2h2;p(v)=Σh1,h2?Z1?exp(?E) | 低層是單向的與RBM不一致,所以提出了DBM |
- Hopfield網絡
- 以確定的方式,確定神經元輸出是1/0:
- 輸入>0:1,輸入<0:0
- BM
- 二值神經元:以不確定性的方式決定輸出是1/0
- sigmoid:p(si=1)=11+exp(?bi?Σjsjwji)p(s_i=1)=\frac{1}{1+exp(-b_i-\Sigma_js_jw_{ji})}p(si?=1)=1+exp(?bi??Σj?sj?wji?)1?
- 狀態分布;PαPβ=exp(?(E(Sα)?E(Sβ))/T)\frac{P_\alpha}{P_\beta}=exp(-(E(S^\alpha)-E(S^\beta))/T)Pβ?Pα??=exp(?(E(Sα)?E(Sβ))/T)
- 狀態:Pα=exp(?(E(Sα))/T){P_\alpha}=exp(-(E(S^\alpha))/T)Pα?=exp(?(E(Sα))/T)
- 二值神經元:以不確定性的方式決定輸出是1/0
- RBM(生成模型)
- 二部圖,層內無連接,層間全連接
- 能量函數:E(v,h;θ)=?Σijwijvihj?Σibivi?ΣjajhjE(v,h;\theta)=-\Sigma_{ij}w_{ij}v_ih_j-\Sigma_{i}b_{i}v_i-\Sigma_{j}a_{j}h_jE(v,h;θ)=?Σij?wij?vi?hj??Σi?bi?vi??Σj?aj?hj?
- (v,h)聯合分布(滿足boltzman):
- pθ(v,h)=1Z(θ)exp(?E)=1Z(θ)ΠijewijvihjΠiebiviΠjeajhj=exp(?E)Σv,hexp(?E)p_\theta(v,h)=\frac{1}{Z(\theta)}exp(-E)=\frac{1}{Z(\theta)}\Pi_{ij}e^{w_{ij}v_ih_j}\Pi_{i}e^{b_{i}v_i}\Pi_je^{a_{j}h_j} =\frac{exp(-E)}{\Sigma_{v,h}exp(-E)}pθ?(v,h)=Z(θ)1?exp(?E)=Z(θ)1?Πij?ewij?vi?hj?Πi?ebi?vi?Πj?eaj?hj?=Σv,h?exp(?E)exp(?E)?
- Z(θ)=Σv,hexp(?E)Z(\theta)=\Sigma_{v,h}exp(-E)Z(θ)=Σv,h?exp(?E)
- ==>可以得到其他分布
- pθ(v,h)=exp(?E)Σv,hexp(?E)p_\theta(v,h)=\frac{exp(-E)}{\Sigma_{v,h}exp(-E)}pθ?(v,h)=Σv,h?exp(?E)exp(?E)?
- pθ(v)=Σhexp(?E)Σv,hexp(?E)p_\theta(v)=\frac{\Sigma_{h}exp(-E)}{\Sigma_{v,h}exp(-E)}pθ?(v)=Σv,h?exp(?E)Σh?exp(?E)?
- pθ(h)=Σvexp(?E)Σv,hexp(?E)p_\theta(h)=\frac{\Sigma_{v}exp(-E)}{\Sigma_{v,h}exp(-E)}pθ?(h)=Σv,h?exp(?E)Σv?exp(?E)?
- pθ(h∣v)=exp(?E)Σhexp(?E)p_\theta(h|v)=\frac{exp(-E)}{\Sigma_{h}exp(-E)}pθ?(h∣v)=Σh?exp(?E)exp(?E)?
- pθ(v∣h)=exp(?E)Σvexp(?E)p_\theta(v|h)=\frac{exp(-E)}{\Sigma_{v}exp(-E)}pθ?(v∣h)=Σv?exp(?E)exp(?E)?
- 目標函數:log(pθ(v))log(p_\theta(v))log(pθ?(v))——極大似然
- N個樣本
- maxΣi=1Nlog(pθ(v))max \Sigma_{i=1}^N log(p_\theta(v))maxΣi=1N?log(pθ?(v))
- log(pθ(v))=logΣhexp(?E)?logΣv′,h′exp(?E)log(p_\theta(v))=log{\Sigma_{h}exp(-E)}-log{\Sigma_{v',h'}exp(-E)}log(pθ?(v))=logΣh?exp(?E)?logΣv′,h′?exp(?E)
- 求導(梯度法、CD算法
- ?log(pθ(v))?θ=Σh(exp(?E)??E?θ)Σhexp(?E)?Σv′,h′(exp(?E)??E?θ)Σv′,h′exp(?E)\frac{\partial {log(p_\theta(v))}}{\partial \theta}=\frac{\Sigma_{h}(exp(-E)\frac{- \partial E}{\partial \theta})}{\Sigma_{h}exp(-E)}-\frac{\Sigma_{v',h'}(exp(-E)\frac{- \partial E}{\partial \theta})}{\Sigma_{v',h'}exp(-E)}?θ?log(pθ?(v))?=Σh?exp(?E)Σh?(exp(?E)?θ??E?)??Σv′,h′?exp(?E)Σv′,h′?(exp(?E)?θ??E?)?
- =Σh(p(h∣v)??E?θ)?Σv′,h′(p(v′,h′)??E?θ)=\Sigma_h(p(h|v)\frac{- \partial E}{\partial \theta})-\Sigma_{v',h'}(p(v',h')\frac{- \partial E}{\partial \theta})=Σh?(p(h∣v)?θ??E?)?Σv′,h′?(p(v′,h′)?θ??E?)
- =Ep(h∣v)(??E?θ)?Ep(v′,h′)(??E?θ)=E_{p(h|v)}(\frac{- \partial E}{\partial \theta})-E_{p(v',h')}(\frac{- \partial E}{\partial \theta})=Ep(h∣v)?(?θ??E?)?Ep(v′,h′)?(?θ??E?)(期望)
- =正面-負面
- 觀測分布:Ep(h∣v)(??E?θ)E_{p(h|v)}(\frac{- \partial E}{\partial \theta})Ep(h∣v)?(?θ??E?):給定觀測數據之后,隱變量對于可視層的在這個狀態之下的一個期望獲得的結果
- 真實分布$E_{p(v’,h’)}(\frac{- \partial E}{\partial \theta}) $:整體的學習期望,在整個網絡,所有變化之下的期望的求導
- 對于具體的參數W,a,b
- E=?vTWh?bTv?aThE=-v^TWh-b^Tv-a^ThE=?vTWh?bTv?aTh
- p(v,h)=1zevTWhebTveaThp(v,h)=\frac{1}{z}e^{v^TWh}e^{b^Tv}e^{a^Th}p(v,h)=z1?evTWhebTveaTh
- p(h∣v)=Πjp(hj∣v)=Πj=e(aj+Σiwijvi)hj1+e(aj+Σiwijvi)p(h|v)=\Pi_jp(h_j|v)=\Pi_j=\frac{e^{(a_j+\Sigma_iw_{ij} v_i)h_j}}{1+e^{(a_j+\Sigma_iw_{ij}v_i)}}p(h∣v)=Πj?p(hj?∣v)=Πj?=1+e(aj?+Σi?wij?vi?)e(aj?+Σi?wij?vi?)hj??
- p(v∣h)=Πjp(vi∣h)=Πi=e(bi+Σjwijhj)vi1+e(bi+Σjwijhj))p(v|h)=\Pi_jp(v_i|h)=\Pi_i=\frac{e^{(b_i+\Sigma_jw_{ij} h_j)v_i}}{1+e^{(b_i+\Sigma_jw_{ij} h_j))}}p(v∣h)=Πj?p(vi?∣h)=Πi?=1+e(bi?+Σj?wij?hj?))e(bi?+Σj?wij?hj?)vi??
- ??E?wij=?vihj\frac{- \partial E}{\partial w_{ij}}=-v_ih_j?wij???E?=?vi?hj?
- ??E?bi=?vi\frac{- \partial E}{\partial b_{i}}=-v_i?bi???E?=?vi?
- ??E?aj=?hj\frac{- \partial E}{\partial a_{j}}=-h_j?aj???E?=?hj?
- ?log(pθ(v))?θ=Ep(h∣v)(??E?θ)?Ep(v′,h′)(??E?θ)\frac{\partial {log(p_\theta(v))}}{\partial \theta}=E_{p(h|v)}(\frac{- \partial E}{\partial \theta})-E_{p(v',h')}(\frac{- \partial E}{\partial \theta})?θ?log(pθ?(v))?=Ep(h∣v)?(?θ??E?)?Ep(v′,h′)?(?θ??E?)
- ?log(pθ(v))?wij=Σhj(p(hj∣v)vihj)?Σv′(p(v′)Σhj′(p(hj′∣v′)vi′hj′))\frac{\partial {log(p_\theta(v))}}{\partial w_{ij}}=\Sigma_{h_j}(p(h_j|v)v_ih_j)-\Sigma_{v'}(p(v')\Sigma_{h'_j}(p(h'_j|v')v'_ih'_j))?wij??log(pθ?(v))?=Σhj??(p(hj?∣v)vi?hj?)?Σv′?(p(v′)Σhj′??(p(hj′?∣v′)vi′?hj′?))
- 進一步簡化=p(hj=1∣v)vi?Σv′(p(v′)p(hj′=1∣v′)vi′))=p(h_j=1|v)v_i-\Sigma_{v'}(p(v')p(h_j'=1|v')v'_i))=p(hj?=1∣v)vi??Σv′?(p(v′)p(hj′?=1∣v′)vi′?))
- 取值0就沒有了,hj=0了都
- ?log(pθ(v))?bi=Σhj(p(hj∣v)vi)?Σv′(p(v′)Σhj′(p(hj′∣v′)vi′))\frac{\partial {log(p_\theta(v))}}{\partial b_{i}}=\Sigma_{h_j}(p(h_j|v)v_i)-\Sigma_{v'}(p(v')\Sigma_{h'_j}(p(h'_j|v')v'_i))?bi??log(pθ?(v))?=Σhj??(p(hj?∣v)vi?)?Σv′?(p(v′)Σhj′??(p(hj′?∣v′)vi′?))
- =vi?Σv′(p(v′)vi′);Σhjp(hj′∣v′)=1=v_i-\Sigma_{v'}(p(v')v'_i);\Sigma_{h_j}p(h_j'|v')=1=vi??Σv′?(p(v′)vi′?);Σhj??p(hj′?∣v′)=1
- ?log(pθ(v))?aj=Σhj(p(hj∣v)hj)?Σv′(p(v′)Σhj′(p(hj′∣v′)hj′))\frac{\partial {log(p_\theta(v))}}{\partial a_{j}}=\Sigma_{h_j}(p(h_j|v)h_j)-\Sigma_{v'}(p(v')\Sigma_{h'_j}(p(h'_j|v')h'_j))?aj??log(pθ?(v))?=Σhj??(p(hj?∣v)hj?)?Σv′?(p(v′)Σhj′??(p(hj′?∣v′)hj′?))
- =p(hj=1∣v)?Σv′(p(v′)p(hj′=1∣v′)))=p(h_j=1|v)-\Sigma_{v'}(p(v')p(h_j'=1|v')))=p(hj?=1∣v)?Σv′?(p(v′)p(hj′?=1∣v′)))
- ?log(pθ(v))?wij=Σhj(p(hj∣v)vihj)?Σv′(p(v′)Σhj′(p(hj′∣v′)vi′hj′))\frac{\partial {log(p_\theta(v))}}{\partial w_{ij}}=\Sigma_{h_j}(p(h_j|v)v_ih_j)-\Sigma_{v'}(p(v')\Sigma_{h'_j}(p(h'_j|v')v'_ih'_j))?wij??log(pθ?(v))?=Σhj??(p(hj?∣v)vi?hj?)?Σv′?(p(v′)Σhj′??(p(hj′?∣v′)vi′?hj′?))
- 計算
- v是已知的,第一項可以計算,但第二項不好計算
- 計算第二項:采樣:E(f(x))=Σxf(x)p(x)=1Lσxf(x)p(x)E(f(x))=\Sigma_xf(x)p(x)=\frac{1}{L}\sigma_{x~f(x)}p(x)E(f(x))=Σx?f(x)p(x)=L1?σx?f(x)?p(x)
- CD-K采樣(與吉布斯采樣存在差異
- v0輸入定
- v0-p(h|v)->h0通過二值神經元計算
- sigmoid:p(si=1)=11+exp(?bi?Σjsjwji)p(s_i=1)=\frac{1}{1+exp(-b_i-\Sigma_js_jw_{ji})}p(si?=1)=1+exp(?bi??Σj?sj?wji?)1?
- h0-p(v|h)->v1(采樣)
- CD-1就已經能夠得到足夠的精度了
- $v={v_i},v^{(0)}=vn $
- 初始化Δwij=0,Δai=0,Δbj=0\Delta w_{ij}=0,\Delta a_i=0,\Delta b_j=0Δwij?=0,Δai?=0,Δbj?=0
- 迭代:
- 所有j,hj(0)p(hj∣v(0))h_j^{(0)}~p(h_j|v^{(0)})hj(0)??p(hj?∣v(0))
- 所有i,vi(0)p(vi∣h(0))v_i^{(0)}~p(v_i|h^{(0)})vi(0)??p(vi?∣h(0))
- 計算梯度取平均值(批處理,每個樣本都疊加
- CD-K采樣(與吉布斯采樣存在差異
- E=?vTWh?bTv?aThE=-v^TWh-b^Tv-a^ThE=?vTWh?bTv?aTh
- N個樣本
總結
以上是生活随笔為你收集整理的国科大高级人工智能3-DNN(BM/RBM/DBN/DBM)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 5 操作系统第二章 进程管理 线程介绍
- 下一篇: 大数据建模、分析、挖掘技术应用研修班的通