自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

25張圖讓你讀懂神經(jīng)網(wǎng)絡(luò)架構(gòu)

大數(shù)據(jù)
由于新的神經(jīng)網(wǎng)絡(luò)架構(gòu)無(wú)時(shí)無(wú)刻不在涌現(xiàn),想要記錄所有的神經(jīng)網(wǎng)絡(luò)是很困難的事情。要把所有這些縮略語(yǔ)指代的網(wǎng)絡(luò)(DCIGN,IiLSTM,DCGAN等)都弄清,一開(kāi)始估計(jì)還無(wú)從下手。

由于新的神經(jīng)網(wǎng)絡(luò)架構(gòu)無(wú)時(shí)無(wú)刻不在涌現(xiàn),想要記錄所有的神經(jīng)網(wǎng)絡(luò)是很困難的事情。要把所有這些縮略語(yǔ)指代的網(wǎng)絡(luò)(DCIGN,IiLSTM,DCGAN等)都弄清,一開(kāi)始估計(jì)還無(wú)從下手。

下表包含了大部分常用的模型(大部分是神經(jīng)網(wǎng)絡(luò)還有一些其他的模型)。雖然這些架構(gòu)都是新奇獨(dú)特的,但當(dāng)我開(kāi)始把它們的結(jié)果畫(huà)下來(lái)的時(shí)候,每種架構(gòu)的底層關(guān)系就會(huì)清晰。

 

顯然這些節(jié)點(diǎn)圖并不能顯示各個(gè)模型的內(nèi)部工作過(guò)程。例如變分自動(dòng)編碼器(VAE)和自動(dòng)編碼器(AE)節(jié)點(diǎn)圖看起來(lái)一樣,但是二者的訓(xùn)練過(guò)程實(shí)際上是完全不同的,訓(xùn)練后模型的使用場(chǎng)景更加不同。VAE是生成器,用于在樣本中插入噪聲。而 AE 則僅僅是將它們得到的輸入映射到它們“記憶”中最近的訓(xùn)練樣本!本文不詳細(xì)介紹每個(gè)不同構(gòu)架內(nèi)部如何工作。

雖然大多數(shù)縮寫(xiě)已經(jīng)被普遍接受,但也會(huì)出現(xiàn)一些沖突。例如RNN通常指復(fù)發(fā)神經(jīng)網(wǎng)絡(luò),有時(shí)也指遞歸神經(jīng)網(wǎng)絡(luò),甚至在許多地方只是泛指各種復(fù)發(fā)架構(gòu)(包括LSTM,GRU甚至雙向變體)。AE也一樣,VAE和DAE等都被簡(jiǎn)單的稱(chēng)為AE。此外,同一個(gè)模型的縮寫(xiě)也會(huì)出現(xiàn)后綴N的個(gè)數(shù)不同的問(wèn)題。同一個(gè)模型可以將其稱(chēng)為卷積神經(jīng)網(wǎng)絡(luò)也可稱(chēng)作卷積網(wǎng)絡(luò),對(duì)應(yīng)的縮寫(xiě)就成了CNN或CN

將本文作為完整的神經(jīng)網(wǎng)絡(luò)列表幾乎是不可能的,因?yàn)樾碌募軜?gòu)一直被發(fā)明,即使新架構(gòu)發(fā)布了,想要找到他們也是困難的。因此本文可能會(huì)為您提供一些對(duì)AI世界的見(jiàn)解,但絕對(duì)不是所有; 特別是您在這篇文章發(fā)表很久之后才看到。

對(duì)于上圖中描繪的每個(gè)架構(gòu),本文做了非常簡(jiǎn)短的描述。如果您對(duì)某些架構(gòu)非常熟悉,您可能會(huì)發(fā)現(xiàn)其中一些有用。

 

感知器(P左圖)和前饋神經(jīng)網(wǎng)絡(luò)(FF或FFNN右圖)非常直觀,它們將信息從前端輸入,再?gòu)暮蠖溯敵?。神?jīng)網(wǎng)絡(luò)通常被描述為具有層(輸入,隱藏或輸出層),其中每層由并行的單元組成。通常同一層不具有連接、兩個(gè)相鄰層完全連接(每一層的每一個(gè)神經(jīng)元到另一層的每個(gè)神經(jīng)元)。最簡(jiǎn)單的實(shí)用網(wǎng)絡(luò)有兩個(gè)輸入單元和一個(gè)輸出單元,可用于建立邏輯模型( 用做判斷是否)。通常通過(guò)反向傳播方法來(lái)訓(xùn)練FFNN,數(shù)據(jù)集由配對(duì)的輸入和輸出結(jié)果組成(這被稱(chēng)為監(jiān)督學(xué)習(xí))。我們只給它輸入,讓網(wǎng)絡(luò)填充輸出。反向傳播的誤差通常是填充輸出和實(shí)際輸出之間差異的一些變化(如MSE或僅僅線(xiàn)性差異)。鑒于網(wǎng)絡(luò)具有足夠的隱藏神經(jīng)元,理論上可以總是對(duì)輸入和輸出之間的關(guān)系建模。實(shí)際上它們的應(yīng)用是很有限的,通常將它們與其他網(wǎng)絡(luò)結(jié)合形成新的網(wǎng)絡(luò)。

 

