之前看過的一些deep-learning的文章







PCANet: A Simple Deep Learning Baseline for  Image Classification?
Arxiv 2014
這篇文章提出了一種新的神經網絡filter,即PCA-filter,在分類任務上取得很好的特徵提取的效果,可以用來爲一些deep-network做baseline,具有結構簡單,訓練過程不需要迭代等優點。
下面以 2-stage PCA-NET爲例介紹其特徵提取的過程
PCA過程:對於每一個stage,其輸入是圖像,對於圖像的每個像素點,取以它爲中心k1*k2大小的矩形拉成向量,將每個向量看成一列,所有圖像的向量就得到了一個矩陣,對該矩陣做PCA,也就是取它的前L個特徵向量,把每個特徵向量還原爲k1*k2矩陣,我們就得到了L1個卷積核,然後做卷積就得到更多新圖像
二值化過程:對最終得到的圖片,有如下過程,就得到L1張圖
直方圖統計:然後又分成B個block,每個block做直方圖統計,每個直方圖有,最後所有直方圖組合起來就得到最終特徵
擴展:randNET-Be more specific, for random filters, i.e., the elements of W 1 l and W 2 l , are generated following standard Gaussian distribution.
LDANET-,,
The solution is known as the L1 principal eigenvectors of 
The LDA filters are thus expressed as 




Training Hierarchical Feed-Forward Visual Recognition  Models Using Transfer Learning from Pseudo-Tasks
ECCV 2008
這篇文章在CNN上實現了multi-task learning(transfer learning),基本想法就是我的樣本不夠,那我就多加一點任務來約束我參數到達的空間從而使效果變好。
先簡單介紹multi-task learning,筆者通過對NN的transfer-learning解釋,輔助任務相當於在損失函數後面加了regularization項,最小化該項等同於最小化實際數據的label與通過NN generate出來的輸出分佈之間的KL-divergence,但這裏隱含了下面的假設:
Put it another way, (6) is the KL-divergence between two multivariate normal distributions with zero means and covariance matrices
given byK(θ)andKΛ.
(損失函數)
從上面可以看出輔助任務的份額是可以控制的,不像你每張圖取patch充數據庫
接下來筆者開始講述對於CNN的具體做法,共用同樣的網絡結構(最頂層當然不一樣啦),每個輔助任務首先選一張圖片的一個區域,選一個對應該區域的函數作爲輸出(比如最大像素值),實際上最後是4個值,然後只對這個區域做convolution。對於每個輔助任務,每張訓練圖片的區域都要一樣,對於不同的任務,函數應該一樣。【上述是我的理解還存在一些疑問】
These pseudo-tasks encode our prior knowledge that a similarity matching between an image and a spatial pattern should tolerate a small change of scale and translation  as well as slight intensity variation.
Problem:這篇文章說它就是把先驗和CNN這種泛化的方法結合,上面的實現只是搞了一種先驗,有沒有廣泛的方法用來根據先驗設計輔助任務?




Maxout Networks
這篇文章主要是提出了一種激活函數maxout,取和它相連的節點裏最大的值,理論依據是這可以擬合任意的凸的連續函數
作者通過實驗發現這個玩意和dropout一起訓練效果很好。爲什麼這麼好呢?因爲dropout本來就是對model-average的一估計,而在使用maxout的情形下這種估計更接近現實。
作者在這篇文章中提出了假設:We hypothesize  that the high proportion of zeros and the difficulty of  escaping them impairs the optimization performance  of rectifiers relative to maxout.
然後maxout有這種性質:are always active, transition between positive and negative activations at  about equal rates in each direction





Improving neural networks by preventing  co-adaptation of feature detectors
dropout主要用在fine-tuning的步驟中,在對每一個train-case訓練時,每個節點可以以一定概率被移除(僅在這個樣例訓練的時候被移除,下一個樣例訓練的時候還在,和它相連的邊權值這次不改變),visual節點被不被移除可以自己選擇,
這樣可以改善訓練效果。這種方法走到極端就是貝葉斯,但它比貝葉斯易於操作,訓練代價小。也可以把它看做是boosting和bagging的極端情況,它在某種程度上排除了由於網絡結構選擇造成的over-fitting,類似於訓練了多個網絡再把它們綜合起來




