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