徑向基函數(shù)(RBF)網(wǎng)絡(luò)就是以徑向基函數(shù)作為激活函數(shù)的FFNN網(wǎng)絡(luò)。但是RBFNN有其區(qū)別于FFNN的使用場(chǎng)景(由于發(fā)明時(shí)間問(wèn)題大多數(shù)具有其他激活功能的FFNN都沒(méi)有自己的名字)。

 

Hopfield網(wǎng)絡(luò)(HN)的每個(gè)神經(jīng)元被連接到其他神經(jīng)元; 它的結(jié)構(gòu)像一盤(pán)完全糾纏的意大利面板。每個(gè)節(jié)點(diǎn)在訓(xùn)練前輸入,然后在訓(xùn)練期間隱藏并輸出。通過(guò)將神經(jīng)元的值設(shè)置為期望的模式來(lái)訓(xùn)練網(wǎng)絡(luò),此后權(quán)重不變。一旦訓(xùn)練了一個(gè)或多個(gè)模式,網(wǎng)絡(luò)將總是會(huì)收斂到其中一個(gè)學(xué)習(xí)模式,因?yàn)榫W(wǎng)絡(luò)在這個(gè)狀態(tài)中是穩(wěn)定的。需要注意的是,HN 不會(huì)總是與理想的狀態(tài)保持一致。網(wǎng)絡(luò)穩(wěn)定的部分原因在于總的“能量”或“溫度”在訓(xùn)練過(guò)程中逐漸縮小。每個(gè)神經(jīng)元都有一個(gè)被激活的閾值,隨溫度發(fā)生變化,一旦超過(guò)輸入的總合,就會(huì)導(dǎo)致神經(jīng)元變成兩個(gè)狀態(tài)中的一個(gè)(通常是 -1 或 1,有時(shí)候是 0 或 1)。更新網(wǎng)絡(luò)可以同步進(jìn)行,也可以依次輪流進(jìn)行,后者更為常見(jiàn)。當(dāng)輪流更新網(wǎng)絡(luò)時(shí),一個(gè)公平的隨機(jī)序列會(huì)被生成,每個(gè)單元會(huì)按照規(guī)定的次序進(jìn)行更新。因此,當(dāng)每個(gè)單元都經(jīng)過(guò)更新而且不再發(fā)生變化時(shí),你就能判斷出網(wǎng)絡(luò)是穩(wěn)定的(不再收斂)。這些網(wǎng)絡(luò)也被稱(chēng)為聯(lián)存儲(chǔ)器,因?yàn)樗鼈儠?huì)收斂到與輸入最相似的狀態(tài);當(dāng)人類(lèi)看到半張桌子的時(shí)候,我們會(huì)想象出桌子的另一半,如果輸入一半噪音、一半桌子,HN 將收斂成一張桌子。

 

馬可夫鏈(MC或離散時(shí)間馬爾可夫鏈,DTMC)是BM和HN的前身。它可以這樣理解:從我現(xiàn)在的這個(gè)節(jié)點(diǎn),我去任何一個(gè)鄰居節(jié)點(diǎn)的幾率是無(wú)記,這意味著你最終選擇的節(jié)點(diǎn)完全取決于當(dāng)前的所處的節(jié)點(diǎn),l與過(guò)去所處的節(jié)點(diǎn)無(wú)關(guān)。這雖然不是真正的神經(jīng)網(wǎng)絡(luò),但類(lèi)似于神經(jīng)網(wǎng)絡(luò),并且構(gòu)成了BM和HNs的理論基礎(chǔ)。就像BM、RBM和HN一樣,MC并不總是被認(rèn)為是神經(jīng)網(wǎng)絡(luò)。此外,馬爾科夫鏈也并不總是完全連接。

 

波爾茲曼機(jī)(BM)很像HN,區(qū)別在于只有一些神經(jīng)元被標(biāo)記為輸入神經(jīng)元,而其他神經(jīng)元保持“隱藏”。輸入神經(jīng)元在完整的網(wǎng)絡(luò)更新結(jié)束時(shí)成為輸出神經(jīng)元。它以隨機(jī)權(quán)重開(kāi)始,并通過(guò)反向傳播學(xué)習(xí)或通過(guò)對(duì)比分歧(一種馬爾科夫鏈用于確定兩個(gè)信息增益之間的梯度)訓(xùn)練模型。與HN相比,BM的神經(jīng)元大多具有二元激活模式。由于被MC訓(xùn)練,BM是隨機(jī)網(wǎng)絡(luò)。BM的訓(xùn)練和運(yùn)行過(guò)程與HN非常相似:將輸入神經(jīng)元設(shè)置為某些鉗位值,從而釋放網(wǎng)絡(luò)。雖然釋放節(jié)點(diǎn)可以獲得任何值,但這樣導(dǎo)致在輸入和隱藏層之間多次反復(fù)。激活由全局閾值控制。這種全局誤差逐漸降的過(guò)程導(dǎo)致網(wǎng)絡(luò)最終達(dá)到平衡。

 