A Fast Learning Algorithm for Deep Belief Nets
 這篇文章秉承了hinton一貫的晦澀難懂的作風,就不吐槽了,下面先貼一張圖,講講DBN的基本思路和訓練方法,還有一些理論上的問題:
DBN主要有三種權值:最上面兩層的RBM的undirected weights,下面有向部分用來inference的generate-weights,下面用來重構的recognition-weights,其訓練方法類似於DNN,對於每一層求隱藏單元的後驗分佈,,這是inference的式子
hinton給出了證明,我們如果在訓練每一層時認爲recognition-weight是generate-weight的逆,如上圖所示,則每一層最大化P(v|H)的做法
實際上是增長整個模型下logP(v)的下界,所以這樣的早期訓練方法是有幫助的
接下來,我們談一下最後的fine-tuning過程,分爲top-down和down-top過程
. In the “up-pass,” the recognition weights are used in a bottom-up pass that stochastically picks  a state for every hidden variable. The generative weights on the directed connections are then adjusted using the maximum likelihood learning rule。

The “down-pass” starts with a state of the top-level associative memory and uses the top-down generative connections to stochastically activate each lower layer in turn. During the down-pass, the top-level undirected  connections and the generative directed connections are not changed. Only  the bottom-up recognition weights are modified.
但這篇文章有很多不能理解的地方,下面一一提出:
Problm1:上面所提到的證明中的Q是什麼,又是如何求得的?整個證明又是怎麼回事,沒看大懂啊
Problem2:裏面提到的補充先驗是不是就是共軛先驗,爲什麼說complementary prior能確保factorial的性質?
Problem3: In discriminative learning, each training case constrains the parameters  only by as many bits of information as are required to specify  the label. For a generative model, each training case constrains  the parameters by the number of bits required to specify the  input.
上面這句話的理由是什麼?




A Practical Guide to Training  Restricted Boltzmann Machines
提供了一些在訓練RBM時實際的建議,下面分別介紹
1.將訓練集分爲多個mini-batch,這是爲了並行,如果訓練樣本有等可能的幾個類,mini-batchsize=類別數
不然一般取10,但不應過大
2.重建錯誤是一個參考標準,但不要trust it。
Problem:爲什麼當吉布斯採樣的馬氏鏈mixing rate小時,即使數據分佈和模型分佈差別較大重建錯誤也不大。
3.計算訓練集 和validation set的能量函數,兩者應該相差不大,如果後者遠大於前者,則已經過擬合了。
4.學習速率不應過大,在權值的千分之一量級爲好。
5.用mean:0,標準差:0.01的高斯分佈初始化權值,將隱藏單元的bias設爲0
6.Problem:momentum到底是什麼玩意,在RBM裏扮演什麼角色?
7.權值衰減的作用:防止過擬合,使hidden unit的receptive field更平滑,使那些擁有極大權值相連的隱藏單元失效,使吉布斯採樣更快更好。
8.隱藏單元的稀疏化:選定一個小概率p,計算當前隱藏單元1的概率,計算它們的cross-entropy作爲懲罰項。
9.隱藏單元的數目:表達一個數據向量所需的比特數約等於參數的個數
10.學習算法的變體:不再權值一變化就建立起新的馬氏鏈完成吉布斯採樣,而是維護一個龐大的馬氏鏈羣,並在更新權值的同時更新它們。
11.觀測學習的過程:權值的直方圖分佈,可見單元與隱藏單元的bias,對於一隱單元和它相連的權值,還有每個訓練樣例對應的隱藏單元序列爲1的概率組成的二維圖
12.使用RBM來進行判別:可以把隱單元作爲特徵使用別的分類算法,也可以對每一個類訓練一個RBM網絡,比較樣例在它們中的free energy
13處理missing value:對於遺失數據較少的情況,可以給遺失單元賦一個值,然後訓練時不斷更新它;對於較多時,可以訓練有不同可見單元數的RBM



