摘要:它是第一個(gè)能夠?qū)W習(xí)內(nèi)部表示的神經(jīng)網(wǎng)絡(luò)之一,能夠代表和解決困難的組合問題。在普通玻爾茲曼機(jī)器中,單位的隨機(jī)更新需要是連續(xù)的。
上文講述了機(jī)器學(xué)習(xí)的功能和神經(jīng)網(wǎng)絡(luò)的概念,以及簡(jiǎn)要介紹了感知器和卷積神經(jīng)網(wǎng)絡(luò),接下來(lái)繼續(xù)介紹另外6種神經(jīng)網(wǎng)絡(luò)架構(gòu)。
3.遞歸神經(jīng)網(wǎng)絡(luò)為了理解RNN,我們需要對(duì)序列建模進(jìn)行簡(jiǎn)要概述。將機(jī)器學(xué)習(xí)應(yīng)用于序列時(shí),我們通常希望將輸入序列轉(zhuǎn)換為位于不同域中的輸出序列; 例如,將一系列聲壓轉(zhuǎn)換成一系列的單詞。當(dāng)沒有多帶帶的目標(biāo)序列時(shí),我們可以通過嘗試預(yù)測(cè)輸入序列中的下一項(xiàng)來(lái)獲得教學(xué)信號(hào)。目標(biāo)輸出序列是提前1步的輸入序列。這似乎比試圖預(yù)測(cè)來(lái)自其他像素的圖像中的一個(gè)像素或來(lái)自圖像的其余部分的圖像的一個(gè)像素更自然。預(yù)測(cè)序列中的下一個(gè)術(shù)語(yǔ)模糊了有監(jiān)督學(xué)習(xí)和無(wú)監(jiān)督學(xué)習(xí)之間的區(qū)別。它使用專為監(jiān)督學(xué)習(xí)而設(shè)計(jì)的方法,但它不需要多帶帶的教學(xué)信號(hào)。
無(wú)記憶模型是完成這項(xiàng)任務(wù)的標(biāo)準(zhǔn)方法。具體而言,自回歸模型可以使用延遲打拍的方法從固定數(shù)量的前一項(xiàng)中預(yù)測(cè)下一項(xiàng),并且前饋神經(jīng)網(wǎng)絡(luò)是使用一層或多層非線性隱藏單元的廣義自回歸模型。然而,如果我們給生成模型一些隱藏的狀態(tài),并且如果我們給這個(gè)隱藏狀態(tài)它自己的內(nèi)部動(dòng)態(tài),我們會(huì)得到一個(gè)更有趣的模型:它可以長(zhǎng)時(shí)間地將信息存儲(chǔ)在隱藏狀態(tài)。如果動(dòng)態(tài)是嘈雜的,它們從隱藏狀態(tài)產(chǎn)生輸出的方式是嘈雜的,那么我們永遠(yuǎn)無(wú)法知道它的確切隱藏狀態(tài)。我們能做的最好的是推斷隱藏狀態(tài)矢量空間的概率分布。這種推斷只適用于2種隱藏狀態(tài)模型。
遞歸神經(jīng)網(wǎng)絡(luò)非常強(qiáng)大,因?yàn)樗鼈兘Y(jié)合了兩個(gè)屬性:1)分布式隱藏狀態(tài),可以讓他們有效地存儲(chǔ)關(guān)于過去的大量信息; 2)非線性動(dòng)態(tài),使他們能夠以復(fù)雜的方式更新隱藏狀態(tài)。有了足夠的神經(jīng)元和時(shí)間,RNN可以計(jì)算任何可以通過計(jì)算機(jī)計(jì)算出來(lái)的東西。那么RNN可以展示什么樣的行為?它們可以振蕩,它們可以解決點(diǎn)吸引子,它們可以表現(xiàn)混亂。它們還可以學(xué)習(xí)如何實(shí)施許多小程序,每個(gè)程序捕獲一塊知識(shí),并行運(yùn)行,相互作用產(chǎn)生非常復(fù)雜的效果。
但是,RNN的計(jì)算能力使得它們很難訓(xùn)練。由于梯度問題的爆發(fā)或消失,訓(xùn)練RNN相當(dāng)困難。當(dāng)我們反復(fù)傳播多層時(shí),梯度的大小會(huì)發(fā)生什么變化?如果權(quán)重較小,則梯度呈指數(shù)級(jí)下降。如果權(quán)重很大,則梯度會(huì)成指數(shù)增長(zhǎng)。典型的前饋神經(jīng)網(wǎng)絡(luò)可以應(yīng)付這些指數(shù)效應(yīng),因?yàn)樗鼈冎挥猩贁?shù)隱藏層。另一方面,在訓(xùn)練長(zhǎng)序列的RNN中,梯度可能很容易爆炸或消失 即使具有良好的初始權(quán)重,也很難檢測(cè)到當(dāng)前目標(biāo)輸出取決于來(lái)自多個(gè)時(shí)間步長(zhǎng)的輸入,因此RNN難以處理遠(yuǎn)程依賴性。
基本上有4種有效的方法來(lái)學(xué)習(xí)RNN:
長(zhǎng)期的短期記憶:將RNN用于長(zhǎng)期記憶值的小模塊。
Hessian自由優(yōu)化:通過使用奇特的優(yōu)化器來(lái)處理消失的梯度問題,該優(yōu)化器可以檢測(cè)具有微小漸變但曲率更小的方向。
回聲狀態(tài)網(wǎng)絡(luò):初始化輸入->隱藏和隱藏->隱藏和輸出->非常小心地隱藏連接,使隱藏狀態(tài)有一個(gè)巨大的弱耦合振蕩器的儲(chǔ)層,可以通過輸入選擇性地驅(qū)動(dòng)這些振蕩器。
良好的動(dòng)態(tài)初始化:像回聲狀態(tài)網(wǎng)絡(luò)一樣初始化,然后使用動(dòng)量學(xué)習(xí)所有連接。
4.長(zhǎng)期/短期記憶網(wǎng)絡(luò)Hochreiter&Schmidhuber(1997)通過建立一種稱為長(zhǎng)期的短期記憶網(wǎng)絡(luò)的方法解決了讓RNN長(zhǎng)時(shí)間(如數(shù)百個(gè)時(shí)間步驟)記憶事情的問題。他們用具有乘法交互作用的邏輯單元和線性單元設(shè)計(jì)了一個(gè)記憶單元。信息在它的寫入門打開時(shí)進(jìn)入單元格。只要保持門打開,信息就會(huì)保留在單元格中。通過打開讀取門可以從單元讀取信息。
閱讀草書手寫是RNN的一項(xiàng)自然任務(wù)。輸入是筆尖的(x,y,p)坐標(biāo)序列,其中p表示筆是向上還是向下。輸出是一系列字符。Graves&Schmidhuber(2009)表明,帶有LSTM的RNN是目前閱讀草書的最佳系統(tǒng)。簡(jiǎn)而言之,他們使用一系列小圖像作為輸入而不是筆畫坐標(biāo)。
5.Hopfield神經(jīng)網(wǎng)絡(luò)非線性單元的遞歸網(wǎng)絡(luò)通常很難分析。它們可以以許多不同的方式表現(xiàn):穩(wěn)定狀態(tài),振蕩,或遵循無(wú)法在未來(lái)預(yù)測(cè)的混沌軌跡一個(gè)Hopfield網(wǎng)由二進(jìn)制閾值單元組成,它們之間有連續(xù)的連接。1982年,約翰·霍普菲爾德意識(shí)到,如果連接是對(duì)稱的,那么就有一個(gè)全球能量函數(shù)。整個(gè)網(wǎng)絡(luò)的二元構(gòu)型都有能量;當(dāng)二進(jìn)制閾值決策規(guī)則使網(wǎng)絡(luò)滿足最小能量函數(shù)時(shí)。使用這種計(jì)算方法的一個(gè)簡(jiǎn)潔的方法是將記憶作為神經(jīng)網(wǎng)絡(luò)的能量最小值。 使用能量最小值來(lái)表示內(nèi)存給出了內(nèi)容可尋址的內(nèi)存。一個(gè)項(xiàng)目只需知道其內(nèi)容的一部分即可訪問。它對(duì)硬件損壞很有效。
每次我們記憶一次配置,我們都希望創(chuàng)造一個(gè)新的能量最小值。 但是,如果兩個(gè)附近的最小值在一個(gè)中間位置呢?這限制了Hopfield網(wǎng)絡(luò)的容量。那么我們?nèi)绾卧黾親opfield網(wǎng)絡(luò)的容量?物理學(xué)家們喜歡這樣一種觀點(diǎn),即他們已經(jīng)知道的數(shù)學(xué)可以解釋大腦是如何工作的。許多論文發(fā)表在關(guān)于Hopfield網(wǎng)絡(luò)及其存儲(chǔ)能力的物理期刊上。最終,伊麗莎白加德納發(fā)現(xiàn)存在一個(gè)更好的存儲(chǔ)規(guī)則,可以充分利用權(quán)重。她沒有試圖一次性存儲(chǔ)向量,而是多次循環(huán)訓(xùn)練集,并使用感知器收斂過程來(lái)訓(xùn)練每個(gè)單元,使其具有正確的狀態(tài),給出該向量中所有其他單元的狀態(tài)。統(tǒng)計(jì)學(xué)家稱這種技術(shù)為“偽似然”。
Hopfield網(wǎng)絡(luò)還有另一個(gè)計(jì)算角色。 我們不用網(wǎng)絡(luò)來(lái)存儲(chǔ)記憶,而是用它來(lái)構(gòu)建傳感輸入的解釋。輸入由可見單位表示,解釋由隱藏單位的狀態(tài)表示,并且解釋的缺陷由能量表示。
6.玻爾茲曼機(jī)器網(wǎng)絡(luò)玻爾茲曼機(jī)是一類隨機(jī)遞歸神經(jīng)網(wǎng)絡(luò)。它可以被看作是Hopfield網(wǎng)絡(luò)的隨機(jī)生成對(duì)應(yīng)物。它是第一個(gè)能夠?qū)W習(xí)內(nèi)部表示的神經(jīng)網(wǎng)絡(luò)之一,能夠代表和解決困難的組合問題。
玻爾茲曼機(jī)器學(xué)習(xí)算法的學(xué)習(xí)目標(biāo)是將Boltzmann機(jī)器分配給訓(xùn)練集中的二進(jìn)制向量的概率最大化,這等價(jià)于Boltzmann機(jī)器分配給訓(xùn)練向量的對(duì)數(shù)概率之和。如果我們做了以下事情,這也等價(jià)于最大化我們可以準(zhǔn)確獲得N個(gè)訓(xùn)練案例的概率:1)讓網(wǎng)絡(luò)在沒有外部輸入的情況下以不同的時(shí)間穩(wěn)定到它的平穩(wěn)分布; 2)每次采樣一次可見向量。
2012年,Salakhutdinov和Hinton提出了玻爾茲曼機(jī)器的高效小批量學(xué)習(xí)程序。
對(duì)于正相位,首先將隱藏概率初始化為0.5,然后將可見單元上的數(shù)據(jù)向量進(jìn)行鉗位,然后并行更新所有隱藏單元,直至使用平均場(chǎng)更新進(jìn)行收斂。在網(wǎng)絡(luò)收斂之后,記錄PiPj為每一對(duì)連接的單元,并將其平均分配給小批量的所有數(shù)據(jù)。
對(duì)于負(fù)相:首先要保留一組幻想粒子。每個(gè)粒子都有一個(gè)全局配置的值。然后依次更新每個(gè)幻想粒子的所有單元數(shù)。對(duì)于每一個(gè)連接的單位,平均數(shù)SiSj除以所有的幻想粒子。
在普通玻爾茲曼機(jī)器中,單位的隨機(jī)更新需要是連續(xù)的。 有一種特殊的體系結(jié)構(gòu)允許更有效的交替并行更新(層內(nèi)沒有連接,沒有跳層連接)。這個(gè)小批量程序使玻爾茲曼機(jī)器的更新更加平行。這就是所謂的深玻爾茲曼機(jī)器(DBM),這被稱為深度玻爾茲曼機(jī)(DBM),這是一種通用的玻爾茲曼機(jī)器,有很多缺失的連接。
2014年,Salakhutdinov和Hinton為他們的模型提供了另一個(gè)更新,稱其為限制玻爾茲曼機(jī)器。它們限制了連接,從而使推理和學(xué)習(xí)變得更容易(只有一層隱藏單元,而隱藏單元之間沒有連接)。在RBM中,當(dāng)可見單元被夾住時(shí),只需一步即可達(dá)到熱平衡。
另一個(gè)有效的RBM小批量學(xué)習(xí)過程如下所示:
對(duì)于正相,首先在可見單元上夾一個(gè)數(shù)據(jù)向量。 然后計(jì)算所有可見和隱藏單元對(duì)的
反向傳播被認(rèn)為是人工神經(jīng)網(wǎng)絡(luò)中的標(biāo)準(zhǔn)方法,用于計(jì)算一批數(shù)據(jù)處理后每個(gè)神經(jīng)元的誤差貢獻(xiàn)。但是,使用反向傳播存在一些主要問題。首先,它需要標(biāo)記的訓(xùn)練數(shù)據(jù); 而幾乎所有的數(shù)據(jù)都沒有標(biāo)簽。其次,學(xué)習(xí)時(shí)間不能很好地?cái)U(kuò)展,這意味著它在具有多個(gè)隱藏層的網(wǎng)絡(luò)中速度很慢。第三,它可能會(huì)陷入局部最優(yōu)解,因此對(duì)于深網(wǎng)來(lái)說(shuō),它們遠(yuǎn)非最佳狀態(tài)。
為了克服反向傳播的局限性,研究人員已經(jīng)考慮使用無(wú)監(jiān)督學(xué)習(xí)方法。這有助于保持使用梯度方法調(diào)整權(quán)重的效率和簡(jiǎn)單性,還可以用它來(lái)對(duì)傳感輸入的結(jié)構(gòu)進(jìn)行建模。特別是,他們調(diào)整權(quán)重以最大化生成模型產(chǎn)生傳感輸入的概率。問題是我們應(yīng)該學(xué)習(xí)什么樣的生成模型?它可以是像玻爾茲曼機(jī)器這樣的基于能量的模型嗎?還是由理想化的神經(jīng)元組成的因果模型?還是兩者的混合?
信念網(wǎng)是由隨機(jī)變量組成的有向無(wú)環(huán)圖。使用信念網(wǎng),我們可以觀察到一些變量,我們想要解決2個(gè)問題:1)推理的問題:推斷不被察覺的狀態(tài)變量;2)學(xué)習(xí)問題:調(diào)整變量之間的相互作用,使網(wǎng)絡(luò)更容易生成訓(xùn)練數(shù)據(jù)。
早期的圖形模型使用專家來(lái)定義圖形結(jié)構(gòu)和條件概率。到那時(shí),這些圖形是稀疏連接的;因此,研究人員最初專注于做正確的推斷,而不是學(xué)習(xí)。對(duì)于神經(jīng)網(wǎng)絡(luò)來(lái)說(shuō),學(xué)習(xí)是中心的,手寫的知識(shí)并不酷,因?yàn)橹R(shí)來(lái)自于學(xué)習(xí)訓(xùn)練數(shù)據(jù)。神經(jīng)網(wǎng)絡(luò)的目的不是為了便于解釋,也不是為了讓推理變得簡(jiǎn)單。然而,有神經(jīng)網(wǎng)絡(luò)版本的信念網(wǎng)。
有兩類由隨機(jī)二元神經(jīng)元組成的產(chǎn)生式神經(jīng)網(wǎng)絡(luò):1)基于能量的神經(jīng)網(wǎng)絡(luò),在此基礎(chǔ)上,我們利用對(duì)稱連接將二元隨機(jī)神經(jīng)元連接到一個(gè)波耳茲曼機(jī)器上;2)因果關(guān)系,我們?cè)谝粋€(gè)有向無(wú)環(huán)圖中連接二元隨機(jī)神經(jīng)元,得到一個(gè)s型信念網(wǎng)絡(luò)。這兩種類型的描述超出了本文的范圍。
8.深度自動(dòng)編碼器最后,我們來(lái)討論深度自動(dòng)編碼器。由于以下幾個(gè)原因,它們總是看起來(lái)像是一種很好的非線性降維方法:因?yàn)樗鼈兲峁┝藘煞N方式的靈活映射。在訓(xùn)練案例的數(shù)量上,學(xué)習(xí)時(shí)間是線性的(或更好的)。最終的編碼模型是相當(dāng)緊湊和快速的。最終的編碼模型非常緊湊和快速。然而,利用反向傳播來(lái)優(yōu)化深度自動(dòng)編碼器是非常困難的。隨著初始重量較小,后向傳播梯度消失。我們現(xiàn)在有更好的方法來(lái)優(yōu)化它們; 要么使用無(wú)監(jiān)督的逐層預(yù)訓(xùn)練,要么像在回聲狀態(tài)網(wǎng)中一樣仔細(xì)地初始化權(quán)重。
對(duì)于預(yù)訓(xùn)練任務(wù),實(shí)際上有3種不同類型的淺自動(dòng)編碼器:
1.RBM是一種自動(dòng)編碼器:當(dāng)我們用一階對(duì)比散度訓(xùn)練RBM時(shí),它試圖使重構(gòu)看起來(lái)像數(shù)據(jù)。它就像一個(gè)自動(dòng)編碼器,但它是通過在隱藏層中使用二進(jìn)制活動(dòng)來(lái)實(shí)現(xiàn)的。在最大可能的訓(xùn)練下,RBM不像自動(dòng)編碼器。我們可以用一堆淺層的自動(dòng)編碼器來(lái)代替RBM的堆疊。然而,如果淺層的自動(dòng)編碼器通過對(duì)平方權(quán)重的懲罰來(lái)規(guī)范,那么預(yù)先訓(xùn)練并不是有效的(對(duì)于隨后的辨別)。
2.去噪自動(dòng)編碼器:通過將其許多分量設(shè)置為0(如丟失,但用于輸入),將噪聲添加到輸入向量。他們?nèi)匀恍枰亟ㄟ@些組件,以便他們必須提取捕獲輸入之間相關(guān)性的功能。如果我們使用一堆去噪的自動(dòng)編碼器,預(yù)訓(xùn)練非常有效。它與RBM的預(yù)訓(xùn)練一樣好或者更好。評(píng)估預(yù)訓(xùn)練也更簡(jiǎn)單,因?yàn)槲覀兛梢院苋菀椎赜?jì)算出目標(biāo)函數(shù)的值。它缺少RBM的變分約束,但這只是理論上的興趣。
3.壓縮自動(dòng)編碼器:另一種規(guī)范自動(dòng)編碼器的方法是嘗試使隱藏單元的活動(dòng)對(duì)輸入盡可能不敏感;但他們不能忽視輸入,因?yàn)樗麄儽仨氈亟?。我們通過懲罰每個(gè)隱藏活動(dòng)相對(duì)于輸入的平方梯度來(lái)實(shí)現(xiàn)這一點(diǎn)。壓縮自動(dòng)編碼器在預(yù)訓(xùn)練中工作良好。這些代碼往往具有這樣的特性:只有一小部分隱藏單元對(duì)輸入的變化敏感。
簡(jiǎn)單地說(shuō),現(xiàn)在有許多不同的方法來(lái)對(duì)特性進(jìn)行逐層預(yù)訓(xùn)練。對(duì)于沒有大量標(biāo)記案例的數(shù)據(jù)集,預(yù)訓(xùn)練有助于后續(xù)的區(qū)分性學(xué)習(xí)。對(duì)于非常大的,標(biāo)記的數(shù)據(jù)集,通過無(wú)監(jiān)督的預(yù)訓(xùn)練來(lái)初始化監(jiān)督學(xué)習(xí)中使用的權(quán)重并不是必需的,即使是深度網(wǎng)絡(luò)也是如此。預(yù)培訓(xùn)是初始化深網(wǎng)權(quán)重的第一個(gè)好方法,但現(xiàn)在還有其他方法。但是,如果我們讓網(wǎng)更大,我們將需要再次進(jìn)行預(yù)訓(xùn)練!
總結(jié)
神經(jīng)網(wǎng)絡(luò)是有史以來(lái)最漂亮的編程范例之一。 在傳統(tǒng)的編程方法中,我們告訴計(jì)算機(jī)要做什么,將大問題分解成計(jì)算機(jī)可以輕松執(zhí)行的許多小的,精確定義的任務(wù)。 相比之下,在神經(jīng)網(wǎng)絡(luò)中,我們不告訴計(jì)算機(jī)如何解決我們的問題。 相反,它從觀測(cè)數(shù)據(jù)中學(xué)習(xí),找出解決手頭問題的辦法。
今天,深度神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)在計(jì)算機(jī)視覺,語(yǔ)音識(shí)別和自然語(yǔ)言處理等許多重要問題上取得了出色的表現(xiàn)。 它們正在被谷歌,微軟和Facebook等公司大規(guī)模部署。
我希望這篇文章能幫助你學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)的核心概念,包括深度學(xué)習(xí)的現(xiàn)代技術(shù)。你可以從我的GitHub庫(kù)中獲取Hinton"s Coursera課程所做的所有演講幻燈片,研究論文和編程作業(yè)。祝你好運(yùn)學(xué)習(xí)!
文章原標(biāo)題《The 8 Neural Network Architectures Machine Learning Researchers Need to Learn》
作者:Nand Kishor
詳情請(qǐng)閱讀原文
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/11861.html
摘要:神經(jīng)網(wǎng)絡(luò)是一組特定的算法,對(duì)機(jī)器學(xué)習(xí)領(lǐng)域發(fā)生了革命性的變化。在這篇博客文章中,我想分享我認(rèn)為機(jī)器學(xué)習(xí)研究人員應(yīng)該熟悉的課程中的個(gè)神經(jīng)網(wǎng)絡(luò)架構(gòu),以推進(jìn)他們的工作。卷積神經(jīng)網(wǎng)絡(luò)機(jī)器學(xué)習(xí)研究一直以來(lái)都集中在對(duì)象檢測(cè)問題上。 摘要: 本文簡(jiǎn)要講述了8種機(jī)器學(xué)習(xí)架構(gòu),希望可以給大家?guī)?lái)幫助 showImg(https://segmentfault.com/img/bV8Hby?w=1000&h=...
閱讀 2937·2021-11-24 09:39
閱讀 3623·2021-11-22 13:54
閱讀 3425·2021-11-16 11:45
閱讀 2454·2021-09-09 09:33
閱讀 3211·2019-08-30 15:55
閱讀 1302·2019-08-29 15:40
閱讀 932·2019-08-29 15:19
閱讀 3411·2019-08-29 15:14