限制玻爾茲曼機(jī)(RBM)與BM非常相似,也與HN類(lèi)似。BM和RBM之間的最大區(qū)別是,RBM有更好的可用性,因?yàn)樗艿礁嗟南拗啤BM不會(huì)將每個(gè)神經(jīng)元連接到每個(gè)其他神經(jīng)元,但只將每個(gè)神經(jīng)元組連接到每個(gè)其他組,因此沒(méi)有輸入神經(jīng)元直接連接到其他輸入神經(jīng)元,也不會(huì)有隱藏層直接連接到隱藏層。RBM可以像FFNN一樣進(jìn)行訓(xùn)練,而不是將數(shù)據(jù)向前傳播然后反向傳播。

 

自編碼器(Autoencoders, AE)與前饋神經(jīng)網(wǎng)絡(luò)(FFNN)有點(diǎn)相似。與其說(shuō)它是一個(gè)完全不同的網(wǎng)絡(luò)結(jié)構(gòu),不如說(shuō)它是前饋神經(jīng)網(wǎng)絡(luò)的不同應(yīng)用。自編碼器的基本思想是:自動(dòng)編碼信息(如壓縮,而非加密)。由此,而得名。整個(gè)網(wǎng)絡(luò)在形狀上像一個(gè)漏斗:它的隱藏層單元總是比輸入層和輸出層少。自編碼器總是關(guān)于中央層對(duì)稱(chēng)(中央層是一個(gè)還是兩個(gè)取決于網(wǎng)絡(luò)的層數(shù):如果是奇數(shù),關(guān)于最中間一層對(duì)稱(chēng);如果是偶數(shù),關(guān)于最中間的兩層對(duì)稱(chēng))。最小的隱藏層總是處在中央層,這也是信息最壓縮的地方(被稱(chēng)為網(wǎng)絡(luò)的阻塞點(diǎn))。從輸入層到中央層叫做編碼部分,從中央層到輸出層叫做解碼部分,中央層叫做編碼(code)。可以使用反向傳播算法來(lái)訓(xùn)練自編碼器,將數(shù)據(jù)輸入網(wǎng)絡(luò),將誤差設(shè)置為輸入數(shù)據(jù)與網(wǎng)絡(luò)輸出數(shù)據(jù)之間的差異。自編碼器的權(quán)重也是對(duì)稱(chēng)的,即編碼權(quán)重和解碼權(quán)重是一樣的。 

 

稀疏自編碼器(Sparse autoencoders, SAE)在某種程度上與自編碼器相反。不同于我們訓(xùn)練一個(gè)網(wǎng)絡(luò)在更低維的空間和結(jié)點(diǎn)上去表征一堆信息,在這里我們嘗試著在更高維的空間上編碼信息。所以在中央層,網(wǎng)絡(luò)不是收斂的,而是擴(kuò)張的。這種類(lèi)型的網(wǎng)絡(luò)可以用于提取數(shù)據(jù)集的特征。如果我們用訓(xùn)練自編碼器的方法來(lái)訓(xùn)練稀疏自編碼,幾乎在所有的情況下,會(huì)得到一個(gè)完全無(wú)用的恒等網(wǎng)絡(luò)(即,輸入什么,網(wǎng)絡(luò)就會(huì)輸出什么,沒(méi)有任何轉(zhuǎn)換或者分解)。為了避免這種情況,在反饋輸入的過(guò)程中會(huì)加上一個(gè)稀疏驅(qū)動(dòng)。這個(gè)稀疏驅(qū)動(dòng)可以采用閾值過(guò)濾的形式,即只有特定的誤差可以逆?zhèn)鞑ゲ⒈挥?xùn)練,其他誤差被視為訓(xùn)練無(wú)關(guān)的并被設(shè)置為零。某種程度上,這和脈沖神經(jīng)網(wǎng)絡(luò)相似:并非所有的神經(jīng)元在每個(gè)時(shí)刻都會(huì)被激活(這在生物學(xué)上有一定的合理性)

 

變分自編碼器(Variational autoencoders, VAE)和自編碼器有相同的網(wǎng)絡(luò)結(jié)構(gòu),但是模型學(xué)到的一些其他的東西:輸入樣本的近似概率分布。這一點(diǎn)和玻爾茲曼機(jī)(BM)、受限玻爾茲曼機(jī)(RBM)更相似。然而,他們依賴(lài)于貝葉斯數(shù)學(xué),這涉及到概率推斷和獨(dú)立性,以及再參數(shù)化(reparametrisation)技巧以獲得不同的表征。概率推斷和獨(dú)立性部分有直觀的意義,但是他們依賴(lài)于復(fù)雜的數(shù)學(xué)知識(shí)?;驹砣缦拢簩⒂绊懣紤]進(jìn)去。如果一件事在一個(gè)地方發(fā)生,而另一件事在其他地方發(fā)生,那么它們未必是相關(guān)的。如果它們不相關(guān),那么誤差逆?zhèn)鞑サ倪^(guò)程中應(yīng)該考慮這個(gè)。這種方法是有用的,因?yàn)樯窠?jīng)網(wǎng)絡(luò)是大型圖(在某種程度上),所以當(dāng)進(jìn)入更深的網(wǎng)絡(luò)層時(shí),你可以排除一些結(jié)點(diǎn)對(duì)于其他結(jié)點(diǎn)的影響。 

 