An Analysis of Single-Layer Networks in Unsupervised Feature Learning
這篇文章主要是講影響network訓練效果的一些因素,指出stride,whitening,receptive field,features是主要因素
Problem:訓練的時候先對一張圖片sample出多個patch,得到特徵時也是從一張圖片多個patch的結果pooling,這是
一般情況還是特例?這樣做是爲啥,是爲了模仿convolution的過程麼,還是有別的原因,對於Convolution Network,是否也是這樣做?



Deep Neural Networks for Object Detection
這篇文章讀來極度操蛋,疑點重重,下面先大致講一下流程:

DNN部分:將輸入劃分爲d*d個區域,然後給出每個區域的得分,優化函數
爲了防止把相鄰object劃在一個區域,所以要訓練五種方位的網絡
Localization部分:用9中大小十種長寬比的窗口掃描原圖,得到它們對應的得分
然後留下分數大於閾值的窗口,之後使用DNN做分類器,留下分類結果爲正的窗口
Refine部分:對於之前得到的窗口,放大之後使用DNN得到相應mask,對這一步結果重複Localization部分的動作得到最終結果
DNN Training部分:對一幅圖片採樣得到多個部分進行訓練,大小服從uniform分佈,每一類物品訓練一個網絡
Problem:sample的大小都不一樣,請問特麼是怎麼訓練的?





Salient Object Detection: A Discriminative Regional Feature Integration Approach
基本想法:先做圖像分割,有M層(每一層包含多個區域),每上一層由下一層merge得到
對每個區域做特徵提取,特徵分三種:Regional contrast descriptor,Regional property descriptor,Regional backgroundness descriptor,人爲規定
然後用隨機森林迴歸得到區域特徵與區域顯著性得分的情況
預測時先把區域的得分賦給像素,然後通過一個函數把M層的得分結合起來,得到像素的最終得分
利用像素的得分來確定得分最高的區域即是我們所求


Scalable Object Detection using Deep Neural Networks
通過DNN得到給定數量窗口的座標(左上角和右下角)以及該區域的confidence
假設將第i個框賦給第j類物品,之後計算損失=config-loss+match-loss
 
gi是已經確定的有對象的框的中心點,由人工標註得到
config-loss是爲了最大化confidence
求分配X使F最小,然後再對框的座標以及confidence求導來修正DNN的參數





PCANet: A Simple Deep Learning Baseline for  Image Classification?
Arxiv 2014
這篇文章提出了一種新的神經網絡filter,即PCA-filter,在分類任務上取得很好的特徵提取的效果,可以用來爲一些deep-network做baseline,具有結構簡單,訓練過程不需要迭代等優點。
下面以 2-stage PCA-NET爲例介紹其特徵提取的過程
PCA過程:對於每一個stage,其輸入是圖像,對於圖像的每個像素點,取以它爲中心k1*k2大小的矩形拉成向量,將每個向量看成一列,所有圖像的向量就得到了一個矩陣,對該矩陣做PCA,也就是取它的前L個特徵向量,把每個特徵向量還原爲k1*k2矩陣,我們就得到了L1個卷積核,然後做卷積就得到更多新圖像
二值化過程:對最終得到的圖片,有如下過程,就得到L1張圖
直方圖統計:然後又分成B個block,每個block做直方圖統計,每個直方圖有,最後所有直方圖組合起來就得到最終特徵
擴展:randNET-Be more specific, for random filters, i.e., the elements of W 1 l and W 2 l , are generated following standard Gaussian distribution.
LDANET-,,
The solution is known as the L1 principal eigenvectors of 
The LDA filters are thus expressed as 




