deeplearning URL
生活随笔
收集整理的這篇文章主要介紹了
deeplearning URL
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Deep learning:五十一(CNN的反向求導及練習) 摘要: 前言: CNN作為DL中最成功的模型之一,有必要對其更進一步研究它。雖然在前面的博文Stacked CNN簡單介紹中有大概介紹過CNN的使用,不過那是有個前提的:CNN中的參數必須已提前學習好。而本文的主要目的是介紹CNN參數在使用bp算法時該怎么訓練,畢竟CNN中有卷積層和下采樣層,雖然和M...閱讀全文 posted @?2013-12-10 23:36?tornadomeet 閱讀(44394) |?評論 (37)?編輯
Deep learning:五十(Deconvolution Network簡單理解) 摘要: 深度網絡結構是由多個單層網絡疊加而成的,而常見的單層網絡按照編碼解碼情況可以分為下面3類:既有encoder部分也有decoder部分:比如常見的RBM系列(由RBM可構成的DBM, DBN等),autoencoder系列(以及由其擴展的sparse autoencoder, denoise a...閱讀全文 posted @?2013-11-26 21:05?tornadomeet 閱讀(10034) |?評論 (10)?編輯
Deep learning:四十九(RNN-RBM簡單理解) 摘要: 前言: 本文主要是bengio的deep learning tutorial教程主頁中最后一個sample:rnn-rbm in polyphonic music. 即用RNN-RBM來model復調音樂,訓練過程中采用的是midi格式的音頻文件,接著用建好的model來產生復調音樂。對音樂建模的難點在與每首樂曲中幀間是高度時間相關的(這樣樣本的維度會很高),用普通的網絡模型是不能搞定的(普通設計網絡模型沒有考慮時間維度,圖模型中的HMM有這方面的能力),這種情況下可以采用RNN來處理,這里的RNN為recurrent neural network中文為循環神經網絡,另外還有一種RNN為...閱讀全文 posted @?2013-11-23 21:54?tornadomeet 閱讀(37065) |?評論 (3)?編輯
Deep learning:四十八(Contractive AutoEncoder簡單理解) 摘要: Contractive autoencoder是autoencoder的一個變種,其實就是在autoencoder上加入了一個規則項,它簡稱CAE(對應中文翻譯為?)。通常情況下,對權值進行懲罰后的autoencoder數學表達形式為: 這是直接對W的值進行懲罰的,而今天要講的CAE其數學表達式同樣非常簡單,如下: 其中的是隱含層輸出值關于權重的雅克比矩陣,而 表示的是該雅克比矩陣的F范數的平方,即雅克比矩陣中每個元素求平方 然后求和,更具體的數學表達式為: 關于雅克比矩陣的介紹可參考雅克比矩陣&行列式——單純的矩陣和算子,關于F范數可參考我前面的博文Sparse ...閱讀全文 posted @?2013-11-20 23:37?tornadomeet 閱讀(6919) |?評論 (9)?編輯
Deep learning:四十七(Stochastic Pooling簡單理解) 摘要: CNN中卷積完后有個步驟叫pooling, 在ICLR2013上,作者Zeiler提出了另一種pooling手段(最常見的就是mean-pooling和max-pooling),叫stochastic pooling,在他的文章還給出了效果稍差點的probability weighted pooling方法。 stochastic pooling方法非常簡單,只需對feature map中的元素按照其概率值大小隨機選擇,即元素值大的被選中的概率也大。而不像max-pooling那樣,永遠只取那個最大值元素。 假設feature map中的pooling區域元素值如下: 3*3大小...閱讀全文 posted @?2013-11-19 19:11?tornadomeet 閱讀(10019) |?評論 (1)?編輯
Deep learning:四十六(DropConnect簡單理解) 摘要: 和maxout(maxout簡單理解)一樣,DropConnect也是在ICML2013上發表的,同樣也是為了提高Deep Network的泛化能力的,兩者都號稱是對Dropout(Dropout簡單理解)的改進。 我們知道,Dropout是在訓練過程中以一定概率1-p將隱含層節點的輸出值清0,而用bp更新權值時,不再更新與該節點相連的權值。用公式描述如下: 其中v是n*1維的列向量,W是d*n維的矩陣,m是個d*1的01列向量,a(x)是一個滿足a(0)=0的激發函數形式。這里的m和a(Wv)相乘是對應元素的相乘。 而DropConnect的思想也很簡單,與Dropout不同的是...閱讀全文 posted @?2013-11-18 21:46?tornadomeet 閱讀(6557) |?評論 (0)?編輯
Deep learning:四十五(maxout簡單理解) 摘要: maxout出現在ICML2013上,作者Goodfellow將maxout和dropout結合后,號稱在MNIST, CIFAR-10, CIFAR-100, SVHN這4個數據上都取得了start-of-art的識別率。 從論文中可以看出,maxout其實一種激發函數形式。通常情況下,如果激發函數采用sigmoid函數的話,在前向傳播過程中,隱含層節點的輸出表達式為: 其中W一般是2維的,這里表示取出的是第i列,下標i前的省略號表示對應第i列中的所有行。但如果是maxout激發函數,則其隱含層節點的輸出表達式為: 這里的W是3維的,尺寸為d*m*k,其中d表示輸入層節...閱讀全文 posted @?2013-11-18 10:10?tornadomeet 閱讀(12010) |?評論 (10)?編輯
Deep learning:四十四(Pylearn2中的Quick-start例子) 摘要: 前言: 聽說Pylearn2是個蠻適合搞深度學習的庫,它建立在Theano之上,支持GPU(估計得以后工作才玩這個,現在木有這個硬件條件)運算,由DL大牛Bengio小組弄出來的,再加上Pylearn2里面已經集成了一部分常見的DL算法,本著很想讀讀這些算法的源碼和細節這一想法,打算學習下Pylearn2的使用. 網上這方面的中文資料簡直是太少了,雖然本博文沒什么實質內容,但也寫貼出來,說不定可以幫到一些初學者。 從Bengio的一篇paper: Pylearn2: a machine learning research library可以看出,Pylearn2主要是針對機器學習開發者...閱讀全文 posted @?2013-11-14 23:49?tornadomeet 閱讀(9429) |?評論 (13)?編輯
Deep learning:四十三(用Hessian Free方法訓練Deep Network) 摘要: 目前,深度網絡(Deep Nets)權值訓練的主流方法還是梯度下降法(結合BP算法),當然在此之前可以用無監督的方法(比如說RBM,Autoencoder)來預訓練參數的權值,而梯度下降法應用在深度網絡中的一個缺點是權值的迭代變化值會很小,很容易收斂到的局部最優點;另一個缺點是梯度下降法不能很好的處理有病態的曲率(比如Rosenbrock函數)的誤差函數。而本文中所介紹的Hessian Free方法(以下簡稱HF)可以不用預訓練網絡的權值,效果也還不錯,且其適用范圍更廣(可以用于RNN等網絡的學習),同時克服了上面梯度下降法的那2個缺點。HF的主要思想類似于牛頓迭代法,只是并沒有顯示的去計..閱讀全文 posted @?2013-08-19 11:20?tornadomeet 閱讀(7740) |?評論 (5)?編輯
Deep learning:四十二(Denoise Autoencoder簡單理解) 摘要: 前言: 當采用無監督的方法分層預訓練深度網絡的權值時,為了學習到較魯棒的特征,可以在網絡的可視層(即數據的輸入層)引入隨機噪聲,這種方法稱為Denoise Autoencoder(簡稱dAE),由Bengio在08年提出,見其文章Extracting and composing robust features with denoising autoencoders.使用dAE時,可以用被破壞的輸入數據重構出原始的數據(指沒被破壞的數據),所以它訓練出來的特征會更魯棒。本篇博文主要是根據Benigio的那篇文章簡單介紹下dAE,然后通過2個簡單的實驗來說明實際編程中該怎樣應用dAE。這2個...閱讀全文 posted @?2013-08-16 08:02?tornadomeet 閱讀(23149) |?評論 (6)?編輯
Deep learning:四十一(Dropout簡單理解) 摘要: 前言 訓練神經網絡模型時,如果訓練樣本較少,為了防止模型過擬合,Dropout可以作為一種trikc供選擇。Dropout是hintion最近2年提出的,源于其文章Improving neural networks by preventing co-adaptation of feature detectors.中文大意為:通過阻止特征檢測器的共同作用來提高神經網絡的性能。本篇博文就是按照這篇論文簡單介紹下Dropout的思想,以及從用一個簡單的例子來說明該如何使用dropout。 基礎知識: Dropout是指在模型訓練時隨機讓網絡某些隱含層節點的權重不工作,不工作的那些節點可以暫...閱讀全文 posted @?2013-08-14 19:14?tornadomeet 閱讀(32582) |?評論 (15)?編輯
Deep learning:四十(龍星計劃2013深度學習課程小總結) 摘要: 頭腦一熱,坐幾十個小時的硬座北上去天津大學去聽了門4天的深度學習課程,課程預先的計劃內容見:http://cs.tju.edu.cn/web/courseIntro.html。上課老師為微軟研究院的大牛——鄧力,群(qq群介紹見:Deep learning高質量交流群)里面有人戲稱鄧力(拼音簡稱DL)老師是天生注定能夠在DL(Deep learning)領域有所成就的,它的個人主頁見:http://research.microsoft.com/en-us/people/deng/。這次我花費這么大的力氣參加這個課程,是期望能達到3個目的的:一、把DL中一些常見基礎算法弄明白,特別是跟能量模..閱讀全文 posted @?2013-07-14 19:09?tornadomeet 閱讀(17375) |?評論 (17)?編輯
Deep learning:三十九(ICA模型練習) 摘要: 前言: 本次主要是練習下ICA模型,關于ICA模型的理論知識可以參考前面的博文:Deep learning:三十三(ICA模型)。本次實驗的內容和步驟可以是參考UFLDL上的教程:Exercise:Independent Component Analysis。本次實驗完成的內容和前面的很多練習類似,即學習STL-10數據庫的ICA特征。當然了,這些數據已經是以patches的形式給出,共2w個patch,8*8大小的。 實驗基礎: 步驟分為下面幾步:設置網絡的參數,其中的輸入樣本的維數為8*8*3=192。對輸入的樣本集進行白化,比如說ZCA白化,但是一定要將其中的參數eplison...閱讀全文 posted @?2013-05-07 22:56?tornadomeet 閱讀(5418) |?評論 (17)?編輯
Deep learning:三十八(Stacked CNN簡單介紹) 摘要: 前言: 本節主要是來簡單介紹下stacked CNN(深度卷積網絡),起源于本人在構建SAE網絡時的一點困惑:見Deep learning:三十六(關于構建深度卷積SAE網絡的一點困惑)。因為有時候針對大圖片進行recognition時,需要用到無監督學習的方法去pre-training(預訓練)stacked CNN的每層網絡,然后用BP算法對整個網絡進行fine-tuning(微調),并且上一層的輸出作為下一層的輸入。這幾句話說起來很簡單,可是真的這么容易嗎?對于初學者來說,在實際實現這個流程時并不是那么順利,因為這其中要涉及到很多細節問題。這里不打算細講deep statcked網...閱讀全文 posted @?2013-05-05 20:27?tornadomeet 閱讀(43927) |?評論 (51)?編輯
Deep learning:三十七(Deep learning中的優化方法) 摘要: 內容: 本文主要是參考論文:On optimization methods for deep learning,文章內容主要是筆記SGD(隨機梯度下降),LBFGS(受限的BFGS),CG(共軛梯度法)三種常見優化算法的在deep learning體系中的性能。下面是一些讀完的筆記。 SGD優點:實現簡單,當訓練樣本足夠多時優化速度非常快。 SGD缺點:需要人為調整很多參數,比如學習率,收斂準則等。另外,它是序列的方法,不利于GPU并行或分布式處理。 各種deep learning中常見方法(比如說Autoencoder,RBM,DBN,ICA,Sparse coding)的區別是...閱讀全文 posted @?2013-05-02 00:04?tornadomeet 閱讀(16538) |?評論 (1)?編輯
Deep learning:三十六(關于構建深度卷積SAE網絡的一點困惑) 摘要: 前言: 最近一直在思考,如果我使用SCSAE(即stacked convolution sparse autoendoer)算法來訓練一個的deep model的話,其網絡的第二層開始后續所有網絡層的訓練數據從哪里來呢?其實如果在這個問題中,當我們的樣本大小(指提供的最原始數據,比如大的圖片集)和我們所訓練第一個網絡的輸入維度是一樣的話,那么第二層網絡的輸入即第一層網絡的輸出(后續的網絡依次類推),但是這種情況下根本就不會涉及到convolution(一般有convolution的地方也會有pooling),所以不屬于我想要討論的SCSAE框架。后面根據自己對deep learning的...閱讀全文 posted @?2013-05-01 15:32?tornadomeet 閱讀(13350) |?評論 (10)?編輯
Deep learning:三十五(用NN實現數據降維練習) 摘要: 前言: 本文是針對上篇博文Deep learning:三十四(用NN實現數據的降維)的練習部分,也就是Hition大牛science文章reducing the dimensionality of data with neural networks的code部分,其code下載見:http:/...閱讀全文 posted @?2013-04-30 20:03?tornadomeet 閱讀(14610) |?評論 (71)?編輯
Deep learning:三十四(用NN實現數據的降維) 摘要: 數據降維的重要性就不必說了,而用NN(神經網絡)來對數據進行大量的降維是從2006開始的,這起源于2006年science上的一篇文章:reducing the dimensionality of data with neural networks,作者就是鼎鼎有名的Hinton,這篇文章也標志著deep learning進入火熱的時代。 今天花了點時間讀了下這篇文章,下面是一點筆記: 多層感知機其實在上世紀已經被提出來了,但是為什么它沒有得到廣泛應用呢?其原因在于對多層非線性網絡進行權值優化時很難得到全局的參數。因為一般使用數值優化算法(比如BP算法)時需要隨機給網絡賦一個值,而當這...閱讀全文 posted @?2013-04-29 22:52?tornadomeet 閱讀(8836) |?評論 (3)?編輯
Deep learning:三十三(ICA模型) 摘要: 基礎知識: 在sparse coding(可參考Deep learning:二十六(Sparse coding簡單理解),Deep learning:二十九(Sparse coding練習))模型中,學習到的基是超完備集的,也就是說基集中基的個數比數據的維數還要大,那么對一個數據而言,將其分解為基的線性組合時,這些基之間本身就是線性相關的。如果我們想要得到線性無關的基集,那么基集中元素的個數必須小于或等于樣本的維數,本節所講的ICA(Independent Component Analysis,獨立成分分析)模型就可以完成這一要求,它學習到的基之間不僅保證線性無關,還保證了相互正交。本節...閱讀全文 posted @?2013-04-25 11:03?tornadomeet 閱讀(5574) |?評論 (4)?編輯
Deep learning:三十二(基礎知識_3) 摘要: 前言: 本次主要是重新復習下Sparse autoencoder基礎知識,并且加入點自己的理解。關于sparse autoencoder在前面的博文Deep learning:八(Sparse Autoencoder)中已有所介紹。 基礎知識: 首先來看看為什么sparse autoencoder能夠學習到輸入數據的特征呢?當使用autoencoder時,隱含層節點的個數會比輸入層小(一般情況下),而autoencoder又要能夠重構輸入數據,說明隱含層節點壓縮了原始數據,既然這個壓縮是有效的,則它就代表了輸入數據(因為輸入數據每個分量值并不是相互獨立的)的一部分特征了。如果對隱含節...閱讀全文 posted @?2013-04-25 00:14?tornadomeet 閱讀(4547) |?評論 (3)?編輯
Deep learning:三十一(數據預處理練習) 摘要: 前言: 本節主要是來練習下在machine learning(不僅僅是deep learning)設計前的一些數據預處理步驟,關于數據預處理的一些基本要點在前面的博文Deep learning:三十(關于數據預處理的相關技巧)中已有所介紹,無非就是數據的歸一化和數據的白化,而數據的歸一化又分為尺度歸一化,均值方差歸一化等。數據的白化常見的也有PCA白化和ZCA白化。 實驗基礎: 本次實驗所用的數據為ASL手勢識別的數據,數據可以在網站http://personal.ee.surrey.ac.uk/Personal/N.Pugeault/index.php?section=Finger...閱讀全文 posted @?2013-04-24 09:47?tornadomeet 閱讀(8926) |?評論 (7)?編輯
Deep learning:三十(關于數據預處理的相關技巧) 摘要: 前言: 本文主要是介紹下在一個實際的機器學習系統中,該怎樣對數據進行預處理。個人感覺數據預處理部分在整個系統設計中的工作量占了至少1/3。首先數據的采集就非常的費時費力,因為這些數據需要考慮各種因素,然后有時還需對數據進行繁瑣的標注。當這些都有了后,就相當于我們有了元素的raw數據,然后就可以進行下面的數據預處理部分了。本文是參考的UFLDL網頁教程:Data Preprocessing,在該網頁的底部可以找到其對應的中文版。 基礎知識: 一般來說,算法的好壞一定程度上和數據是否歸一化,是否白化有關。但是在具體問題中,這些數據預處理中的參數其實還是很難準確得到的,當然了,除非你對對應...閱讀全文 posted @?2013-04-20 21:05?tornadomeet 閱讀(8977) |?評論 (1)?編輯
Deep learning:二十九(Sparse coding練習) 摘要: 前言 本節主要是練習下斯坦福DL網絡教程UFLDL關于Sparse coding那一部分,具體的網頁教程參考:Exercise:Sparse Coding。該實驗的主要內容是從2w個自然圖像的patches中分別采用sparse coding和拓撲的sparse coding方法進行學習,并觀察學習到的這些圖像基圖像的特征。訓練數據時自然圖片IMAGE,在給出的教程網站上有。 實驗基礎 Sparse coding的主要是思想學習輸入數據集”基數據”,一旦獲得這些”基數據”,輸入數據集中的每個數據都可以用這些”基數據”的線性組合表示,而稀疏性則體現在這些線性組合系數是系數的,即大部分的...閱讀全文 posted @?2013-04-16 16:41?tornadomeet 閱讀(13583) |?評論 (65)?編輯
Deep learning:二十八(使用BP算法思想求解Sparse coding中矩陣范數導數) 摘要: 前言: 關于Sparse coding目標函數的優化會涉及到矩陣求數問題,因為里面有好多矩陣范數的導數,加上自己對矩陣運算不熟悉,推導前面博文Deep learning:二十六(Sparse coding簡單理解)中關于拓撲(非拓撲的要簡單很多)Sparse coding代價函數對特征變量s導數的公式時,在草稿紙上推導了大半天也沒有正確結果。該公式表達式為: 后面繼續看UFLDL教程,發現這篇文章Deriving gradients using the backpropagation idea中已經給出了我想要的答案,作者是應用BP神經網絡中求網絡代價函數導數的思想,將上述代價函...閱讀全文 posted @?2013-04-15 16:26?tornadomeet 閱讀(6781) |?評論 (1)?編輯
Deep learning:二十七(Sparse coding中關于矩陣的范數求導) 摘要: 前言: 由于在sparse coding模型中求系統代價函數偏導數時需要用到矩陣的范數求導,這在其它模型中應該也很常見,比如說對一個矩陣內的元素值進行懲罰,使其值不能過大,則可以使用F范數(下面將介紹)約束,查閱了下矩陣范數求導的相關資料,本節就簡單介紹下。 首先,網絡上有大把的人把2范數和F=2時的范數混為一談,或者說把矩陣p范數和誘導p范數混淆了(也有可能是因為各個版本書所定義的不同吧)。下面我還是以矩陣中權威教材the matrix cookbook和matlab內嵌函數所用的定義來解釋。話說the matrix cookbook是一本非常不錯的參考書,查找矩陣相關的公式就像查字...閱讀全文 posted @?2013-04-14 10:21?tornadomeet 閱讀(12977) |?評論 (4)?編輯
Deep learning:二十六(Sparse coding簡單理解) 摘要: Sparse coding: 本節將簡單介紹下sparse coding(稀疏編碼),因為sparse coding也是deep learning中一個重要的分支,同樣能夠提取出數據集很好的特征。本文的內容是參考斯坦福deep learning教程:Sparse Coding,Sparse Coding: Autoencoder Interpretation,對應的中文教程見稀疏編碼,稀疏編碼自編碼表達。 在次之前,我們需要對凸優化有些了解,百度百科解釋為:”凸優化“ 是指一種比較特殊的優化,是指目標函數為凸函數且由約束條件得到的定義域為凸集的優化問題,也就是說目標函數和約束條件都是”...閱讀全文 posted @?2013-04-13 13:39?tornadomeet 閱讀(24393) |?評論 (17)?編輯
Deep learning:二十五(Kmeans單層網絡識別性能) 摘要: 前言: 本文是用kmeans方法來分析單層網絡的性能,主要是用在CIFAR-10圖像識別數據庫上。關于單層網絡的性能可以參考前面的博文:Deep learning:二十(無監督特征學習中關于單層網絡的分析)。當然了,本文依舊是參考論文An Analysis of Single-Layer Ne...閱讀全文 posted @?2013-04-12 11:34?tornadomeet 閱讀(9487) |?評論 (16)?編輯
Deep learning:二十四(stacked autoencoder練習) 摘要: 前言: 本次是練習2個隱含層的網絡的訓練方法,每個網絡層都是用的sparse autoencoder思想,利用兩個隱含層的網絡來提取出輸入數據的特征。本次實驗驗要完成的任務是對MINST進行手寫數字識別,實驗內容及步驟參考網頁教程Exercise: Implement deep networks for digit classification。當提取出手寫數字圖片的特征后,就用softmax進行對其進行分類。關于MINST的介紹可以參考網頁:MNIST Dataset。本文的理論介紹也可以參考前面的博文:Deep learning:十六(deep networks)。 實驗基礎: ...閱讀全文 posted @?2013-04-09 22:05?tornadomeet 閱讀(16201) |?評論 (77)?編輯
Deep learning:二十三(Convolution和Pooling練習) 摘要: 前言: 本次實驗是練習convolution和pooling的使用,更深一層的理解怎樣對大的圖片采用convolution得到每個特征的輸出結果,然后采用pooling方法對這些結果進行計算,使之具有平移不變等特性。實驗參考的是斯坦福網頁教程:Exercise:Convolution and Pooling。也可以參考前面的博客:Deep learning:十七(Linear Decoders,Convolution和Pooling),且本次試驗是在前面博文Deep learning:二十二(linear decoder練習)的學習到的特征提取網絡上進行的。 實驗基礎: 首先來看看整...閱讀全文 posted @?2013-04-09 12:38?tornadomeet 閱讀(20562) |?評論 (51)?編輯
Deep learning:二十二(linear decoder練習) 摘要: 前言: 本節是練習Linear decoder的應用,關于Linear decoder的相關知識介紹請參考:Deep learning:十七(Linear Decoders,Convolution和Pooling),實驗步驟參考Exercise: Implement deep networks for digit classification。本次實驗是用linear decoder的sparse autoencoder來訓練出stl-10數據庫圖片的patch特征。并且這次的訓練權值是針對rgb圖像塊的。 基礎知識: PCA Whitening是保證數據各維度的方差為1,而ZCA ...閱讀全文 posted @?2013-04-08 14:34?tornadomeet 閱讀(7955) |?評論 (25)?編輯
Deep learning:二十一(隨機初始化在無監督特征學習中的作用) 摘要: 這又是Ng團隊的一篇有趣的paper。Ng團隊在上篇博客文章Deep learning:二十(無監督特征學習中關于單層網絡的分析)中給出的結論是:網絡中隱含節點的個數,convolution尺寸和移動步伐等參數比網絡的層次比網絡參數的學習算法本身還要重要,也就是說即使是使用單層的網絡,只要隱含層的節點數夠大,convolution尺寸和移動步伐較小,用簡單的算法(比如kmeans算法)也可取得不亞于其它復雜的deep learning最優效果算法。而在本文On random weights and unsupervised feature learning中又提出了個新觀點:即根本就無需通..閱讀全文 posted @?2013-04-03 17:03?tornadomeet 閱讀(5726) |?評論 (0)?編輯
Deep learning:二十(無監督特征學習中關于單層網絡的分析) 摘要: 本文是讀Ng團隊的論文” An Analysis of Single-Layer Networks in Unsupervised Feature Learning”后的分析,主要是針對一個隱含層的網絡結構進行分析的,分別對比了4種網絡結構,k-means, sparse autoencoder, sparse rbm, gmm。最后作者得出了下面幾個結論:1. 網絡中隱含層神經元節點的個數,采集的密度(也就是convolution時的移動步伐)和感知區域大小對最終特征提取效果的影響很大,甚至比網絡的層次數,deep learning學習算法本身還要重要。2. Whitening在預處理過..閱讀全文 posted @?2013-04-02 23:47?tornadomeet 閱讀(10192) |?評論 (1)?編輯
Deep learning:十九(RBM簡單理解) 摘要: 這篇博客主要用來簡單介紹下RBM網絡,因為deep learning中的一個重要網絡結構DBN就可以由RBM網絡疊加而成,所以對RBM的理解有利于我們對DBN算法以及deep learning算法的進一步理解。Deep learning是從06年開始火得,得益于大牛Hinton的文章,不過這位大牛的文章比較晦澀難懂,公式太多,對于我這種菜鳥級別來說讀懂它的paper壓力太大。縱觀大部分介紹RBM的paper,都會提到能量函數。因此有必要先了解下能量函數的概念。參考網頁http://202.197.191.225:8080/30/text/chapter06/6_2t24.htm關于能量函數..閱讀全文 posted @?2013-03-27 15:31?tornadomeet 閱讀(45592) |?評論 (21)?編輯
Deep learning:十八(關于隨機采樣) 摘要: 由于最近在看deep learning中的RBMs網絡,而RBMs中本身就有各種公式不好理解,再來幾個Gibbs采樣,就更令人頭疼了。所以還是覺得先看下Gibbs采樣的理論知識。經過調查發現Gibbs是隨機采樣中的一種。所以本節也主要是簡單層次的理解下隨機采用知識。參考的知識是博客隨機模擬的基本思想和常用采樣方法(sampling),該博文是網上找到的解釋得最通俗的。其實學校各種帶數學公式的知識時,最好有學者能用通俗易懂的語言介紹,這對入門學者來說極其重要。當然了,還參考了網頁http://www.jdl.ac.cn/user/lyqing/StatLearning/StatlLearni..閱讀全文 posted @?2013-03-26 15:39?tornadomeet 閱讀(19351) |?評論 (0)?編輯
Deep learning:十七(Linear Decoders,Convolution和Pooling) 摘要: 本文主要是學習下Linear Decoder已經在大圖片中經常采用的技術convolution和pooling,分別參考網頁http://deeplearning.stanford.edu/wiki/index.php/UFLDL_Tutorial中對應的章節部分。 Linear Decoders: 以三層的稀疏編碼神經網絡而言,在sparse autoencoder中的輸出層滿足下面的公式: 從公式中可以看出,a3的輸出值是f函數的輸出,而在普通的sparse autoencoder中f函數一般為sigmoid函數,所以其輸出值的范圍為(0,1),所以可以知道a3的輸出值范圍也...閱讀全文 posted @?2013-03-25 14:44?tornadomeet 閱讀(16345) |?評論 (4)?編輯
Deep learning:十六(deep networks) 摘要: 本節參考的是網頁http://deeplearning.stanford.edu/wiki/index.php/UFLDL_Tutorial中關于Building Deep Networks for Classification一節的介紹。分下面2大部分內容: 1. 從self-taught到deep networks: 從前面的關于self-taught learning介紹(Deep learning:十五(Self-Taught Learning練習))可以看到,該ML方法在特征提取方面是完全用的無監督方法,本次要講的就是在上面的基礎上再用有監督的方法繼續對網絡的參數進行微調,這...閱讀全文 posted @?2013-03-25 11:09?tornadomeet 閱讀(17330) |?評論 (8)?編輯
Deep learning:十五(Self-Taught Learning練習) 摘要: 前言: 本次實驗主要是練習soft- taught learning的實現。參考的資料為網頁:http://deeplearning.stanford.edu/wiki/index.php/Exercise:Self-Taught_Learning。Soft-taught leaning是用的無監督學習來學習到特征提取的參數,然后用有監督學習來訓練分類器。這里分別是用的sparse autoencoder和softmax regression。實驗的數據依舊是手寫數字數據庫MNIST Dataset. 實驗基礎: 從前面的知識可以知道,sparse autoencoder的輸出應該是...閱讀全文 posted @?2013-03-24 17:57?tornadomeet 閱讀(12964) |?評論 (52)?編輯
Deep learning:十四(Softmax Regression練習) 摘要: 前言: 這篇文章主要是用來練習softmax regression在多分類器中的應用,關于該部分的理論知識已經在前面的博文中Deep learning:十三(Softmax Regression)有所介紹。本次的實驗內容是參考網頁:http://deeplearning.stanford.edu/wiki/index.php/Exercise:Softmax_Regression。主要完成的是手寫數字識別,采用的是MNIST手寫數字數據庫,其中訓練樣本有6萬個,測試樣本有1萬個,且數字是0~9這10個。每個樣本是一張小圖片,大小為28*28的。 實驗環境:matlab2012a 實驗...閱讀全文 posted @?2013-03-23 20:17?tornadomeet 閱讀(17068) |?評論 (68)?編輯
Deep learning:十三(Softmax Regression) 摘要: 在前面的logistic regression博文Deep learning:四(logistic regression練習) 中,我們知道logistic regression很適合做一些非線性方面的分類問題,不過它只適合處理二分類的問題,且在給出分類結果時還會給出結果的概率。那么如果需要用類似的方法(這里類似的方法指的是輸出分類結果并且給出概率值)來處理多分類問題的話該怎么擴展呢?本次要講的就是對logstic regression擴展的一種多分類器,softmax regression。參考的內容為網頁:http://deeplearning.stanford.edu/wiki/in..閱讀全文 posted @?2013-03-22 17:15?tornadomeet 閱讀(35229) |?評論 (10)?編輯
Deep learning:十二(PCA和whitening在二自然圖像中的練習) 摘要: 前言: 現在來用PCA,PCA Whitening對自然圖像進行處理。這些理論知識參考前面的博文:Deep learning:十(PCA和whitening)。而本次試驗的數據,步驟,要求等參考網頁:http://deeplearning.stanford.edu/wiki/index.php/UFLDL_Tutorial 。實驗數據是從自然圖像中隨機選取10000個12*12的patch,然后對這些patch進行99%的方差保留的PCA計算,最后對這些patch做PCA Whitening和ZCA Whitening,并進行比較。 實驗環境:matlab2012a 實驗過程及結果:...閱讀全文 posted @?2013-03-22 14:04?tornadomeet 閱讀(12260) |?評論 (5)?編輯
Deep learning:十一(PCA和whitening在二維數據中的練習) 摘要: 前言: 這節主要是練習下PCA,PCA Whitening以及ZCA Whitening在2D數據上的使用,2D的數據集是45個數據點,每個數據點是2維的。參考的資料是:Exercise:PCA in 2D。結合前面的博文Deep learning:十(PCA和whitening)理論知識,來進一步理解PCA和Whitening的作用。 matlab某些函數: scatter: scatter(X,Y,,,’’); – 點的大小控制,設為和X,Y同長度一維向量,則值決定點的大小;設為常數或缺省,則所有點大小統一。 – 點的顏色控制,設為和X,Y同長度一維向量,則色彩由值大小...閱讀全文 posted @?2013-03-21 16:07?tornadomeet 閱讀(10040) |?評論 (8)?編輯
Deep learning:十(PCA和whitening) 摘要: PCA: PCA的具有2個功能,一是維數約簡(可以加快算法的訓練速度,減小內存消耗等),一是數據的可視化。 PCA并不是線性回歸,因為線性回歸是保證得到的函數是y值方面誤差最小,而PCA是保證得到的函數到所降的維度上的誤差最小。另外線性回歸是通過x值來預測y值,而PCA中是將所有的x樣本都同等對待。 在使用PCA前需要對數據進行預處理,首先是均值化,即對每個特征維,都減掉該維的平均值,然后就是將不同維的數據范圍歸一化到同一范圍,方法一般都是除以最大值。但是比較奇怪的是,在對自然圖像進行均值處理時并不是不是減去該維的平均值,而是減去這張圖片本身的平均值。因為PCA的預處理是按照不同應用...閱讀全文 posted @?2013-03-21 13:34?tornadomeet 閱讀(15957) |?評論 (1)?編輯
Deep learning:九(Sparse Autoencoder練習) 摘要: 前言: 現在來進入sparse autoencoder的一個實例練習,參考Ng的網頁教程:Exercise:Sparse Autoencoder。這個例子所要實現的內容大概如下:從給定的很多張自然圖片中截取出大小為8*8的小patches圖片共10000張,現在需要用sparse autoencoder的方法訓練出一個隱含層網絡所學習到的特征。該網絡共有3層,輸入層是64個節點,隱含層是25個節點,輸出層當然也是64個節點了。 實驗基礎: 其實實現該功能的主要步驟還是需要計算出網絡的損失函數以及其偏導數,具體的公式可以參考前面的博文Deep learning:八(Sparse Aut...閱讀全文 posted @?2013-03-20 10:58?tornadomeet 閱讀(32788) |?評論 (94)?編輯
Deep learning:八(Sparse Autoencoder) 摘要: 前言: 這節課來學習下Deep learning領域比較出名的一類算法——sparse autoencoder,即稀疏模式的自動編碼。我們知道,deep learning也叫做unsupervised learning,所以這里的sparse autoencoder也應是無監督的。按照前面的博文:Deep learning:一(基礎知識_1),Deep learning:七(基礎知識_2)所講,如果是有監督的學習的話,在神經網絡中,我們只需要確定神經網絡的結構就可以求出損失函數的表達式了(當然,該表達式需對網絡的參數進行”懲罰”,以便使每個參數不要太大),同時也能夠求出損失函數偏導函數的...閱讀全文 posted @?2013-03-19 22:01?tornadomeet 閱讀(25534) |?評論 (12)?編輯
Deep learning:七(基礎知識_2) 摘要: 前面的文章已經介紹過了2種經典的機器學習算法:線性回歸和logistic回歸,并且在后面的練習中也能夠感覺到這2種方法在一些問題的求解中能夠取得很好的效果。現在開始來看看另一種機器學習算法——神經網絡。線性回歸或者logistic回歸問題理論上不是可以解決所有的回歸和分類問題么,那么為什么還有其它各種各樣的機器學習算法呢?比如這里馬上要講的神經網絡算法。其實原因很簡單,在前面的一系列博文練習中可以發現,那些樣本點的輸入特征維數都非常小(比如說2到3維),在使用logistic回歸求解時,需要把原始樣本特征重新映射到高維空間中,如果特征是3維,且指數最高為3時,得到的系數最高維數應該是2...閱讀全文 posted @?2013-03-18 15:05?tornadomeet 閱讀(13537) |?評論 (12)?編輯
Deep learning:六(regularized logistic回歸練習) 摘要: 前言: 在上一講Deep learning:五(regularized線性回歸練習)中已經介紹了regularization項在線性回歸問題中的應用,這節主要是練習regularization項在logistic回歸中的應用,并使用牛頓法來求解模型的參數。參考的網頁資料為:http://openclassroom.stanford.edu/MainFolder/DocumentPage.php?course=DeepLearning&doc=exercises/ex5/ex5.html。要解決的問題是,給出了具有2個特征的一堆訓練數據集,從該數據的分布可以看出它們并不是非常線性可分的,閱讀全文 posted @?2013-03-17 20:04?tornadomeet 閱讀(9772) |?評論 (5)?編輯
Deep learning:五(regularized線性回歸練習) 摘要: 前言: 本節主要是練習regularization項的使用原則。因為在機器學習的一些模型中,如果模型的參數太多,而訓練樣本又太少的話,這樣訓練出來的模型很容易產生過擬合現象。因此在模型的損失函數中,需要對模型的參數進行“懲罰”,這樣的話這些參數就不會太大,而越小的參數說明模型越簡單,越簡單的模型則越不容易產生過擬合現象。本文參考的資料參考網頁:http://openclassroom.stanford.edu/MainFolder/DocumentPage.php?course=DeepLearning&doc=exercises/ex5/ex5.html。主要是給定7個訓練樣本點,需閱讀全文 posted @?2013-03-17 15:15?tornadomeet 閱讀(10336) |?評論 (4)?編輯
Deep learning:四(logistic regression練習) 摘要: 前言: 本節來練習下logistic regression相關內容,參考的資料為網頁:http://openclassroom.stanford.edu/MainFolder/DocumentPage.php?course=DeepLearning&doc=exercises/ex4/ex4.html。這里給出的訓練樣本的特征為80個學生的兩門功課的分數,樣本值為對應的同學是否允許被上大學,如果是允許的話則用’1’表示,否則不允許就用’0’表示,這是一個典型的二分類問題。在此問題中,給出的80個樣本中正負樣本各占40個。而這節采用的是logistic regression來求解,該求解閱讀全文 posted @?2013-03-16 21:59?tornadomeet 閱讀(18388) |?評論 (9)?編輯
Deep learning:三(Multivariance Linear Regression練習) 摘要: 前言: 本文主要是來練習多變量線性回歸問題(其實本文也就3個變量),參考資料見網頁:http://openclassroom.stanford.edu/MainFolder/DocumentPage.php?course=DeepLearning&doc=exercises/ex3/ex3.html.其實在上一篇博文Deep learning:二(linear regression練習)中已經簡單介紹過一元線性回歸問題的求解,但是那個時候用梯度下降法求解時,給出的學習率是固定的0.7.而本次實驗中學習率需要自己來選擇,因此我們應該從小到大(比如從0.001到10)來選擇,通過觀察損失值閱讀全文 posted @?2013-03-15 20:55?tornadomeet 閱讀(14013) |?評論 (17)?編輯
Deep learning:二(linear regression練習) 摘要: 前言 本文是多元線性回歸的練習,這里練習的是最簡單的二元線性回歸,參考斯坦福大學的教學網http://openclassroom.stanford.edu/MainFolder/DocumentPage.php?course=DeepLearning&doc=exercises/ex2/ex2.html。本題給出的是50個數據樣本點,其中x為這50個小朋友到的年齡,年齡為2歲到8歲,年齡可有小數形式呈現。Y為這50個小朋友對應的身高,當然也是小數形式表示的。現在的問題是要根據這50個訓練樣本,估計出3.5歲和7歲時小孩子的身高。通過畫出訓練樣本點的分布憑直覺可以發現這是一個典型的線性回閱讀全文 posted @?2013-03-15 16:20?tornadomeet 閱讀(22208) |?評論 (25)?編輯
Deep learning:一(基礎知識_1) 摘要: 前言: 最近打算稍微系統的學習下deep learing的一些理論知識,打算采用Andrew Ng的網頁教程UFLDL Tutorial,據說這個教程寫得淺顯易懂,也不太長。不過在這這之前還是復習下machine learning的基礎知識,見網頁:http://openclassroom.stanford.edu/MainFolder/CoursePage.php?course=DeepLearning。內容其實很短,每小節就那么幾分鐘,且講得非常棒。 教程中的一些術語: Model representation: 其實就是指學習到的函數的表達形式,可以用矩陣表示。 Vecto...閱讀全文 posted @?2013-03-14 12:48?tornadomeet 閱讀(51530) |?評論 (11)?編輯
總結
以上是生活随笔為你收集整理的deeplearning URL的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前景检测算法_1(codebook和平均
- 下一篇: 一种快速的公交专用车道检测方法