去噪自編碼器(Denoising autoencoders, DAE)是一種自編碼器。在去噪自編碼器中,我們不是輸入原始數(shù)據(jù),而是輸入帶噪聲的數(shù)據(jù)(好比讓圖像更加的顆粒化)。但是我們用和之前一樣的方法計(jì)算誤差。所以網(wǎng)絡(luò)的輸出是和沒(méi)有噪音的原始輸入數(shù)據(jù)相比較的。這鼓勵(lì)網(wǎng)絡(luò)不僅僅學(xué)習(xí)細(xì)節(jié),而且學(xué)習(xí)到更廣的特征。因?yàn)樘卣骺赡茈S著噪音而不斷變化,所以一般網(wǎng)絡(luò)學(xué)習(xí)到的特征通常地錯(cuò)誤的。

深度信念網(wǎng)絡(luò)(Deep belief networks, DBN)是受限玻爾茲曼機(jī)或者變分自編碼器的堆疊結(jié)構(gòu)。這些網(wǎng)絡(luò)已經(jīng)被證明是可有效訓(xùn)練的。其中,每個(gè)自編碼器或者玻爾茲曼機(jī)只需要學(xué)習(xí)對(duì)之前的網(wǎng)絡(luò)進(jìn)行編碼。這種技術(shù)也被稱(chēng)為貪婪訓(xùn)練。貪婪是指在下降的過(guò)程中只求解局部最優(yōu)解,這個(gè)局部最優(yōu)解可能并非全局最優(yōu)解。深度信念網(wǎng)絡(luò)能夠通過(guò)對(duì)比散度(contrastive divergence)或者反向傳播來(lái)訓(xùn)練,并像常規(guī)的受限玻爾茲曼機(jī)或變分自編碼器那樣,學(xué)習(xí)將數(shù)據(jù)表示成概率模型。一旦模型通過(guò)無(wú)監(jiān)督學(xué)習(xí)被訓(xùn)練或收斂到一個(gè)(更)穩(wěn)定的狀態(tài),它可以被用作生成新數(shù)據(jù)。如果使用對(duì)比散度訓(xùn)練,它甚至可以對(duì)現(xiàn)有數(shù)據(jù)進(jìn)行分類(lèi),因?yàn)樯窠?jīng)元被教導(dǎo)尋找不同的特征。 

 

卷積神經(jīng)網(wǎng)絡(luò)(Convolutional neural networks, CNN, or Deep convolutional neural networks, DCNN)和大多數(shù)其他網(wǎng)絡(luò)完全不同。它們主要用于圖像處理,但也可用于其他類(lèi)型的輸入,如音頻。卷積神經(jīng)網(wǎng)絡(luò)的一個(gè)典型應(yīng)用是:將圖片輸入網(wǎng)絡(luò),網(wǎng)絡(luò)將對(duì)圖片進(jìn)行分類(lèi)。例如,如果你輸入一張貓的圖片,它將輸出“貓”;如果你輸入一張狗的圖片,它將輸出“狗”。卷積神經(jīng)網(wǎng)絡(luò)傾向于使用一個(gè)輸入“掃描儀”,而不是一次性解析所有的訓(xùn)練數(shù)據(jù)。舉個(gè)例子,為了輸入一張200 x 200像素的圖片,你不需要使用一個(gè)有40000個(gè)結(jié)點(diǎn)的輸入層。相反,你只要?jiǎng)?chuàng)建一個(gè)掃描層,這個(gè)輸入層只有20 x 20個(gè)結(jié)點(diǎn),你可以輸入圖片最開(kāi)始的20 x 20像素(通常從圖片的左上角開(kāi)始)。一旦你傳遞了這20 x 20像素?cái)?shù)據(jù)(可能使用它進(jìn)行了訓(xùn)練),你又可以輸入下一個(gè)20 x 20像素:將“掃描儀”向右移動(dòng)一個(gè)像素。注意,不要移動(dòng)超過(guò)20個(gè)像素(或者其他“掃描儀”寬度)。你不是將圖像解剖為20 x 20的塊,而是在一點(diǎn)點(diǎn)移動(dòng)“掃描儀“。然后,這些輸入數(shù)據(jù)前饋到卷積層而非普通層。卷積層的結(jié)點(diǎn)并不是全連接的。每個(gè)結(jié)點(diǎn)只和它鄰近的節(jié)點(diǎn)(cell)相關(guān)聯(lián)(多靠近取決于應(yīng)用實(shí)現(xiàn),但是通常不會(huì)超過(guò)幾個(gè))。這些卷積層隨著網(wǎng)絡(luò)的加深會(huì)逐漸收縮,通常卷積層數(shù)是輸入的因子。(所以,如果輸入是20,可能接下來(lái)的卷積層是10,再接下來(lái)是5)。2的冪是經(jīng)常被使用的,因?yàn)樗鼈兡軌虮徽?2,16,8,4,2,1。除了卷積層,還有特征池化層。池化是一種過(guò)濾細(xì)節(jié)的方法:最常用的池化技術(shù)是最大池化(max pooling)。比如,使用2 x 2像素,取這四個(gè)像素中數(shù)值最大的那個(gè)。為了將卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用到音頻,逐段輸入剪輯長(zhǎng)度的輸入音頻波。卷積神經(jīng)網(wǎng)絡(luò)在真實(shí)世界的應(yīng)用通常會(huì)在最后加入一個(gè)前饋神經(jīng)網(wǎng)絡(luò)(FFNN)以進(jìn)一步處理數(shù)據(jù),這允許了高度非線(xiàn)性特征映射。這些網(wǎng)絡(luò)被稱(chēng)為DCNN,但是這些名字和縮寫(xiě)通常是可以交換使用的。

 

