摘要:實驗基礎其實實現該功能的主要步驟還是需要計算出網絡的損失函數以及其偏導數,具體的公式可以參考前面的博文八。生成均勻分布的偽隨機數。
前言:
現在來進入sparse autoencoder的一個實例練習,參考Ng的網頁教程:Exercise:Sparse Autoencoder。 這個例子所要實現的內容大概如下:從給定的很多張自然圖片中截取出大小為8*8的小patches圖片共10000張,現在需要用sparse autoencoder的方法訓練出一個隱含層網絡所學習到的特征。該網絡共有3層,輸入層是64個節點,隱含層是25個節點,輸出層當然也是64個節點 了。
?
實驗基礎:
其實實現該功能的主要步驟還是需要計算出網絡的損失函數以及其偏導數,具體的公式可以參考前面的博文Deep learning:八(Sparse Autoencoder)。下面用簡單的語言大概介紹下這個步驟,方便大家理清算法的流程。
1. 計算出網絡每個節點的輸入值(即程序中的z值)和輸出值(即程序中的a值,a是z的sigmoid函數值)。
2. 利用z值和a值計算出網絡每個節點的誤差值(即程序中的delta值)。
3. 這樣可以利用上面計算出的每個節點的a,z,delta來表達出系統的損失函數以及損失函數的偏導數了,當然這些都是一些數學推導,其公式就是前面的博文Deep learning:八(Sparse Autoencoder)了。
其實步驟1是前向進行的,也就是說按照輸入層——》隱含層——》輸出層的方向進行計算。而步驟2是方向進行的(這也是該算法叫做BP算法的來源),即每個節點的誤差值是按照輸出層——》隱含層——》輸入層方向進行的。
一些malab函數:
bsxfun:
C=bsxfun(fun,A,B)表達的是兩個數組A和B間元素的二值操作,fun是函數句柄或者m文件,或者是內嵌的函數。在實際使用過程 中fun有很多選擇比如說加,減等,前面需要使用符號’@’.一般情況下A和B需要尺寸大小相同,如果不相同的話,則只能有一個維度不同,同時A和B中在 該維度處必須有一個的維度為1。比如說bsxfun(@minus, A, mean(A)),其中A和mean(A)的大小是不同的,這里的意思需要先將mean(A)擴充到和A大小相同,然后用A的每個元素減去擴充后的 mean(A)對應元素的值。
rand:
生成均勻分布的偽隨機數。分布在(0~1)之間
主要語法:rand(m,n)生成m行n列的均勻分布的偽隨機數
? ?? ?? ?? ? rand(m,n,"double")生成指定精度的均勻分布的偽隨機數,參數還可以是"single"
? ?? ?? ?? ? rand(RandStream,m,n)利用指定的RandStream(我理解為隨機種子)生成偽隨機數
randn:
生成標準正態分布的偽隨機數(均值為0,方差為1)。主要語法:和上面一樣
randi:
生成均勻分布的偽隨機整數
? 主要語法:randi(iMax)在閉區間(0,iMax)生成均勻分布的偽隨機整數?
? ?? ?? ?? ? randi(iMax,m,n)在閉區間(0,iMax)生成mXn型隨機矩陣
? ?? ?? ?? ? r = randi([iMin,iMax],m,n)在閉區間(iMin,iMax)生成mXn型隨機矩陣
exist:
測試參數是否存在,比如說exist("opt_normalize", "var")表示檢測變量opt_normalize是否存在,其中的’var’表示變量的意思。
colormap:
設置當前常見的顏色值表。
floor:
floor(A):取不大于A的較大整數。
ceil:
ceil(A):取不小于A的最小整數。
imagesc:
imagesc和image類似,可以用于顯示圖像。比如imagesc(array,"EraseMode","none",[-1 1]),這里的意思是將array中的數據線性映射到[-1,1]之間,然后使用當前設置的顏色表進行顯示。此時的[-1,1]充滿了整個顏色表。背景擦 除模式設置為node,表示不擦除背景。
repmat:
該函數是擴展一個矩陣并把原來矩陣中的數據復制進去。比如說B = repmat(A,m,n),就是創建一個矩陣B,B中復制了共m*n個A矩陣,因此B矩陣的大小為[size(A,1)*m? size(A,2)*m]。
使用函數句柄的作用:
不使用函數句柄的情況下,對函數多次調用,每次都要為該函數進行全面的路徑搜索,直接影響計算速度,借助句柄可以完全避免這種時間損耗。也就是直接指定了函數的指針。函數句柄就像一個函數的名字,有點類似于C++程序中的引用。
?
實驗流程:
首先運行主程序train.m中的步驟1,即隨機采樣出10000個小的patch,并且顯示出其中的204個patch圖像,圖像顯示如下所示:
? / 2 頁下一頁
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/4286.html
摘要:如果你對算法實戰感興趣,請快快關注我們吧。加入實戰微信群,實戰群,算法微信群,算法群。 作者:chen_h微信號 & QQ:862251340微信公眾號:coderpai簡書地址:https://www.jianshu.com/p/b5c... 介紹一些人工智能技術的術語,如果你還有術語補充,請訪問 Github English Terminology 中文術語 neur...
摘要:有監督學習與無監督學習,分類回歸,密度估計聚類,深度學習,,有監督學習和無監督學習給定一組數據,為,。由于不需要事先根據訓練數據去聚類器,故屬于無監督學習。 Deep Learning是機器學習中一個非常接近AI的領域,其動機在于建立、模擬人腦進行分析學習的神經網絡,最近研究了機器學習中一些深度學習的相關知識,本文給出一些很有用的資料和心得。Key Words:有監督學習與無監督學習,分類...
摘要:深度學習通過組合低層特征形成更加抽象的高層表示屬性類別或特征,以發現數據的分布式特征表示。深度學習的概念由等人于年提出。但是自年以來,機器學習領域,取得了突破性的進展。 深度學習是機器學習研究中的一個新的領域,其動機在于建立、模擬人腦進行分析學習的神經網絡,它模仿人腦的機制來解釋數據,例如圖像,聲音和文本。深度學習是無監督學習的一種。 深度學習的概念源于人工神經網絡的研究。含多隱層的多層感知...
摘要:深度學習學習筆記整理系列作者聲明該的學習系列是整理自網上很大牛和機器學習專家所無私奉獻的資料的。但是自年以來,機器學習領域,取得了突破性的進展。 Deep Learning(深度學習)學習筆記整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0? 2013-04-08聲明:1)該Deep Lea...
摘要:降噪自編碼器認為,設計一個能夠恢復原始信號的自編碼器未必是最好的,而能夠對被污染破壞的原始數據進行編碼解碼,然后還能恢復真正的原始數據,這樣的特征才是好的。該恢復信號盡可能的逼近未被污染的原數據。此時,監督訓練的誤差函數就從原來的變成了。 作者:chen_h微信號 & QQ:862251340微信公眾號:coderpai簡書地址:https://www.jianshu.com/p/f7...
閱讀 3267·2021-11-24 09:38
閱讀 2148·2021-11-23 09:51
閱讀 1738·2021-10-13 09:39
閱讀 2610·2021-09-23 11:53
閱讀 1394·2021-09-02 15:40
閱讀 3648·2019-08-30 15:54
閱讀 1121·2019-08-30 13:04
閱讀 2552·2019-08-30 11:01