3. 用監(jiān)督訓(xùn)練來調(diào)整所有層(加上一個(gè)或者更多的用于產(chǎn)生預(yù)測的附加層);
當(dāng)前,國外在這方面的研究就是三分天下的局面,University of
Toronto的Geoffrey E. Hinton與微軟合作,Stanford University的Andrew Y.
Ng和Google合作,以及New York University的計(jì)算機(jī)科學(xué)家Yann LeCun和Rob
Fergus。國內(nèi)方面百度的于凱是這方面的先行者;據(jù)說企鵝也在招人搞這個(gè),又據(jù)說是在做索引結(jié)構(gòu)方面也能有一個(gè)質(zhì)的飛躍,一篇文章提取特征后就剩一個(gè)
20維的向量,也還不確定是否真能如此神,另外還有文獻(xiàn)提到可以用來做detection,因?yàn)槟壳癮daboost確實(shí)是在訓(xùn)練上很花時(shí)間,自己之前在
家搞了個(gè)手表的訓(xùn)練,也花了一周時(shí)間,而深度學(xué)習(xí)在特征選擇方面還是挺有優(yōu)勢的,不過之前看Andrew教授的視頻,提到未監(jiān)督學(xué)習(xí)用在做
detection上還是沒有什么突破,不知道這里做檢測效果會(huì)怎樣;學(xué)術(shù)界現(xiàn)在在這塊就是在與時(shí)間賽跑,誰先跑出個(gè)成果誰就是第一個(gè)吃螃蟹的(做人臉的
山世光也對于凱在這方面的report挺看重)。下面就先附上一些個(gè)人覺得比較重要的相關(guān)論文,其中部分還未細(xì)讀,有些因?yàn)榉旁趕pringlink或者
sciencedirect上無法下載,待有時(shí)間再請人找找后深入學(xué)習(xí)。
Learning multiple layers of representation, 2007.
這篇論文,篇幅短小,適合初學(xué)者理解DBNs,特別是非數(shù)學(xué)專業(yè)的。
Deep machine learning – a new frontier in artificial intelligence research, 2010.
深度學(xué)習(xí)的入門材料。
Learning deep architecture for AI, 2009.
深度學(xué)習(xí)的經(jīng)典論文,可以當(dāng)作深度學(xué)習(xí)的學(xué)習(xí)材料。
To recognize shapes, first learn to generate images, 2006.
多倫多大學(xué)的內(nèi)部講義。目前還沒找到。
A fast learning algorithm for deep belief nets, 2006.
Hinton關(guān)于DBNs的開山之作,也就是前面提到的引領(lǐng)性的文章。在這篇論文中,作者詳細(xì)闡述了DBNs的方方面面,論證了其和一組層疊的RBMs的等價(jià)性,然后引出DBNs的學(xué)習(xí)算法。(這篇還真得好好看幾遍 )
Reducing the dimensionality of data with neural networks, 2006.
未讀,據(jù)說是Science上的大作,可算作一個(gè)里程碑,標(biāo)志著深度學(xué)習(xí)總算有了高效的可行的算法。
A practical guide to training restricted boltzmann machines, 2010.
訓(xùn)練RBM的指導(dǎo)書,里面對一些參數(shù)的設(shè)置也說明得比較清楚,
如果要自己寫這方面的code,這篇可以說是必讀的了,俺可是花了一個(gè)禮拜才算是把這個(gè)弄清楚七八成,再花了一個(gè)禮拜才整出了code。
The difficulty of training deep architectures and the effect of unsupervised pretraining, 2009.
Why Does Unsupervised Pre-training Help Deep Learning?, 2010.
闡述了非監(jiān)督預(yù)訓(xùn)練的作用。這兩篇可以結(jié)合起來一起看。
目前先整理這么多,由于RBM在監(jiān)督學(xué)習(xí)和未監(jiān)督學(xué)習(xí)的code還在整,目前只用了CD算法,用在識別手寫體和去
噪,效果是已經(jīng)出來,但由于是對照著那篇RBM的指導(dǎo)書來寫的,代碼方面比較凌亂,所以還得花時(shí)間再整理整理,下次再把原理和結(jié)合一小點(diǎn)偽代碼放到
blog上吧。
關(guān)于RBM和CD
在
神經(jīng)網(wǎng)絡(luò)中,兩層神經(jīng)網(wǎng)絡(luò)(即一個(gè)hidden層和一個(gè)output層,visible層不算在內(nèi))的建模能力是很強(qiáng)的,但要求hidden層的節(jié)點(diǎn)數(shù)夠
多,但節(jié)點(diǎn)數(shù)太多就會(huì)導(dǎo)致計(jì)算量的復(fù)雜,矩陣的維護(hù)會(huì)相當(dāng)大。一個(gè)很好想到的方法就是將層數(shù)加大,通過層數(shù)的增多來緩解單層中節(jié)點(diǎn)數(shù)過多的負(fù)擔(dān),比如設(shè)置
兩個(gè)hidden層,每層100個(gè)節(jié)點(diǎn),就相當(dāng)于單個(gè)hidden層100×100個(gè)節(jié)點(diǎn)的建模能力,同理三個(gè)hidden層,每層分別是100、
200、300個(gè)節(jié)點(diǎn),就相當(dāng)于單層的100×200×300個(gè)節(jié)點(diǎn)的建模能力。然而這樣做的問題在于,當(dāng)層數(shù)大于2時(shí),經(jīng)典的訓(xùn)練方法效果會(huì)較差,因?yàn)?參數(shù)的局部極小值太多,容易收斂到一個(gè)不好的極值。Hinton把RBM(Restricted Boltzmann
Machine)層疊在一起,訓(xùn)練出權(quán)值,然后把這個(gè)權(quán)值當(dāng)成是下一個(gè)RBM層的輸入作為權(quán)值的初始值,利用傳統(tǒng)的梯度下降法去訓(xùn)練網(wǎng)絡(luò),得到了更好的結(jié)
果,也即在每個(gè)RBM層通過篩選得到較好的參數(shù)初始值,使得最后的結(jié)果更好。
Boltzmann
Machine其實(shí)是一種無向圖,里面的節(jié)點(diǎn)是互相連接的,但不一定是全連接,也即不是每個(gè)節(jié)點(diǎn)都兩兩相連,連接著的兩個(gè)節(jié)點(diǎn)之間就有一個(gè)權(quán)值。為理解方
便就假設(shè)節(jié)點(diǎn)只能取值為0或者1,有些節(jié)點(diǎn)值是已知的,有些是未知的,把已知的節(jié)點(diǎn)集合記為V,未知的節(jié)點(diǎn)集合記為H,這樣就把所有節(jié)點(diǎn)分成兩個(gè)集合,其
實(shí)集合V就可以認(rèn)為是visible層,集合H就可以認(rèn)為是hidden層。如果hidden層中的節(jié)點(diǎn)都不互相連接,visible層中的節(jié)點(diǎn)也都不互
相連接,那么就成為了RBM模型。
為了理解方便,考慮訓(xùn)練樣本是一些二值圖像,
將其進(jìn)行向量化,得到二值向量的一個(gè)集合作為訓(xùn)練集,這些訓(xùn)練集就可以構(gòu)建一個(gè)兩層的成為RBM的網(wǎng)絡(luò),對于這些像素值就可以關(guān)聯(lián)為visible層中的
節(jié)點(diǎn),因?yàn)樗鼈兿袼刂凳恰笨梢姷摹?像素值已知),特征的檢測器就關(guān)聯(lián)為hidden層中的節(jié)點(diǎn),根據(jù)Hopfiled(了解神經(jīng)網(wǎng)絡(luò)的應(yīng)該沒什么人不知
道他了,Hopfiled
Network)在1982年給出的一個(gè)能量函數(shù)的定義,定義一個(gè)函數(shù)來標(biāo)記hidden中的某一個(gè)節(jié)點(diǎn)h和visible層中的某一個(gè)節(jié)點(diǎn)v之間的能
量:
(1)
其中
、
分別是visible層和hidden層的狀態(tài)值,
和
分別是它們的bias值,
就是兩個(gè)節(jié)點(diǎn)之間的weight。而網(wǎng)絡(luò)通過另一個(gè)能量函數(shù)給每一對
節(jié)點(diǎn)對分配了一個(gè)概率值:
(2)
而網(wǎng)絡(luò)給每個(gè)visible層節(jié)點(diǎn)分配的概率值就是把所有可能的與它相連的hidden層節(jié)點(diǎn)的概率值相加,也即:
(3)
在
傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)中就可以知道,網(wǎng)絡(luò)分配給每個(gè)訓(xùn)練樣本的概率值是可以調(diào)節(jié)的,通過對weight和bias的調(diào)整來使該樣本的能量降低并提高其它樣本的能
量,就可以使這個(gè)概率值變大,這其實(shí)從(2)式也可以看出,隨著能量遞增,概率值是遞減的。由于能量是作為指數(shù),所以為了求解方便就加上了取對數(shù)log操
作,對log(p(v))關(guān)于weight求導(dǎo)來求得極值,所以得:
(4)
<>表示求期望,式子第一項(xiàng)是指已知樣本集時(shí),
的期望,這時(shí)的
是由樣本確定的,而
是未知的,第二項(xiàng)是模型中
的期望,這時(shí)的
和
均是未知的。由于在RBM中,hidden層的節(jié)點(diǎn)并沒有直接相連,所以要獲取
的無偏采樣是可以的,對于一個(gè)隨機(jī)選取的訓(xùn)練樣本
,其每一個(gè)hidden層節(jié)點(diǎn)
狀態(tài)量為1的概率是:
(5)
其中
是logistic sigmoid函數(shù)也即
。
同理,在visible層的節(jié)點(diǎn)并沒有直接相連,所以要獲取visible層節(jié)點(diǎn)狀態(tài)量的無偏采樣也是可以的,對于一個(gè)已知的hidden層的向量h,由其反退回去得到
的狀態(tài)量為1的概率值是:
(6)
然而,要得到
的無偏采樣,就沒有那么容易了。它可以通過抽樣法得到,隨機(jī)選定一個(gè)visible層的節(jié)點(diǎn)由(6)式得到
,將其結(jié)果代入(5)式得到
,從而得到
的第一個(gè)采樣,再將(5)式子結(jié)果代入(6)式,(6)結(jié)果代入(5),從而得到
的第二個(gè)采樣,如此反復(fù),最后這個(gè)抽樣過程得到的抽樣分布就收斂于模型的真實(shí)分布
,這個(gè)采樣過程其實(shí)就是Gibbs采樣,Gibbs采樣是Metropolis-Hastings算法得到的特殊情況,而Metropolis-
Hastings算法其實(shí)就是Markov Chain Monte Carlo(MCMC)算法的一種,用于產(chǎn)生Markov
Chain。這種方式需要一個(gè)很長的采樣過程。Hinton提出了一個(gè)較為快速的方法,他先把所有的visible層節(jié)點(diǎn)的狀態(tài)設(shè)置為一個(gè)向量,使用
(5)式得到所有hidden層節(jié)點(diǎn)的概率值,并根據(jù)這個(gè)概率值將節(jié)點(diǎn)設(shè)置為1或者0(將概率值與一個(gè)隨機(jī)生成的(0,1)之間的浮點(diǎn)數(shù)去比較,大于該隨
機(jī)數(shù)則該節(jié)點(diǎn)狀態(tài)量置為1,否則為0),再由(6)式返回計(jì)算visible層節(jié)點(diǎn)值(也即重構(gòu)過程),進(jìn)而得到
的一個(gè)估計(jì),也即權(quán)重weight的更新方式由
(7)變?yōu)椋?br>
(8)這種方式雖然只是粗略近似訓(xùn)練數(shù)據(jù)的log概率的梯度,但是學(xué)習(xí)效果卻還是很好,其學(xué)習(xí)規(guī)則更接近于另一個(gè)決策函數(shù)的極值化,這個(gè)函
數(shù)是Contrastive Divergence(CD),也就是兩個(gè)Kullback-Liebler divergences(KL
divergences)的差值。
在使用CD時(shí),必須注意要把hidden節(jié)點(diǎn)值置為二值化形式(0或1),而不是直接采用其概率值本身,因?yàn)檫@樣做的話,在進(jìn)行重構(gòu)的時(shí)候,每個(gè)
hidden節(jié)點(diǎn)就和visible節(jié)點(diǎn)的真實(shí)值發(fā)生了聯(lián)系,這會(huì)導(dǎo)致違反如下基本規(guī)則:每個(gè)hidden節(jié)點(diǎn)最多只能有一個(gè)狀態(tài)量,也即它不能既是0又
是1。然而,在最后一次更新hidden節(jié)點(diǎn)時(shí),就不可以使用二值狀態(tài)量了,因?yàn)榇藭r(shí)已經(jīng)沒有什么是依賴于”哪個(gè)狀態(tài)量被選中”,也即哪個(gè)狀態(tài)為0或?yàn)?
并不造成什么影響,所以應(yīng)該是使用(5)式所得的概率值本身,以避免不必要的采樣噪聲,在使用CDn時(shí)只有最后一次更新才可以如此使用概率值本身。
RBM的指導(dǎo)書中還提到,在選擇用于學(xué)習(xí)的數(shù)據(jù)時(shí),假設(shè)visible層節(jié)點(diǎn)是使用真實(shí)的概率值而不是使用隨機(jī)的二值狀態(tài),那么獲取visible層與hidden層節(jié)點(diǎn)連接數(shù)據(jù)的方式有兩種:
或者
,其中
是一個(gè)概率值,而
以這個(gè)概率值取值為1。使用第一種方式更接近于RBM的數(shù)學(xué)模型,而使用第二種方式能有較少的采樣噪聲且學(xué)習(xí)速度更快。
關(guān)于初始weight和bias的設(shè)置方面,RBM指導(dǎo)書建議,weight初始化為一些小的隨機(jī)制,這些隨機(jī)值服從均值為0、方差為0.01的高斯分
布,使用較大的值可以加速這個(gè)學(xué)習(xí)過程,但是學(xué)習(xí)效果卻不是很好,而且要注意確保初始值不會(huì)使visible節(jié)點(diǎn)的概率值非常接近0或者1,以避免早熟。
bias的初始值,通常visible層節(jié)點(diǎn)狀態(tài)值為1的,bias初始值設(shè)為
。
根據(jù)RBM指導(dǎo)書,本人使用單層無監(jiān)督訓(xùn)練,
將結(jié)果用于去噪的實(shí)驗(yàn),訓(xùn)練樣本為5000,訓(xùn)練時(shí)間約為1.5分鐘,再從測試樣本集中隨機(jī)選擇70個(gè)進(jìn)行測試,運(yùn)行時(shí)間大約為12毫秒。在進(jìn)行分類識別
的實(shí)驗(yàn)中,只使用單層的RBM,測試樣本為1000時(shí)識別率可以達(dá)到89%以上,耗時(shí)約為62毫秒;多層的RBM由于涉及到隱層節(jié)點(diǎn)數(shù)的設(shè)置,所以還需要
進(jìn)行多種嘗試才可以得到較佳效果(曾嘗試過三個(gè)隱層,節(jié)點(diǎn)數(shù)分別為100、200、300,識別率為90.1%,時(shí)間約為160毫秒),但可以肯定的是識
別率是在單層效果之上。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/4282.html
摘要:深度學(xué)習(xí)學(xué)習(xí)筆記整理系列作者聲明該的學(xué)習(xí)系列是整理自網(wǎng)上很大牛和機(jī)器學(xué)習(xí)專家所無私奉獻(xiàn)的資料的。但是自年以來,機(jī)器學(xué)習(xí)領(lǐng)域,取得了突破性的進(jìn)展。
Deep Learning(深度學(xué)習(xí))學(xué)習(xí)筆記整理系列
[email protected]
http://blog.csdn.net/zouxy09
作者:Zouxy
version 1.0? 2013-04-08聲明:1)該Deep Lea...
摘要:通過書籍學(xué)習(xí),比如除了上述的先學(xué)知識,你還應(yīng)該了解一些流行的深度學(xué)習(xí)庫和運(yùn)行他們的語言。你也可以查看查看的中的第講,概要性的了解一些深度學(xué)習(xí)庫。
作者:chen_h微信號 & QQ:862251340微信公眾號:coderpai簡書地址:https://www.jianshu.com/p/cd0...
原文:https://www.analyticsvidhya.c...
介紹
...
ztyzz
2019-07-30 15:16
評論0
收藏0
摘要:在這堂課中,學(xué)生將可以學(xué)習(xí)到深度學(xué)習(xí)的基礎(chǔ),學(xué)會(huì)構(gòu)建神經(jīng)網(wǎng)絡(luò),包括和等。課程中也會(huì)有很多實(shí)操項(xiàng)目,幫助學(xué)生更好地應(yīng)用自己學(xué)到的深度學(xué)習(xí)技術(shù),解決真實(shí)世界問題。
深度學(xué)習(xí)入門首推課程就是吳恩達(dá)的深度學(xué)習(xí)專項(xiàng)課程系列的 5 門課。該專項(xiàng)課程最大的特色就是內(nèi)容全面、通俗易懂并配備了豐富的實(shí)戰(zhàn)項(xiàng)目。今天,給大家推薦一份關(guān)于該專項(xiàng)課程的核心筆記!這份筆記只能用兩個(gè)字形容:全面!
showImg(...
男| 高級講師
閱讀 3752· 2021-11-24 10:46
閱讀 1718· 2021-11-15 11:38
閱讀 3772· 2021-11-15 11:37
閱讀 3496· 2021-10-27 14:19
閱讀 1955· 2021-09-03 10:36
閱讀 2002· 2021-08-16 11:02
閱讀 3009· 2019-08-30 15:55
閱讀 2262· 2019-08-30 15:44