反卷積神經(jīng)網(wǎng)絡(luò)(Deconvolutional networks, DN),也叫做逆向圖網(wǎng)絡(luò)(inverse graphics networks, IGN)。它是反向卷積神經(jīng)網(wǎng)絡(luò)。想象一下,將一個(gè)單詞”貓“輸入神經(jīng)網(wǎng)絡(luò),并通過(guò)比較網(wǎng)絡(luò)輸出和真實(shí)貓的圖片之間的差異來(lái)訓(xùn)練網(wǎng)絡(luò)模型,最終產(chǎn)生一個(gè)看上去像貓的圖片。反卷積神經(jīng)網(wǎng)絡(luò)可以像常規(guī)的卷積神經(jīng)網(wǎng)絡(luò)一樣結(jié)合前饋神經(jīng)網(wǎng)絡(luò)使用,但是這可能涉及到新的名字縮寫(xiě)。它們可能是深度反卷積神經(jīng)網(wǎng)絡(luò),但是你可能傾向于:當(dāng)你在反卷積神經(jīng)網(wǎng)絡(luò)前面或者后面加上前饋神經(jīng)網(wǎng)絡(luò),它們可能是新的網(wǎng)絡(luò)結(jié)構(gòu)而應(yīng)該取新的名字。值得注意的事,在真實(shí)的應(yīng)用中,你不可能直接把文本輸入網(wǎng)絡(luò),而應(yīng)該輸入一個(gè)二分類(lèi)向量。如,<0,1>是貓,<1,0>是狗,而<1,1>是貓和狗。在卷積神經(jīng)網(wǎng)絡(luò)中有池化層,在這里通常被相似的反向操作替代,通常是有偏的插補(bǔ)或者外推(比如,如果池化層使用最大池化,當(dāng)反向操作時(shí),可以產(chǎn)生其他更低的新數(shù)據(jù)來(lái)填充)   

 

深度卷積逆向圖網(wǎng)絡(luò)(Deep convolutional inverse graphics networks , DCIGN),這個(gè)名字具有一定的誤導(dǎo)性,因?yàn)槭聦?shí)上它們是變分自編碼器(VAE),只是在編碼器和解碼器中分別有卷積神經(jīng)網(wǎng)絡(luò)(CNN)和反卷積神經(jīng)網(wǎng)絡(luò)(DNN)。這些網(wǎng)絡(luò)嘗試在編碼的過(guò)程中對(duì)“特征“進(jìn)行概率建模,這樣一來(lái),你只要用貓和狗的獨(dú)照,就能讓網(wǎng)絡(luò)學(xué)會(huì)生成一張貓和狗的合照。同樣的,你可以輸入一張貓的照片,如果貓的旁邊有一只惱人的鄰居家的狗,你可以讓網(wǎng)絡(luò)將狗去掉。實(shí)驗(yàn)顯示,這些網(wǎng)絡(luò)也可以用來(lái)學(xué)習(xí)對(duì)圖像進(jìn)行復(fù)雜轉(zhuǎn)換,比如,改變3D物體的光源或者對(duì)物體進(jìn)行旋轉(zhuǎn)操作。這些網(wǎng)絡(luò)通常用反向傳播進(jìn)行訓(xùn)練。

 

 

生成式對(duì)抗網(wǎng)絡(luò)(Generative adversarial networks , GAN)是一種新的網(wǎng)絡(luò)。網(wǎng)絡(luò)是成對(duì)出現(xiàn)的:兩個(gè)網(wǎng)絡(luò)一起工作。生成式對(duì)抗網(wǎng)絡(luò)可以由任何兩個(gè)網(wǎng)絡(luò)構(gòu)成(盡管通常情況下是前饋神經(jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)配對(duì)),其中一個(gè)網(wǎng)絡(luò)負(fù)責(zé)生成內(nèi)容,另外一個(gè)負(fù)責(zé)對(duì)內(nèi)容進(jìn)行判別。判別網(wǎng)絡(luò)同時(shí)接收訓(xùn)練數(shù)據(jù)和生成網(wǎng)絡(luò)生成的數(shù)據(jù)。判別網(wǎng)絡(luò)能夠正確地預(yù)測(cè)數(shù)據(jù)源,然后被用作生成網(wǎng)絡(luò)的誤差部分。這形成了一種對(duì)抗:判別器在辨識(shí)真實(shí)數(shù)據(jù)和生成數(shù)據(jù)方面做得越來(lái)越好,而生成器努力地生成判別器難以辨識(shí)的數(shù)據(jù)。這種網(wǎng)絡(luò)取得了比較好的效果,部分原因是:即使是很復(fù)雜的噪音模式最終也是可以預(yù)測(cè)的,但生成與輸入數(shù)據(jù)相似的特征的內(nèi)容更難辨別。生成式對(duì)抗網(wǎng)絡(luò)很難訓(xùn)練,因?yàn)槟悴粌H僅要訓(xùn)練兩個(gè)網(wǎng)絡(luò)(它們中的任意一個(gè)都有自己的問(wèn)題),而且還要考慮兩個(gè)網(wǎng)絡(luò)的動(dòng)態(tài)平衡。如果預(yù)測(cè)或者生成部分變得比另一個(gè)好,那么網(wǎng)絡(luò)最終不會(huì)收斂。

 

