深度学习(二十八)——SOM, Group Normalization, MobileNet, 花式卷积进阶
RBM & DBN & Deep Autoencoder(續)
DBN
RBM不僅可以單獨使用,也可以堆疊起來形成Deep Belief Nets(DBNs),其中每個RBM層都與其前后的層進行通信。單個層中的節點之間不會橫向通信。
深度置信網絡可以直接用于處理無監督學習中的未標記數據聚類問題,也可以在RBM層的堆疊結構最后加上一個Softmax層來構成分類器。
除了第一個和最后一個層,深度置信網絡中的每一層都扮演著雙重角色:既是前一層節點的隱藏層,也是后一層節點的輸入(或“可見”)層。深度置信網絡是由多個單層網絡組成的。
深度置信網絡常用于圖像、視頻序列和動作捕捉數據的識別、聚類與生成。
參考:
https://mp.weixin.qq.com/s/7V0GSWcKZGyXeLeMPhE9fQ
神經網絡簡史:BP算法后的又一突破—信念網絡
Deep Autoencoder
Deep Autoencoder由兩個對稱的DBN組成,其中一個DBN通常有四到五個淺層,構成負責編碼的部分,另一個四到五層的網絡則是解碼部分。
讓我們用以下的示例來描繪一個編碼器的大致結構:
784 (輸入) —-> 1000 —-> 500 —-> 250 —-> 100 —–> 30
假設進入網絡的輸入是784個像素(MNIST數據集中28x28像素的圖像),那么深度自動編碼器的第一層應當有1000個參數,即相對較大。
這可能會顯得有違常理,因為參數多于輸入往往會導致神經網絡過擬合。
在這個例子當中, 增加參數從某種意義上來看也就是增加輸入本身的特征,而這將使經過自動編碼的數據最終能被解碼。
其原因在于每個層中用于變換的sigmoid置信單元的表示能力。sigmoid置信單元無法表示與實數數據等量的信息和差異,而補償方法之一就是擴張第一個層。
各個層將分別有1000、500、250、100個節點,直至網絡最終生成一個30個數值長的向量。這一30個數值的向量是深度自動編碼器負責預定型的前半部分的最后一層,由一個普通的RBM生成,而不是一個通常會出現在深度置信網絡末端的Softmax或邏輯回歸分類輸出層。
解碼的DBN是一個完全相反的結構。
相比Autoencoder,Deep Autoencoder顯然能夠“消化”更復雜的數據。
參考
https://deeplearning4j.org/cn/restrictedboltzmannmachine
受限玻爾茲曼機基礎教程
http://txshi-mt.com/2018/02/04/UTNN-11-Hopfield-Nets-and-Boltzmann-Machines/
Hopfield網和玻爾茲曼機
http://txshi-mt.com/2018/02/10/UTNN-12-Restricted-Boltzmann-Machines/
受限玻爾茲曼機
http://www.cnblogs.com/kemaswill/p/3269138.html
基于受限玻爾茲曼機(RBM)的協同過濾
http://www.cnblogs.com/kemaswill/p/3203605.html
受限波爾茲曼機簡介
https://mp.weixin.qq.com/s/MqnJ39GPrzP4xJWDZi9gnQ
博士生開源深度學習C++庫DLL:快速構建卷積受限玻爾茲曼機
http://www.cs.toronto.edu/~fritz/absps/cogscibm.pdf
A Learning Algorithm for Boltzmann Machines
http://www.cs.toronto.edu/~hinton/absps/dbm.pdf
Deep Boltzmann Machines
http://www.cs.toronto.edu/~hinton/absps/guideTR.pdf
A Practical Guide to Training Restricted Boltzmann Machines
http://www.taodocs.com/p-62206829.html
《受限波爾茲曼機簡介》張春霞著
https://mp.weixin.qq.com/s/mXJthyETebtww5TvEljuoQ
預測電影偏好?如何利用自編碼器實現協同過濾方法
https://blog.csdn.net/hanlin_tan/article/details/62078935
機器學習中的玻爾茲曼分布——最小代價和極大似然
SOM
Self Organizing Maps (SOM)(也叫kohonen network)是一種無監督算法,主要用于聚類和可視化。
Teuvo Kohonen,1934年生,芬蘭科學家。Helsinki University of Technology博士和教授。
上圖是一個SOM可視化的案例。左邊的六角形網格被稱作SOM的map space。其中,越相似的國家,在map space上的顏色和位置越接近。
下面來說一下SOM的具體訓練方法。
構建map space
首先,map space是有拓撲關系的。這個拓撲關系需要我們確定,如果想要一維的模型,那么隱藏節點依次連成一條線;如果想要二維的拓撲關系,那么就組成一個平面網格。換句話說,SOM的目標就是將任意維度的輸入離散化到一維或者二維(更高維度的不常見)的離散空間上。
網格的形狀一般是矩形或六角形。網格中的每個node關聯一個weight vector,其中的值表示一個input space中的點,因此weight vector和input vector的維度是相同的。
初始化weight vector
上圖展示了SOM的訓練過程。SOM訓練的目的就是使map space盡量貼合樣本分布。
因此,通常有兩種初始化weight vector的方法:
1.用小的隨機值初始化。
2.從最大的兩個主特征向量上進行采樣。
顯然,第2種訓練起來要快的多。因為它已經是SOM weights的一個很好的近似了。
訓練SOM
1.對于每一個輸入數據,找到與它最相配的node,這個node一般被稱作best matching unit(BMU)。這里一般使用Euclidean distance作為相似度的度量。
2.更新BMU的weight,使之更接近輸入數據。同時也要更新BMU周圍的node的weight,離BMU越近,更新幅度越大。更新公式為:
Wv(s+1)=Wv(s)+θ(u,v,s)?α(s)?(D(t)?Wv(s))Wv(s+1)=Wv(s)+θ(u,v,s)?α(s)?(D(t)?Wv(s))
其中,D(t)是輸入數據,u表示BMU的index,v是被更新node的index,s是迭代的次數,α(s)α(s)是更新率,一般為一個單調遞減函數。θ(u,v,s)θ(u,v,s)是時空衰減因子,公式通常為:
θ(u,v,s)=exp(?dist(u,v)2σ2(s))θ(u,v,s)=exp?(?dist(u,v)2σ2(s))
反復多次進行以上2步的迭代之后,SOM會趨于收斂。
與K-Means的比較
同樣是無監督的聚類方法,SOM與K-Means有什么不同呢?
1.K-Means需要事先定下類的個數,也就是K的值。SOM則不用,隱藏層中的某些節點可以沒有任何輸入數據屬于它。所以,K-Means受初始化的影響要比較大。
2.K-means為每個輸入數據找到一個最相似的類后,只更新這個類的參數。SOM則會更新臨近的節點。所以K-mean受noise data的影響比較大,SOM的準確性可能會比k-means低(因為也更新了臨近節點)。
3.SOM的可視化比較好。優雅的拓撲關系圖。
上圖中藍線表示PCA的主軸,而紅點是SOM的node結點,可見SOM對數據的貼合程度要高于PCA。
參考
http://chem-eng.utoronto.ca/~datamining/Presentations/SOM.pdf
Self-Organizing Maps
http://www.cnblogs.com/sylvanas2012/p/5117056.html
Self Organizing Maps (SOM): 一種基于神經網絡的聚類算法
http://blog.csdn.net/Loyal2M/article/details/11225987
聚類算法實踐(3)——PCCA、SOM、Affinity Propagation
http://www.ai-junkie.com/ann/som/som1.html
Kohonen’s Self Organizing Feature Maps
ESN
Echo State Network
https://blog.csdn.net/zwqhehe/article/details/77025035
回聲狀態網絡(ESN)原理詳解
Group Normalization
論文:
《Group Normalization》
參考:
https://mp.weixin.qq.com/s/H2GmqloNumttFlaSArjgUg
FAIR何愷明等人提出組歸一化:替代批歸一化,不受批量大小限制
https://mp.weixin.qq.com/s/44RvXEYYc5lebsHs_ooswg
全面解讀Group Normalization
MobileNet
論文:
《MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications》
代碼:
https://github.com/Zehaos/MobileNet
參考:
https://mp.weixin.qq.com/s/f3bmtbCY5BfA4v3movwLVg
向手機端神經網絡進發:MobileNet壓縮指南
https://mp.weixin.qq.com/s/mcK8M6pnHiZZRAkYVdaYGQ
MobileNet在手機端上的速度評測:iPhone 8 Plus竟不如iPhone 7 Plus
https://mp.weixin.qq.com/s/2XqBeq3N4mvu05S1Jo2UwA
CNN模型之MobileNet
https://mp.weixin.qq.com/s/fdgaDoYm2sfjqO2esv7jyA
Google論文解讀:輕量化卷積神經網絡MobileNetV2
https://mp.weixin.qq.com/s/7vFxmvRZuM2DqSYN7C88SA
谷歌發布MobileNetV2:可做語義分割的下一代移動端計算機視覺架構
https://mp.weixin.qq.com/s/lu0GHCpWCmogkmHRKnJ8zQ
淺析兩代MobileNet
花式卷積進階
可變形卷積核
MSRA于2017年提出了可變形卷積核的概念。
論文:
《Deformable Convolutional Networks》
(a) 所示的正常卷積規律的采樣 9 個點(綠點),(b)(c)(d) 為可變形卷積,在正常的采樣坐標上加上一個位移量(藍色箭頭),其中(c)(d) 作為 (b) 的特殊情況,展示了可變形卷積可以作為尺度變換,比例變換和旋轉變換的特殊情況。
如上圖所示,位移量也成為了網絡中待學習的參數。
參考:
https://mp.weixin.qq.com/s/okI3MT3E2o2PKCeokE7Niw
MSRA視覺組最新研究:可變形卷積網絡
http://mp.weixin.qq.com/s/dvuX3Ih_DZrv0kgqFn8-lg
卷積神經網絡結構變化——可變形卷積網絡deformable convolutional networks
https://mp.weixin.qq.com/s/iN2LDAQ2ee-rQnlD3N1yaw
變形卷積核、可分離卷積?CNN中十大拍案叫絕的操作!
http://www.msra.cn/zh-cn/news/features/deformable-convolutional-networks-20170609
可變形卷積網絡:計算機新“視”界
https://www.jianshu.com/p/940d21c79aa3
Deformable Convolution Networks
3D卷積
3D卷積一般用于視頻(2D圖像+1D時序)和醫學影像(3D立體圖像)的分析處理中。
如上圖所示,3D卷積的kernel不再是2D的,而是3D的。
論文:
《A two-stage 3D Unet framework for multi-class segmentation on full resolution image》
處理大型高分辨率3D數據時的一個常見問題是,由于計算設備的存儲容量有限,輸入深度CNN的體積必須進行裁剪(crop)或降采樣(downsample)。這些操作會導致輸入數據 batches 中分辨率的降低和類不平衡的增加,從而降低分割算法的性能。
受到圖像超分辨率CNN(SRCNN)和self-normalization(SNN)的架構的啟發,我們開發了一個兩階段修改的Unet框架,它可以同時學習檢測整個體積內的ROI并對體素進行分類而不會丟失原始圖像解析度。對各種多模式音量的實驗表明,當用簡單加權的模子系數和我們定制的學習程序進行訓練時,該框架顯示比具有高級相似性度量標準的最先進的深CNN更好的分割性能。
參考:
https://zhuanlan.zhihu.com/p/21325913
3D卷積神經網絡Note01
https://zhuanlan.zhihu.com/p/21331911
3D卷積神經網絡Note02
https://zhuanlan.zhihu.com/p/31841353
3D CNN閱讀筆記
總結
以上是生活随笔為你收集整理的深度学习(二十八)——SOM, Group Normalization, MobileNet, 花式卷积进阶的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深度学习(二十六)——VAE
- 下一篇: 机器学习(三十一)——Linear Di