Training Hierarchical Feed-Forward Visual Recognition  Models Using Transfer Learning from Pseudo-Tasks
ECCV 2008
這篇文章在CNN上實現了multi-task learning(transfer learning),基本想法就是我的樣本不夠,那我就多加一點任務來約束我參數到達的空間從而使效果變好。
先簡單介紹multi-task learning,筆者通過對NN的transfer-learning解釋,輔助任務相當於在損失函數後面加了regularization項,最小化該項等同於最小化實際數據的label與通過NN generate出來的輸出分佈之間的KL-divergence,但這裏隱含了下面的假設:
Put it another way, (6) is the KL-divergence between two multivariate normal distributions with zero means and covariance matrices
given byK(θ)andKΛ.
(損失函數)
從上面可以看出輔助任務的份額是可以控制的,不像你每張圖取patch充數據庫
接下來筆者開始講述對於CNN的具體做法,共用同樣的網絡結構(最頂層當然不一樣啦),每個輔助任務首先選一張圖片的一個區域,選一個對應該區域的函數作爲輸出(比如最大像素值),實際上最後是4個值,然後只對這個區域做convolution。對於每個輔助任務,每張訓練圖片的區域都要一樣,對於不同的任務,函數應該一樣。【上述是我的理解還存在一些疑問】
These pseudo-tasks encode our prior knowledge that a similarity matching between an image and a spatial pattern should tolerate a small change of scale and translation  as well as slight intensity variation.
Problem:這篇文章說它就是把先驗和CNN這種泛化的方法結合,上面的實現只是搞了一種先驗,有沒有廣泛的方法用來根據先驗設計輔助任務?




Maxout Networks
這篇文章主要是提出了一種激活函數maxout,取和它相連的節點裏最大的值,理論依據是這可以擬合任意的凸的連續函數
作者通過實驗發現這個玩意和dropout一起訓練效果很好。爲什麼這麼好呢?因爲dropout本來就是對model-average的一估計,而在使用maxout的情形下這種估計更接近現實。
作者在這篇文章中提出了假設:We hypothesize  that the high proportion of zeros and the difficulty of  escaping them impairs the optimization performance  of rectifiers relative to maxout.
然後maxout有這種性質:are always active, transition between positive and negative activations at  about equal rates in each direction





Improving neural networks by preventing  co-adaptation of feature detectors
dropout主要用在fine-tuning的步驟中,在對每一個train-case訓練時,每個節點可以以一定概率被移除(僅在這個樣例訓練的時候被移除,下一個樣例訓練的時候還在,和它相連的邊權值這次不改變),visual節點被不被移除可以自己選擇,
這樣可以改善訓練效果。這種方法走到極端就是貝葉斯,但它比貝葉斯易於操作,訓練代價小。也可以把它看做是boosting和bagging的極端情況,它在某種程度上排除了由於網絡結構選擇造成的over-fitting,類似於訓練了多個網絡再把它們綜合起來




A Fast Learning Algorithm for Deep Belief Nets
 這篇文章秉承了hinton一貫的晦澀難懂的作風,就不吐槽了,下面先貼一張圖,講講DBN的基本思路和訓練方法,還有一些理論上的問題:
DBN主要有三種權值:最上面兩層的RBM的undirected weights,下面有向部分用來inference的generate-weights,下面用來重構的recognition-weights,其訓練方法類似於DNN,對於每一層求隱藏單元的後驗分佈,,這是inference的式子
hinton給出了證明,我們如果在訓練每一層時認爲recognition-weight是generate-weight的逆,如上圖所示,則每一層最大化P(v|H)的做法
實際上是增長整個模型下logP(v)的下界,所以這樣的早期訓練方法是有幫助的
接下來,我們談一下最後的fine-tuning過程,分爲top-down和down-top過程
. In the “up-pass,” the recognition weights are used in a bottom-up pass that stochastically picks  a state for every hidden variable. The generative weights on the directed connections are then adjusted using the maximum likelihood learning rule。

The “down-pass” starts with a state of the top-level associative memory and uses the top-down generative connections to stochastically activate each lower layer in turn. During the down-pass, the top-level undirected  connections and the generative directed connections are not changed. Only  the bottom-up recognition weights are modified.
但這篇文章有很多不能理解的地方,下面一一提出:
Problm1:上面所提到的證明中的Q是什麼,又是如何求得的?整個證明又是怎麼回事,沒看大懂啊
Problem2:裏面提到的補充先驗是不是就是共軛先驗,爲什麼說complementary prior能確保factorial的性質?
Problem3: In discriminative learning, each training case constrains the parameters  only by as many bits of information as are required to specify  the label. For a generative model, each training case constrains  the parameters by the number of bits required to specify the  input.
上面這句話的理由是什麼?