循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent neural networks , RNN)是考慮時(shí)間的前饋神經(jīng)網(wǎng)絡(luò):它們并不是無(wú)狀態(tài)的;通道與通道之間通過(guò)時(shí)間存在這一定聯(lián)系。神經(jīng)元不僅接收來(lái)上一層神經(jīng)網(wǎng)絡(luò)的信息,還接收上一通道的信息。這就意味著你輸入神經(jīng)網(wǎng)絡(luò)以及用來(lái)訓(xùn)練網(wǎng)絡(luò)的數(shù)據(jù)的順序很重要:輸入”牛奶“、”餅干“和輸入”餅干“、”牛奶“會(huì)產(chǎn)生不一樣的結(jié)果。循環(huán)神經(jīng)網(wǎng)絡(luò)最大的問(wèn)題是梯度消失(或者梯度爆炸),這取決于使用的激活函數(shù)。在這種情況下,隨著時(shí)間信息會(huì)快速消失,正如隨著前饋神經(jīng)網(wǎng)絡(luò)的深度增加,信息會(huì)丟失。直觀上,這并不是一個(gè)大問(wèn)題,因?yàn)樗鼈冎皇菣?quán)重而非神經(jīng)元狀態(tài)。但是隨著時(shí)間,權(quán)重已經(jīng)存儲(chǔ)了過(guò)去的信息。如果權(quán)重達(dá)到了0或者1000000,先前的狀態(tài)就變得沒(méi)有信息價(jià)值了。卷積神經(jīng)網(wǎng)絡(luò)可以應(yīng)用到很多領(lǐng)域,大部分形式的數(shù)據(jù)并沒(méi)有真正的時(shí)間軸(不像聲音、視頻),但是可以表示為序列形式。對(duì)于一張圖片或者是一段文本的字符串,可以在每個(gè)時(shí)間點(diǎn)一次輸入一個(gè)像素或者一個(gè)字符。所以,依賴(lài)于時(shí)間的權(quán)重能夠用于表示序列前一秒的信息,而不是幾秒前的信息。通常,對(duì)于預(yù)測(cè)未來(lái)信息或者補(bǔ)全信息,循環(huán)神經(jīng)網(wǎng)絡(luò)是一個(gè)好的選擇,比如自動(dòng)補(bǔ)全功能。

 

長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(Long / short term memory , LSTM)通過(guò)引入門(mén)結(jié)構(gòu)(gate)和一個(gè)明確定義的記憶單元(memory cell)來(lái)嘗試克服梯度消失或者梯度爆炸的問(wèn)題。這一思想大部分是從電路學(xué)中獲得的啟發(fā),而不是從生物學(xué)。每個(gè)神經(jīng)元有一個(gè)記憶單元和是三個(gè)門(mén)結(jié)構(gòu):輸入、輸出和忘記。這些門(mén)結(jié)構(gòu)的功能是通過(guò)禁止或允許信息的流動(dòng)來(lái)保護(hù)信息。輸入門(mén)結(jié)構(gòu)決定了有多少來(lái)自上一層的信息被存儲(chǔ)當(dāng)前記憶單元。輸出門(mén)結(jié)構(gòu)承擔(dān)了另一端的工作,決定下一層可以了解到多少這一層的信息。忘記門(mén)結(jié)構(gòu)初看很奇怪,但是有時(shí)候忘記是必要的:

如果網(wǎng)絡(luò)正在學(xué)習(xí)一本書(shū),并開(kāi)始了新的章節(jié),那么忘記前一章的一些人物角色是有必要的。

長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)被證明能夠?qū)W習(xí)復(fù)雜的序列,比如:像莎士比亞一樣寫(xiě)作,或者合成簡(jiǎn)單的音樂(lè)。值得注意的是,這些門(mén)結(jié)構(gòu)中的每一個(gè)都對(duì)前一個(gè)神經(jīng)元中的記憶單元賦有權(quán)重,所以一般需要更多的資源來(lái)運(yùn)行。

 

門(mén)控循環(huán)單元(Gated recurrent units , GRU)是長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)的一種變體。不同之處在于,沒(méi)有輸入門(mén)、輸出門(mén)、忘記門(mén),它只有一個(gè)更新門(mén)。該更新門(mén)確定了從上一個(gè)狀態(tài)保留多少信息以及有多少來(lái)自上一層的信息得以保留。 這個(gè)復(fù)位門(mén)的功能很像LSTM的忘記門(mén),但它的位置略有不同。 它總是發(fā)出全部狀態(tài),但是沒(méi)有輸出門(mén)。 在大多數(shù)情況下,它們與LSTM的功能非常相似,最大的區(qū)別在于GRU稍快,運(yùn)行容易(但表達(dá)能力更差)。 在實(shí)踐中,這些往往會(huì)相互抵消,因?yàn)楫?dāng)你需要一個(gè)更大的網(wǎng)絡(luò)來(lái)獲得更強(qiáng)的表現(xiàn)力時(shí),往往會(huì)抵消性能優(yōu)勢(shì)。在不需要額外表現(xiàn)力的情況下,GRU可能優(yōu)于LSTM。

 

 

神經(jīng)圖靈機(jī)(Neural Turing machines , NTM)可以被理解為L(zhǎng)STM的抽象,它試圖去黑箱化(使我們能夠洞察到發(fā)生了什么)。神經(jīng)圖靈機(jī)并非直接編碼記憶單元到神經(jīng)元中,它的記憶單元是分離的。它試圖將常規(guī)數(shù)字存儲(chǔ)的效率和永久性以及神經(jīng)網(wǎng)絡(luò)的效率和表達(dá)力結(jié)合起來(lái)。這種想法基于有一個(gè)內(nèi)容尋址的記憶庫(kù),神經(jīng)網(wǎng)絡(luò)可以從中讀寫(xiě)。神經(jīng)圖靈機(jī)中的”圖靈“(Turing)來(lái)自于圖靈完備(Turing complete):基于它所讀取的內(nèi)容讀、寫(xiě)和改變狀態(tài)的能力,這意味著它能表達(dá)一個(gè)通用圖靈機(jī)可表達(dá)的一切事情。

雙向循環(huán)神經(jīng)網(wǎng)絡(luò)、雙向長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)、雙向門(mén)控循環(huán)單元(Bidirectional recurrent neural networks, BiRNN; bidirectional long / short term memory networks, BiLSTM; bidirectional gated recurrent units, BiGRU)在表中沒(méi)有展示出來(lái),因?yàn)樗鼈兛雌饋?lái)和相應(yīng)的單向網(wǎng)絡(luò)是一樣的。不同之處在于這些網(wǎng)絡(luò)不僅聯(lián)系過(guò)去,還與未來(lái)相關(guān)聯(lián)。比如,單向長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)被用來(lái)預(yù)測(cè)單詞”fish“的訓(xùn)練過(guò)程是這樣的:逐個(gè)字母地輸入單詞“fish”, 在這里循環(huán)連接隨時(shí)間記住最后的值。而雙向長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)為了提供未來(lái)的信息,會(huì)在反向通道中會(huì)輸入下一個(gè)字母。這種方法訓(xùn)練網(wǎng)絡(luò)以填補(bǔ)空白而非預(yù)測(cè)未來(lái)信息,比如,在圖像處理中,它并非擴(kuò)展圖像的邊界,而是可以填補(bǔ)一張圖片中的缺失。

 

深度殘差網(wǎng)絡(luò)(Deep residual networks , DRN)是具有非常深度的前饋神經(jīng)網(wǎng)絡(luò),除了鄰近層之間有連接,它可以將輸入從一層傳到后面幾層(通常是2到5層)。深度殘差網(wǎng)絡(luò)并非將一些輸入(比如通過(guò)一個(gè)5層網(wǎng)絡(luò))映射到輸出,而是學(xué)習(xí)將一些輸入映射到一些輸出+輸入上?;旧?,它增加了一個(gè)恒等函數(shù),將舊的輸入作為后面層的新輸入。結(jié)果顯示,當(dāng)達(dá)到150 層,這些網(wǎng)絡(luò)對(duì)于模式學(xué)習(xí)是非常有效的,這要比常規(guī)的2到5層多得多。然而,有結(jié)果證明這些網(wǎng)絡(luò)本質(zhì)上是沒(méi)有基于具體時(shí)間建造的循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN),它們總是與沒(méi)有門(mén)結(jié)構(gòu)的長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(LSTM)作比較。

 

回聲狀態(tài)網(wǎng)絡(luò)(Echo state networks , ESN)是另外一種不同類(lèi)型的(循環(huán))網(wǎng)絡(luò)。它的不同之處在于:神經(jīng)元之間隨機(jī)地連接(即,層與層之間沒(méi)有統(tǒng)一的連接形式),而它們的訓(xùn)練方式也不一樣。不同于輸入數(shù)據(jù),然后反向傳播誤差,回聲狀態(tài)網(wǎng)絡(luò)先輸入數(shù)據(jù),前饋,然后暫時(shí)更新神經(jīng)元。它的輸入層和輸出層在這里扮演了稍微不同于常規(guī)的角色:輸入層用來(lái)主導(dǎo)網(wǎng)絡(luò),輸出層作為隨時(shí)間展開(kāi)的激活模式的觀測(cè)。在訓(xùn)練過(guò)程中,只有觀測(cè)和隱藏單元之間連接會(huì)被改變。

 

極限學(xué)習(xí)機(jī)(Extreme learning machines , ELM)本質(zhì)上是有隨機(jī)連接的前饋神經(jīng)網(wǎng)絡(luò)。他看上去和液體狀態(tài)機(jī)(LSM)和回聲狀態(tài)網(wǎng)絡(luò)(ESN)很相似,但是它即沒(méi)有脈沖,也沒(méi)有循環(huán)。它們并不使用反向傳播。相反,它們隨機(jī)初始化權(quán)重,并通過(guò)最小二乘擬合一步訓(xùn)練權(quán)重(所有函數(shù)中的最小誤差)。這使得模型具有稍弱的表現(xiàn)力,但是在速度上比反向傳播快很多。

 

 