A Practical Guide to Training  Restricted Boltzmann Machines
提供了一些在訓練RBM時實際的建議,下面分別介紹
1.將訓練集分爲多個mini-batch,這是爲了並行,如果訓練樣本有等可能的幾個類,mini-batchsize=類別數
不然一般取10,但不應過大
2.重建錯誤是一個參考標準,但不要trust it。
Problem:爲什麼當吉布斯採樣的馬氏鏈mixing rate小時,即使數據分佈和模型分佈差別較大重建錯誤也不大。
3.計算訓練集 和validation set的能量函數,兩者應該相差不大,如果後者遠大於前者,則已經過擬合了。
4.學習速率不應過大,在權值的千分之一量級爲好。
5.用mean:0,標準差:0.01的高斯分佈初始化權值,將隱藏單元的bias設爲0
6.Problem:momentum到底是什麼玩意,在RBM裏扮演什麼角色?
7.權值衰減的作用:防止過擬合,使hidden unit的receptive field更平滑,使那些擁有極大權值相連的隱藏單元失效,使吉布斯採樣更快更好。
8.隱藏單元的稀疏化:選定一個小概率p,計算當前隱藏單元1的概率,計算它們的cross-entropy作爲懲罰項。
9.隱藏單元的數目:表達一個數據向量所需的比特數約等於參數的個數
10.學習算法的變體:不再權值一變化就建立起新的馬氏鏈完成吉布斯採樣,而是維護一個龐大的馬氏鏈羣,並在更新權值的同時更新它們。
11.觀測學習的過程:權值的直方圖分佈,可見單元與隱藏單元的bias,對於一隱單元和它相連的權值,還有每個訓練樣例對應的隱藏單元序列爲1的概率組成的二維圖
12.使用RBM來進行判別:可以把隱單元作爲特徵使用別的分類算法,也可以對每一個類訓練一個RBM網絡,比較樣例在它們中的free energy
13處理missing value:對於遺失數據較少的情況,可以給遺失單元賦一個值,然後訓練時不斷更新它;對於較多時,可以訓練有不同可見單元數的RBM



An Analysis of Single-Layer Networks in Unsupervised Feature Learning
這篇文章主要是講影響network訓練效果的一些因素,指出stride,whitening,receptive field,features是主要因素
Problem:訓練的時候先對一張圖片sample出多個patch,得到特徵時也是從一張圖片多個patch的結果pooling,這是
一般情況還是特例?這樣做是爲啥,是爲了模仿convolution的過程麼,還是有別的原因,對於Convolution Network,是否也是這樣做?



Deep Neural Networks for Object Detection
這篇文章讀來極度操蛋,疑點重重,下面先大致講一下流程:

DNN部分:將輸入劃分爲d*d個區域,然後給出每個區域的得分,優化函數
爲了防止把相鄰object劃在一個區域,所以要訓練五種方位的網絡
Localization部分:用9中大小十種長寬比的窗口掃描原圖,得到它們對應的得分
然後留下分數大於閾值的窗口,之後使用DNN做分類器,留下分類結果爲正的窗口
Refine部分:對於之前得到的窗口,放大之後使用DNN得到相應mask,對這一步結果重複Localization部分的動作得到最終結果
DNN Training部分:對一幅圖片採樣得到多個部分進行訓練,大小服從uniform分佈,每一類物品訓練一個網絡
Problem:sample的大小都不一樣,請問特麼是怎麼訓練的?





Salient Object Detection: A Discriminative Regional Feature Integration Approach
基本想法:先做圖像分割,有M層(每一層包含多個區域),每上一層由下一層merge得到
對每個區域做特徵提取,特徵分三種:Regional contrast descriptor,Regional property descriptor,Regional backgroundness descriptor,人爲規定
然後用隨機森林迴歸得到區域特徵與區域顯著性得分的情況
預測時先把區域的得分賦給像素,然後通過一個函數把M層的得分結合起來,得到像素的最終得分
利用像素的得分來確定得分最高的區域即是我們所求


Scalable Object Detection using Deep Neural Networks
通過DNN得到給定數量窗口的座標(左上角和右下角)以及該區域的confidence
假設將第i個框賦給第j類物品,之後計算損失=config-loss+match-loss
 
gi是已經確定的有對象的框的中心點,由人工標註得到
config-loss是爲了最大化confidence
求分配X使F最小,然後再對框的座標以及confidence求導來修正DNN的參數

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