液體狀態(tài)機(jī)(Liquid state machines ,LSM)看上去和回聲狀態(tài)網(wǎng)絡(luò)(ESN)很像。真正的不同之處在于,液體狀態(tài)機(jī)是一種脈沖神經(jīng)網(wǎng)絡(luò):sigmoid激活函數(shù)被閾值函數(shù)所取代,每個(gè)神經(jīng)元是一個(gè)累積記憶單元(memory cell)。所以當(dāng)更新神經(jīng)元的時(shí)候,其值不是鄰近神經(jīng)元的累加,而是它自身的累加。一旦達(dá)到閾值,它會(huì)將其能量傳遞到其他神經(jīng)元。這就產(chǎn)生一種類(lèi)似脈沖的模式:在突然達(dá)到閾值之前什么也不會(huì)發(fā)生。

 

 

支持向量機(jī)(Support vector machines , SVM)發(fā)現(xiàn)了分類(lèi)問(wèn)題的最佳解決方式。傳統(tǒng)的SVM一般是處理線(xiàn)性可分?jǐn)?shù)據(jù)。比如,發(fā)現(xiàn)哪張圖片是加菲貓,哪張圖片是史努比,而不可能是其他結(jié)果。在訓(xùn)練過(guò)程中,支持向量機(jī)可以想象成在(二維)圖上畫(huà)出所有的數(shù)據(jù)點(diǎn)(加菲貓和史努比),然后找出如何畫(huà)一條直線(xiàn)將這些數(shù)據(jù)點(diǎn)區(qū)分開(kāi)來(lái)。這條直線(xiàn)將數(shù)據(jù)分成兩部分,所有加菲貓?jiān)谥本€(xiàn)的一邊,而史努比在另一邊。最佳的分割直線(xiàn)是,兩邊的點(diǎn)和直線(xiàn)之間的間隔最大化。當(dāng)需要將新的數(shù)據(jù)分類(lèi)時(shí),我們將在圖上畫(huà)出這個(gè)新數(shù)據(jù)點(diǎn),然后簡(jiǎn)單地看它屬于直線(xiàn)的那一邊。使用核技巧,它們可以被訓(xùn)練用來(lái)分類(lèi)n維數(shù)據(jù)。這需要在3D圖上畫(huà)出點(diǎn),然后可以區(qū)分史努比、加菲貓和西蒙貓,甚至更多的卡通形象。支持向量機(jī)并不總是被視為神經(jīng)網(wǎng)絡(luò)。

 

Kohonen網(wǎng)絡(luò)(Kohonen networks , KN; 也被稱(chēng)為自組織(特征)映射, SOM, SOFM))利用競(jìng)爭(zhēng)性學(xué)習(xí)對(duì)數(shù)據(jù)進(jìn)行分類(lèi),無(wú)需監(jiān)督。 將數(shù)據(jù)輸入網(wǎng)絡(luò),之后網(wǎng)絡(luò)評(píng)估其中哪個(gè)神經(jīng)元最匹配那個(gè)輸入。 然后調(diào)整這些神經(jīng)元以使更好地匹配輸入。在該過(guò)程中移動(dòng)相鄰神經(jīng)元。 相鄰神經(jīng)元被移動(dòng)多少取決于它們到最佳匹配單位的距離。 有時(shí)候,Kohonen網(wǎng)絡(luò)也不被認(rèn)為是神經(jīng)網(wǎng)絡(luò)。 

責(zé)任編輯:龐桂玉 來(lái)源: 36大數(shù)據(jù)
相關(guān)推薦

2022-07-27 09:53:06

神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)

2023-09-17 23:09:24

Transforme深度學(xué)習(xí)

2020-09-09 10:20:48

GraphSAGE神經(jīng)網(wǎng)絡(luò)人工智能

2023-05-04 07:39:14

圖神經(jīng)網(wǎng)絡(luò)GNN

2018-07-03 16:10:04

神經(jīng)網(wǎng)絡(luò)生物神經(jīng)網(wǎng)絡(luò)人工神經(jīng)網(wǎng)絡(luò)

2019-07-16 08:57:15

kafka應(yīng)用Broker

2024-12-12 00:29:03

2025-02-25 10:50:11

2020-11-03 10:32:48

回調(diào)函數(shù)模塊

2018-05-16 09:41:13

神經(jīng)網(wǎng)絡(luò)NN函數(shù)

2018-06-19 10:48:49

華為云

2017-07-12 16:56:42

卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)數(shù)據(jù)CNN

2017-07-05 15:42:58

卷積神經(jīng)網(wǎng)絡(luò)Non-Euclide計(jì)算機(jī)視覺(jué)

2019-05-17 15:48:16

神經(jīng)網(wǎng)絡(luò)卷積神經(jīng)網(wǎng)絡(luò)人工智能

2025-02-19 15:12:17

神經(jīng)網(wǎng)絡(luò)PyTorch大模型

2015-09-14 09:07:15

Java多線(xiàn)程

2021-01-08 11:23:08

IP核

2022-07-28 09:00:00

深度學(xué)習(xí)網(wǎng)絡(luò)類(lèi)型架構(gòu)

2024-04-30 14:54:10

2020-05-11 13:44:38

神經(jīng)網(wǎng)絡(luò)人工智能深度學(xué)習(xí)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)