導航:首頁 > 網路營銷 > 哪些神經網路信息通常是雙向傳播的

哪些神經網路信息通常是雙向傳播的

發布時間:2023-08-08 12:06:31

❶ 常見神經網路類型之前饋型神經網路

1、前饋型神經網路

常見的前饋型神經網路包括感知器網路、BP神經網路、RBF網路(徑向基函數神經網路)

(1)感知器網路:也被稱笑攔搭作感知機,主要用於模式分類,也可以用作學習控制和基於模式分類的多模態控制

(2)反向傳播神經網路(BP神經網路),利用了權值的反向傳播調整策略,基於Sigmoid函數。可以實現從輸入到輸出的任意非線性函數

(3)RBF網路能逼近任意非線性函數,可以處理難碰拿以解析的規律性問題。具有良好的泛化能力和快速收斂速度。常用於分衡坦類問題,模式識別,信號處理,圖像處理,系統建模等。

❷ BP神經網路的原理的BP什麼意思

原文鏈接:http://tecdat.cn/?p=19936

在本教程中,您將學習如何在R語言中創建神經網路模型。

神經網路(或人工神經網路)具有通過樣本進行學習的能力。人工神經網路是一種受生物神經元系統啟發的信息處理模型。它由大量高度互連的處理元件(稱為神經元)組成,以解決問題。它遵循非線性路徑,並在整個節點中並行處理信息。神經網路是一個復雜的自適應系統。自適應意味著它可以通過調整輸入權重來更改其內部結構。

該神經網路旨在解決人類容易遇到的問題和機器難以解決的問題,例如識別貓和狗的圖片,識別編號的圖片。這些問題通常稱為模式識別。它的應用范圍從光學字元識別到目標檢測。

本教程將涵蓋以下主題:

❸ 貝葉斯神經網路

通過優化的標准神經網路訓練(從概率的角度來看)等同於權重的最大似然估計(MLE)。由於許多原因,這往往是不能令人滿意的 —— 使用 MLE 會忽略在適當的權重值中可能存在的任何不確定性,即無法正確評估訓練數據中的不確定性,從實際的角度來看,這種類型的訓練容易出現過擬合現象。

對此的一個解決方案是引入正則化(從貝葉斯的角度來看,這相當於在權重上引入先驗)。如果我們可以通過規范模型來解決過度自信決策和防止模型過度擬合的問題,那為什麼我們需要貝葉斯神經網路?答案是: 當前神經網路架構中缺少預測中的不確定性度量,但貝葉斯神經網路將其納入其中 。BNN 在特定環境中很重要,特別是當我們非常關心不確定性時,貝葉斯方法自然地解釋了參數估計中的不確定性,並且可以將這種不確定性傳播到預測中。

深度神經網路已成功應用於許多領域,包括非常敏感的領域,如醫療保健,安全性,欺詐性交易等等。這些領域在很大程度上依賴於模型的預測准確性,甚至一個過度自信的決策也可能導致一個大問題。此外,這些領域具有非常不平衡的數據集(百萬個交易中的一個是欺詐性交易,百分之五的癌症檢測結果是陽性,不到百分之一的電子郵件是垃圾郵件),容易導致該模型過度擬合。

從概率論的角度來看,使用單點估計權重以進行分類是不合理的。而貝葉斯神經網路對於過擬合更加魯棒,並且可以從小數據集中輕松學習。 貝葉斯方法將其參數以概率分布的形式表示以提供不確定性估計;同時,通過使用先驗概率分布的形式來表示參數,訓練期間在許多模型上計算平均值,這給網路提供了正則化效果,從而防止過度擬合

在標准神經網路中,權重由單個點表示。 而貝葉斯神經網路以分布形式表示權重,如下圖所示:

即使使用少量參數,在貝葉斯神經網路中推斷後驗模型也是一項艱巨的任務,因此通常使用後驗模型的近似值,變分推理是一種流行的方法。人們將使用簡單的變分分布(例如高斯分布)對後驗進行模擬,並嘗試調整分布的參數使其盡可能接近真實的後驗 —— 通過最小化這種簡單變分分布和真實後驗之間的 KL 散度來完成。

但是用於逼近 BNN 後驗的變分方法在計算上可能相當昂貴,因為使用近似分布會大大增加模型參數的數量,但不會大幅增加模型容量。例如,使用 BNN 後驗近似的高斯分布,模型參數的數量增加了一倍,但報告了與使用丟失的傳統方法相同的預測性能。 這使得該方法在實踐中不適合與 CNN 一起使用,因為參數數量的增加太昂貴。

關於神經網路權重的精確貝葉斯推斷是難以處理的,因為參數的數量非常大,並且神經網路的函數形式不適合精確積分。 因此,我們用變分概率分布 q θ (w | D) 逼近難以處理的真實後驗概率分布 p(w | D),它包括高斯分布的性質 μ∈ℝ d 和 σ∈ℝ d ,表示為 N(θ | μ,σ²),其中 d 是定義概率分布的參數總數。 這些高斯變分後驗概率分布的形狀由它們的方差 σ² 確定,表示每個模型參數的不確定性估計。

在觀察數據之前定義先驗概率分布,一旦觀察到數據(訓練數據),學習就發生並且分布變換為後驗分布。 利用概率論從數據中學習構成了貝葉斯學習的基礎。貝葉斯定理如下:

P(θ | x) 為後驗概率,也是我們想要計算的;P(θ) 為先驗概率,在訓練數據之前就是已知的;P(x | θ) 為可能性,顯示了數據分布;P(x) 為證據,我們只能通過對所有可能的模型值積分來計算其值:

這使得問題變得棘手,因此我們採用變分近似來找到近似貝葉斯後驗分布。

首先,我們的原始目標是,需要根據已有數據推斷需要的分布 p;當 p(下圖中黃色區域)不容易表達,不能直接求解時,可以嘗試用變分推斷的方法, 即,尋找容易表達和求解的分布 q(下圖中紅線和綠線構成的區域),當 q 和 p 的差距很小的時候,q 就可以作為 p 的近似分布,成為輸出結果了。例如,我們用 q θ (w | D) 來近似 p(w | D)。首先注意 q θ (w | D) 的表達,其中 w 是變數,θ 是後驗概率分布 q 的參數。所以在構造 q 的時候也分兩步:第一,概率分布的選擇;第二,參數的選擇。第一步,我們在選擇 q 的概率分布時,通常會直觀選擇 p 可能的概率分布,這樣能夠更好地保證 q 和 p 的相似程度。例如高斯混合模型中,原始假設 p 服從高斯分布,則構造的 q 依然服從高斯分布。之後,我們通過改變 θ,使得 q 不斷逼近 p。

我們希望盡可能接近真正的分布,這可以通過最小化兩者之間的 Kullback-Liebler(KL)散度來做到這一點。然而 KL 的表達式中依然有一部分不可求的後驗概率,這個問題仍然是棘手的,所以用到了 ELBO:

但是由於積分的存在,這個公式仍然難以解決。此時,我們可以從近似函數 q θ (w | D) 中進行采樣,因為從近似函數中采樣權值要比真正的後驗函數 p(w | D) 更容易。這樣得到容易計算的函數:

這些采樣權值 w 被用於神經網路的反向傳播,學習後驗分布。

貝葉斯建模中,存在兩種類型的不確定:偶然不確定性和認知不確定性。

可以通過在模型參數或模型輸出上放置概率分布來估計不確定性 。通過在模型的權重上放置先驗分布,然後嘗試捕獲這些權重在給定數據的情況下變化多少來模擬認知不確定性。另一方面,通過在模型的輸出上放置分布來模擬偶然不確定性。

傳統神經網路常使用反向傳播來訓練。對於 BNN,其自然地解釋了參數估計中的不確定性,並且可以將這種不確定性傳播到預測結果中;此外,對參數值進行取平均而不是僅選擇單點估計值使得模型不易出現過擬合。因此,對 BNN 參數的訓練也需要特殊的訓練方法,Bayes by Backprop 就是其中一種(它也是一種變分推斷)。

Bayes by Backprop 用來學習神經網路權重的概率分布。它是一種變分推理方法,用於學習神經網路權重 w ~ q θ (w | D) 的後驗分布,可以在反向傳播中對權重 w 進行采樣。整個方法可歸納如下:

由於參數數目較大,所以需要對模型權重進行適當的修剪。模型修剪減少了深度神經網路的各種連接矩陣中的稀疏性,從而減少了模型中有價值的參數的數量。模型修剪的整個想法是減少參數的數量而不會損失模型的准確性。最常用的修剪模型的方法是將低貢獻權重映射到零並減少整體非零值權重的數量,可以通過訓練大型稀疏模型並進一步修剪來實現。

(這部分內容摘自 一個例子搞清楚 先驗分布/後驗分布/似然估計 )

給定一些數據樣本 x,假定我們知道樣本是從某一種分布中隨機取出的,但我們不知道這個分布具體的參數 θ。

因為給定樣本 x 後, p(x) 會在 θ 空間上為一個定值,和 θ 的大小沒有關系,所以可以省略分母 p(x)。 可化簡為:

p(x) 相當於是一個歸一化項,整個公式就表示為: Posterior∝(Likelihood∗Prior)(後驗概率 正比於 先驗概率 ∗ 似然函數)

需要一提的是,對貝葉斯 CNN 而言,不僅在卷積層中將概率分布置於權重上,還要求在全連接層中將概率分布置於權重上。

假設權重的變分後驗概率分布 q θ (w ijhw | D) = N(μ ijhw ,α ijhw μ 2 ijhw )(其中,i 和 j 分別對應輸入和輸出層數,h 和 w 分別對應過濾器的高度和寬度),那麼卷積公式被重定義為:

其中,ε j ~ N(0,1),A i 為過濾器在第 i 層要卷積的部分,b j 為相應的第 j 層的激活值,∗ 為卷積操作,⊙ 為元素乘法(component-wise multiplication)。

對 CNN 的權重應用概率分布而非單點值,並且要在反向傳播時更新變分後驗概率分布 q θ (w | D),關鍵在於過濾器會執行兩次卷積操作(在單點預測的 CNN 中只執行一次卷積)。

從前面的公式我們看到,卷積操作的輸出 b 是期望 μ ijhw 和方差 α ijhw μ 2 ijhw 的函數,因此我們可以分別計算出 μ ijhw 和 α ijhw μ 2 ijhw 的值,從而可以得到一個高斯概率分布。方法就是執行兩次卷積操作:第一次,我們將 b 視為通過頻率推理更新的 CNN 的輸出,將單點估計值解釋為變分後驗概率分布的期望;第二次,我們將得到方差。通過這種方式,我們確保每個卷積操作只更新一個參數(第一次為 μ ijhw ,第二次為 α ijhw ),這與通過頻率推斷更新的 CNN 完全相同。

實際上,當我們執行第一次卷積操作,我們得到的是 q θ (w | D) 的最大後驗概率,而第二次卷積操作則是得出權重 w 偏離了最大後驗概率多少。另外,為了加速計算,確保方差 α ijhw μ 2 ijhw 為非零正數,並提到准確度,我們學習 logα ijhw 並使用 Softplus 激活函數。

在分類任務中,我們關注的是 P D (y* | x*);對於貝葉斯神經網路,其被表示為:

在 Bayes by Backprop 中,q θ (w | D) ~ N(w | μ, σ 2 ),而 θ = {μ, σ} 在數據集 D = {x i , y i } n i=1 的訓練中學習得到。由於分類問題多是離散的,因此:

其中,Σ c f(x c ∗ | w) = 1,C 為總類數。通過從 q θ (w | D) 取樣,可以獲得期望值的無偏估計:

T 為樣本數量。這個估計值允許我們評估預測值的不確定性,因此稱為預測方差,用 Var q 表示:

這個值可以進一步分為偶然不確定性和認知不確定性:

由於貝葉斯 CNN 中的權重都由期望和方差來表示其分布,因此,相較於單點估計 CNN,貝葉斯 CNN 的參數數量翻了一倍。為了使貝葉斯 CNN 參數數量等於傳統 CNN,可以使 BCNN 的過濾器數目減半。

另一種模型修剪的技術是對每層的權重使用 L1 歸一化。通過 L1 歸一化,我們使各模型層中的權重向量變得非常稀疏,即大部分矩陣元素變得接近零;同時,剩餘的非零元素則捕獲數據的最重要特徵。我們設置一個閾值,如果該值低於閾值,則使權重為零。通過只保留非零權重,可以減少模型的參數數量,而不會影響模型的整體性能。

看了一些國內的論文,將貝葉斯應用於 BP 神經網路優化,往往是利用貝葉斯定理尋找最優神經網路參數,以解決神經網路權值易陷入局部最優的問題,同時也能解決神經網路過擬合。其中心思想在於: 根據給定的先驗分布,利用貝葉斯定理考察神經網路參數的不確定性,從樣本數據中,獲得網路結構的後驗概率,那麼,使得該後驗概率最大化的網路參數即為所需的最優參數 (我認為這其實是 MAP 而非貝葉斯估計)。最優參數定義為:

為方便計算,對後驗概率取對數得到:

假設先驗概率分布 p(w) 滿足高斯分布:

則有:

上式中,似然函數部分對應於目標函數中的適應度函數,而先驗概率部分對應於正則項,因此我們可以通過確定先驗概率得到正則項,從而對神經網路的目標函數進行優化,進而有效控制網路規模,提高網路泛化能力。

後驗分布是人們在獲得樣本數據 D 之後對參數 w 的一種調整。 貝葉斯把上一步得到的後驗分布信息儲存起來,在將來做推測時,上一步的後驗信息就成為了先驗信息 ,這樣持續數次操作之後,樣本數據的預測結果會一直進行調整,最後對參數估計的結果精確度更高。

神經網路中最重要的兩個性能參數就是權值和閾值,而這兩個參數的分布情況受到了目標函數中超參數的控制,但一般的演算法不能確定超參數的取值。可以利用貝葉斯定理來求取目標函數的超參數,並且要求達到自主調節超參數取值的目標,並且通過持續的調整最後找到最優的取值,相應的確定 BP 神經網路的最優權值和閾值。

❹ 什麼是BP神經網路

BP演算法的基本思想是:學習過程由信號正向傳播與誤差的反向回傳兩個部分組成;正向傳播時,輸入樣本從輸入層傳入,經各隱層依次逐層處理,傳向輸出層,若輸出層輸出與期望不符,則將誤差作為調整信號逐層反向回傳,對神經元之間的連接權矩陣做出處理,使誤差減小。經反復學習,最終使誤差減小到可接受的范圍。具體步驟如下:
1、從訓練集中取出某一樣本,把信息輸入網路中。
2、通過各節點間的連接情況正向逐層處理後,得到神經網路的實際輸出。
3、計算網路實際輸出與期望輸出的誤差。
4、將誤差逐層反向回傳至之前各層,並按一定原則將誤差信號載入到連接權值上,使整個神經網路的連接權值向誤差減小的方向轉化。
5、対訓練集中每一個輸入—輸出樣本對重復以上步驟,直到整個訓練樣本集的誤差減小到符合要求為止。

❺ 循環神經網路

為什麼卷積神經網路不會出現嚴重的數值問題呢?
卷積神經網路中每一層的權重矩陣 W 是不同的,並且在初始化時它們是獨立同分布的,因此可以相互抵消,在多層之後一般不會出現嚴重的數值問題。
循環神經網路採用 ReLu 激活函數,只有當 W 的取值在單位矩陣附近時才能取得比較好的效果,因此需要將 W 初始化為單位矩陣。

Seq2Seq 模型最基礎的解碼方法是貪心法,即選取一種度量標准後,每次都在當前狀態下選擇最佳的一個結果,直到結束。貪心法的計算代價低,適合作為基準結果與其他方法相比較。貪心法獲得的是一個局部最優解,由於實際問題的復雜性,該方法往往不能取得最好的結果。
集束搜索: 是一種啟發式演算法,會保存 beam size 個當前的較佳選擇,然後解碼時每一步根據保存的選則進行下一步擴展和排序,接著選擇前 b 個進行保存,循環迭代,知道結束時選擇最佳的一個作為解碼的結果。 b 往往選擇一個適中的范圍,以 8-12 為佳。

Seq2Seq 模型引入注意力機制是為了解決什麼問題?為什麼選用了雙向的循環神經網路模型?
編碼時輸入序列的全部信息壓縮到了一個向量中,隨著序列增長,句子越前面的詞的信息丟失越嚴重。同時,Seq2Seq 模型的輸出序列中,常常會損失部分輸入序列信息,這是解碼時,當前詞及對應的源語言詞的上下文信息和位置信息在編解碼過程中丟失了。 引入注意力機制,解決上述問題 。使用雙向的循環神經網路進行建模,可以獲取前後文的信息。

❻ 循環神經網路(RNN)簡介

循環神經網路英文名稱為 ( Recurrent Neural Network, RNN ),其通過使用帶自反饋的神經元,能夠處理任意長度的 時序 數據。

給定輸入時序序列

式中, 表示一段時序數據, 為時間長度

以一段英文段落為例,其時序數據可以表示為:

若是一段視頻,將其每一幀通過CNN網路處理得到相應的編碼向量

循環神經網路通過以下公式更新隱藏層的活性值

循環神經網路圖示

RNN的基本模型如下圖所示,為便於理解,圖中將RNN的模型展開,按照時序方向對其前向傳播流程進行介紹

RNN的基本模型

利用數學表達式整個過程可以變得更加清晰,RNN的前向傳播公式如下:

將上述過程整合到一個RNN cell中,可以表示為如下圖所示的過程:

RNN的前向傳播示意圖

缺陷:

沒有利用到模型後續的信息,可以通過雙向RNN網路進行優化

RNN主要有兩種計算梯度的方式:隨時間反向傳播(BPTT)和實時循環學習法(RTRL)演算法

本文中主要介紹隨時間反向傳播的方法 ( BackPropagation Through Time

RNN的損失函數與任務有關,對於同步的序列對序列任務,其loss可以用交叉熵公式表示

然後通過BPTT演算法便可以進行梯度的反向傳播計算

梯度爆炸的解決方法:梯度修剪

梯度消失的解決方法:增加長程依賴 LSTM,GRU

GRU的基本思路:增加相關門(Relate Gate)和更新門(Update Gate),進而使得RNN單元具有記憶能力

首先從數學角度對GRU的前向傳播過程進行介紹,具體公式如下:

公式中各變數的含義:

將上述數學公式轉化為圖像,可得

GRU Cell的前向傳播流程

LSTM意為長短時記憶網路 (Long Short-Term Memory Network,LSTM) ,可以有效地解決簡單神經網路的梯度消失和爆炸問題

在LSTM中,與GRU主要有兩點不同

同樣,先從數學公式入手,對LSTM的前向傳播過程進行了解

基於數學公式的過程,可將LSTM CELL的前向傳播過程總結為(圖片借用於nndl):

LSTM Cell的前向傳播示意圖

從上圖中可以看出,LSTM在前向傳播的過程中傳輸了兩個狀態:內部狀態 以及外部狀態 ,在整個傳播過程中 外部狀態(隱狀態) 每個時刻都會被重寫,因此可以看作一種 短時記憶 ,而 內部狀態 可以在某個時刻捕捉一些關鍵信息,並將此信息保存一段時間間隔,可以看作一種 長時記憶 (長的短時記憶)

此外,在LSTM網路初始化訓練的時候,需要手動將遺忘門的數值設置的大一些,否則在參數初始化的時候,遺忘門的數據會被初始化為一個很小的值,前一時刻的內部狀態 大部分都會丟失,這樣網路很難獲取到長距離的依賴信息,並且相鄰時間間隔的梯度會非常小,導致 梯度彌散 問題,因此遺忘門的 偏置變數 的初始值 一般很大,取 1或2

將 設置為1即可,但是長度非常的大的時候會造成記憶單元的飽和,降低性能

三個門不僅依賴於 和 ,也依賴於

將兩者合並為一個門,即:

首先,我們要理解什麼是深層的RNN,對於單個的RNN cell,若將其在時間維度上展開,其深度與時間維度的長度成正比,但若將一個RNN cell看作為單個從 的映射函數,則單個cell實際上是很淺顯的一層,因此深層循環神經網路要做的就是把多個RNN cell組合起來,換句話說,就是增加從輸入 到輸出 的路徑,使得網路的深度更深。

如何增加從輸入 到輸出 的路徑呢?兩種途徑:

堆疊循環神經網路示意圖

將網路帶入到實際應用場景中:假如我們要翻譯一段句子

在這里,is和are實際上是由後面的Lucy和they所決定的,而這種單向的按照時序進行傳播的方式沒有利用到後面的信息。因此誕生了雙向循環網路

雙向循環神經網路示意圖

雙向循環神經網路實際上就是簡單的雙層循環神經網路,只不過第二層網路的傳播方式為按時序的逆向傳播,其傳播公式為:

❼ 神經網路模型-27種神經網路模型們的簡介

​ 

【1】Perceptron(P) 感知機

【1】感知機 

感知機是我們知道的最簡單和最古老的神經元模型,它接收一些輸入,然後把它們加總,通過激活函數並傳遞到輸出層。

【2】Feed Forward(FF)前饋神經網路

 【2】前饋神經網路

前饋神經網路(FF),這也是一個很古老的方法——這種方法起源於50年代。它的工作原理通常遵循以下規則:

1.所有節點都完全連接

2.激活從輸入層流向輸出,無回環

3.輸入和輸出之間有一層(隱含層)

在大多數情況下,這種類型的網路使用反向傳播方法進行訓練。

【3】Radial Basis Network(RBF) RBF神經網路

 【3】RBF神經網路

RBF 神經網路實際上是 激活函數是徑向基函數 而非邏輯函數的FF前饋神經網路(FF)。兩者之間有什麼區別呢?

邏輯函數--- 將某個任意值映射到[0 ,... 1]范圍內來,回答「是或否」問題。適用於分類決策系統,但不適用於連續變數。

相反, 徑向基函數--- 能顯示「我們距離目標有多遠」。 這完美適用於函數逼近和機器控制(例如作為PID控制器的替代)。

簡而言之,RBF神經網路其實就是, 具有不同激活函數和應用方向的前饋網路 。

【4】Deep Feed Forword(DFF)深度前饋神經網路

【4】DFF深度前饋神經網路 

DFF深度前饋神經網路在90年代初期開啟了深度學習的潘多拉盒子。 這些依然是前饋神經網路,但有不止一個隱含層 。那麼,它到底有什麼特殊性?

在訓練傳統的前饋神經網路時,我們只向上一層傳遞了少量的誤差信息。由於堆疊更多的層次導致訓練時間的指數增長,使得深度前饋神經網路非常不實用。 直到00年代初,我們開發了一系列有效的訓練深度前饋神經網路的方法; 現在它們構成了現代機器學習系統的核心 ,能實現前饋神經網路的功能,但效果遠高於此。

【5】Recurrent Neural Network(RNN) 遞歸神經網路

【5】RNN遞歸神經網路 

RNN遞歸神經網路引入不同類型的神經元——遞歸神經元。這種類型的第一個網路被稱為約旦網路(Jordan Network),在網路中每個隱含神經元會收到它自己的在固定延遲(一次或多次迭代)後的輸出。除此之外,它與普通的模糊神經網路非常相似。

當然,它有許多變化 — 如傳遞狀態到輸入節點,可變延遲等,但主要思想保持不變。這種類型的神經網路主要被使用在上下文很重要的時候——即過去的迭代結果和樣本產生的決策會對當前產生影響。最常見的上下文的例子是文本——一個單詞只能在前面的單詞或句子的上下文中進行分析。

【6】Long/Short Term Memory (LSTM) 長短時記憶網路

【6】LSTM長短時記憶網路 

LSTM長短時記憶網路引入了一個存儲單元,一個特殊的單元,當數據有時間間隔(或滯後)時可以處理數據。遞歸神經網路可以通過「記住」前十個詞來處理文本,LSTM長短時記憶網路可以通過「記住」許多幀之前發生的事情處理視頻幀。 LSTM網路也廣泛用於寫作和語音識別。

存儲單元實際上由一些元素組成,稱為門,它們是遞歸性的,並控制信息如何被記住和遺忘。

【7】Gated Recurrent Unit (GRU)

 【7】GRU是具有不同門的LSTM

GRU是具有不同門的LSTM。

聽起來很簡單,但缺少輸出門可以更容易基於具體輸入重復多次相同的輸出,目前此模型在聲音(音樂)和語音合成中使用得最多。

實際上的組合雖然有點不同:但是所有的LSTM門都被組合成所謂的更新門(Update Gate),並且復位門(Reset Gate)與輸入密切相關。

它們比LSTM消耗資源少,但幾乎有相同的效果。

【8】Auto Encoder (AE) 自動編碼器

 【8】AE自動編碼器

Autoencoders自動編碼器用於分類,聚類和特徵壓縮。

當您訓練前饋(FF)神經網路進行分類時,您主要必須在Y類別中提供X個示例,並且期望Y個輸出單元格中的一個被激活。 這被稱為「監督學習」。

另一方面,自動編碼器可以在沒有監督的情況下進行訓練。它們的結構 - 當隱藏單元數量小於輸入單元數量(並且輸出單元數量等於輸入單元數)時,並且當自動編碼器被訓練時輸出盡可能接近輸入的方式,強制自動編碼器泛化數據並搜索常見模式。

【9】Variational AE (VAE)  變分自編碼器

 【9】VAE變分自編碼器

變分自編碼器,與一般自編碼器相比,它壓縮的是概率,而不是特徵。

盡管如此簡單的改變,但是一般自編碼器只能回答當「我們如何歸納數據?」的問題時,變分自編碼器回答了「兩件事情之間的聯系有多強大?我們應該在兩件事情之間分配誤差還是它們完全獨立的?」的問題。

【10】Denoising AE (DAE) 降噪自動編碼器

 【10】DAE降噪自動編碼器

雖然自動編碼器很酷,但它們有時找不到最魯棒的特徵,而只是適應輸入數據(實際上是過擬合的一個例子)。

降噪自動編碼器(DAE)在輸入單元上增加了一些雜訊 - 通過隨機位來改變數據,隨機切換輸入中的位,等等。通過這樣做,一個強制降噪自動編碼器從一個有點嘈雜的輸入重構輸出,使其更加通用,強制選擇更常見的特徵。

【11】Sparse AE (SAE) 稀疏自編碼器

【11】SAE稀疏自編碼器 

稀疏自編碼器(SAE)是另外一個有時候可以抽離出數據中一些隱藏分組樣試的自動編碼的形式。結構和AE是一樣的,但隱藏單元的數量大於輸入或輸出單元的數量。

【12】Markov Chain (MC) 馬爾科夫鏈

 【12】Markov Chain (MC) 馬爾科夫鏈

馬爾可夫鏈(Markov Chain, MC)是一個比較老的圖表概念了,它的每一個端點都存在一種可能性。過去,我們用它來搭建像「在單詞hello之後有0.0053%的概率會出現dear,有0.03551%的概率出現you」這樣的文本結構。

這些馬爾科夫鏈並不是典型的神經網路,它可以被用作基於概率的分類(像貝葉斯過濾),用於聚類(對某些類別而言),也被用作有限狀態機。

【13】Hopfield Network (HN) 霍普菲爾網路

【13】HN霍普菲爾網路 

霍普菲爾網路(HN)對一套有限的樣本進行訓練,所以它們用相同的樣本對已知樣本作出反應。

在訓練前,每一個樣本都作為輸入樣本,在訓練之中作為隱藏樣本,使用過之後被用作輸出樣本。

在HN試著重構受訓樣本的時候,他們可以用於給輸入值降噪和修復輸入。如果給出一半圖片或數列用來學習,它們可以反饋全部樣本。

【14】Boltzmann Machine (BM) 波爾滋曼機

【14】 BM 波爾滋曼機 

波爾滋曼機(BM)和HN非常相像,有些單元被標記為輸入同時也是隱藏單元。在隱藏單元更新其狀態時,輸入單元就變成了輸出單元。(在訓練時,BM和HN一個一個的更新單元,而非並行)。

這是第一個成功保留模擬退火方法的網路拓撲。

多層疊的波爾滋曼機可以用於所謂的深度信念網路,深度信念網路可以用作特徵檢測和抽取。

【15】Restricted BM (RBM) 限制型波爾滋曼機

【15】 RBM 限制型波爾滋曼機 

在結構上,限制型波爾滋曼機(RBM)和BM很相似,但由於受限RBM被允許像FF一樣用反向傳播來訓練(唯一的不同的是在反向傳播經過數據之前RBM會經過一次輸入層)。

【16】Deep Belief Network (DBN) 深度信念網路

【16】DBN 深度信念網路 

像之前提到的那樣,深度信念網路(DBN)實際上是許多波爾滋曼機(被VAE包圍)。他們能被連在一起(在一個神經網路訓練另一個的時候),並且可以用已經學習過的樣式來生成數據。

【17】Deep Convolutional Network (DCN) 深度卷積網路

【17】 DCN 深度卷積網路

當今,深度卷積網路(DCN)是人工神經網路之星。它具有卷積單元(或者池化層)和內核,每一種都用以不同目的。

卷積核事實上用來處理輸入的數據,池化層是用來簡化它們(大多數情況是用非線性方程,比如max),來減少不必要的特徵。

他們通常被用來做圖像識別,它們在圖片的一小部分上運行(大約20x20像素)。輸入窗口一個像素一個像素的沿著圖像滑動。然後數據流向卷積層,卷積層形成一個漏斗(壓縮被識別的特徵)。從圖像識別來講,第一層識別梯度,第二層識別線,第三層識別形狀,以此類推,直到特定的物體那一級。DFF通常被接在卷積層的末端方便未來的數據處理。

【18】Deconvolutional Network (DN) 去卷積網路

 【18】 DN 去卷積網路

去卷積網路(DN)是將DCN顛倒過來。DN能在獲取貓的圖片之後生成像(狗:0,蜥蜴:0,馬:0,貓:1)一樣的向量。DNC能在得到這個向量之後,能畫出一隻貓。

【19】Deep Convolutional Inverse Graphics Network (DCIGN) 深度卷積反轉圖像網路

【19】 DCIGN 深度卷積反轉圖像網路

深度卷積反轉圖像網路(DCIGN),長得像DCN和DN粘在一起,但也不完全是這樣。

事實上,它是一個自動編碼器,DCN和DN並不是作為兩個分開的網路,而是承載網路輸入和輸出的間隔區。大多數這種神經網路可以被用作圖像處理,並且可以處理他們以前沒有被訓練過的圖像。由於其抽象化的水平很高,這些網路可以用於將某個事物從一張圖片中移除,重畫,或者像大名鼎鼎的CycleGAN一樣將一匹馬換成一個斑馬。

【20】Generative Adversarial Network (GAN) 生成對抗網路

 【20】 GAN 生成對抗網路

生成對抗網路(GAN)代表了有生成器和分辨器組成的雙網路大家族。它們一直在相互傷害——生成器試著生成一些數據,而分辨器接收樣本數據後試著分辨出哪些是樣本,哪些是生成的。只要你能夠保持兩種神經網路訓練之間的平衡,在不斷的進化中,這種神經網路可以生成實際圖像。

【21】Liquid State Machine (LSM) 液體狀態機

 【21】 LSM 液體狀態機

液體狀態機(LSM)是一種稀疏的,激活函數被閾值代替了的(並不是全部相連的)神經網路。只有達到閾值的時候,單元格從連續的樣本和釋放出來的輸出中積累價值信息,並再次將內部的副本設為零。

這種想法來自於人腦,這些神經網路被廣泛的應用於計算機視覺,語音識別系統,但目前還沒有重大突破。

【22】Extreme  Learning Machine (ELM) 極端學習機

【22】ELM 極端學習機 

極端學習機(ELM)是通過產生稀疏的隨機連接的隱藏層來減少FF網路背後的復雜性。它們需要用到更少計算機的能量,實際的效率很大程度上取決於任務和數據。

【23】Echo State Network (ESN) 回聲狀態網路

【23】 ESN 回聲狀態網路

回聲狀態網路(ESN)是重復網路的細分種類。數據會經過輸入端,如果被監測到進行了多次迭代(請允許重復網路的特徵亂入一下),只有在隱藏層之間的權重會在此之後更新。

據我所知,除了多個理論基準之外,我不知道這種類型的有什麼實際應用。。。。。。。

【24】Deep Resial Network (DRN) 深度殘差網路

​【24】 DRN 深度殘差網路 

深度殘差網路(DRN)是有些輸入值的部分會傳遞到下一層。這一特點可以讓它可以做到很深的層級(達到300層),但事實上它們是一種沒有明確延時的RNN。

【25】Kohonen Network (KN) Kohonen神經網路

​ 【25】 Kohonen神經網路

Kohonen神經網路(KN)引入了「單元格距離」的特徵。大多數情況下用於分類,這種網路試著調整它們的單元格使其對某種特定的輸入作出最可能的反應。當一些單元格更新了, 離他們最近的單元格也會更新。

像SVM一樣,這些網路總被認為不是「真正」的神經網路。

【26】Support Vector Machine (SVM)

​【26】 SVM 支持向量機 

支持向量機(SVM)用於二元分類工作,無論這個網路處理多少維度或輸入,結果都會是「是」或「否」。

SVM不是所有情況下都被叫做神經網路。

【27】Neural Turing Machine (NTM) 神經圖靈機

​【27】NTM 神經圖靈機 

神經網路像是黑箱——我們可以訓練它們,得到結果,增強它們,但實際的決定路徑大多數我們都是不可見的。

神經圖靈機(NTM)就是在嘗試解決這個問題——它是一個提取出記憶單元之後的FF。一些作者也說它是一個抽象版的LSTM。

記憶是被內容編址的,這個網路可以基於現狀讀取記憶,編寫記憶,也代表了圖靈完備神經網路。

❽ 循環神經網路(RNN)淺析

RNN是兩種神經網路模型的縮寫,一種是遞歸神經網路(Recursive Neural Network),一種是循環神經網路(Recurrent Neural Network)。雖然這兩種神經網路有著千絲萬縷的聯系,但是本文主要討論的是第二種神經網路模型——循環神經網路(Recurrent Neural Network)。

循環神經網路是指一個隨著時間的推移,重復發生的結構。在自然語言處理(NLP),語音圖像等多個領域均有非常廣泛的應用。RNN網路和其他網路最大的不同就在於RNN能夠實現某種「記憶功能」,是進行時間序列分析時最好的選擇。如同人類能夠憑借自己過往的記憶更好地認識這個世界一樣。RNN也實現了類似於人腦的這一機制,對所處理過的信息留存有一定的記憶,而不像其他類型的神經網路並不能對處理過的信息留存記憶。

循環神經網路的原理並不十分復雜,本節主要從原理上分析RNN的結構和功能,不涉及RNN的數學推導和證明,整個網路只有簡單的輸入輸出和網路狀態參數。一個典型的RNN神經網路如圖所示:

由上圖可以看出:一個典型的RNN網路包含一個輸入x,一個輸出h和一個神經網路單元A。和普通的神經網路不同的是,RNN網路的神經網路單元A不僅僅與輸入和輸出存在聯系,其與自身也存在一個迴路。這種網路結構就揭示了RNN的實質:上一個時刻的網路狀態信息將會作用於下一個時刻的網路狀態。如果上圖的網路結構仍不夠清晰,RNN網路還能夠以時間序列展開成如下形式:

等號右邊是RNN的展開形式。由於RNN一般用來處理序列信息,因此下文說明時都以時間序列來舉例,解釋。等號右邊的等價RNN網路中最初始的輸入是x0,輸出是h0,這代表著0時刻RNN網路的輸入為x0,輸出為h0,網路神經元在0時刻的狀態保存在A中。當下一個時刻1到來時,此時網路神經元的狀態不僅僅由1時刻的輸入x1決定,也由0時刻的神經元狀態決定。以後的情況都以此類推,直到時間序列的末尾t時刻。

上面的過程可以用一個簡單的例子來論證:假設現在有一句話「I want to play basketball」,由於自然語言本身就是一個時間序列,較早的語言會與較後的語言存在某種聯系,例如剛才的句子中「play」這個動詞意味著後面一定會有一個名詞,而這個名詞具體是什麼可能需要更遙遠的語境來決定,因此一句話也可以作為RNN的輸入。回到剛才的那句話,這句話中的5個單詞是以時序出現的,我們現在將這五個單詞編碼後依次輸入到RNN中。首先是單詞「I」,它作為時序上第一個出現的單詞被用作x0輸入,擁有一個h0輸出,並且改變了初始神經元A的狀態。單詞「want」作為時序上第二個出現的單詞作為x1輸入,這時RNN的輸出和神經元狀態將不僅僅由x1決定,也將由上一時刻的神經元狀態或者說上一時刻的輸入x0決定。之後的情況以此類推,直到上述句子輸入到最後一個單詞「basketball」。

接下來我們需要關注RNN的神經元結構:

上圖依然是一個RNN神經網路的時序展開模型,中間t時刻的網路模型揭示了RNN的結構。可以看到,原始的RNN網路的內部結構非常簡單。神經元A在t時刻的狀態僅僅是t-1時刻神經元狀態與t時刻網路輸入的雙曲正切函數的值,這個值不僅僅作為該時刻網路的輸出,也作為該時刻網路的狀態被傳入到下一個時刻的網路狀態中,這個過程叫做RNN的正向傳播(forward propagation)。註:雙曲正切函數的解析式如下:

雙曲正切函數的求導如下:

雙曲正切函數的圖像如下所示:

這里就帶來一個問題:為什麼RNN網路的激活函數要選用雙曲正切而不是sigmod呢?(RNN的激活函數除了雙曲正切,RELU函數也用的非常多)原因在於RNN網路在求解時涉及時間序列上的大量求導運算,使用sigmod函數容易出現梯度消失,且sigmod的導數形式較為復雜。事實上,即使使用雙曲正切函數,傳統的RNN網路依然存在梯度消失問題,無法「記憶」長時間序列上的信息,這個bug直到LSTM上引入了單元狀態後才算較好地解決。

這一節主要介紹與RNN相關的數學推導,由於RNN是一個時序模型,因此其求解過程可能和一般的神經網路不太相同。首先需要介紹一下RNN完整的結構圖,上一節給出的RNN結構圖省去了很多內部參數,僅僅作為一個概念模型給出。

上圖表明了RNN網路的完整拓撲結構,從圖中我們可以看到RNN網路中的參數情況。在這里我們只分析t時刻網路的行為與數學推導。t時刻網路迎來一個輸入xt,網路此時刻的神經元狀態st用如下式子表達:

t時刻的網路狀態st不僅僅要輸入到下一個時刻t+1的網路狀態中去,還要作為該時刻的網路輸出。當然,st不能直接輸出,在輸出之前還要再乘上一個系數V,而且為了誤差逆傳播時的方便通常還要對輸出進行歸一化處理,也就是對輸出進行softmax化。因此,t時刻網路的輸出ot表達為如下形式:

為了表達方便,筆者將上述兩個公式做如下變換:

以上,就是RNN網路的數學表達了,接下來我們需要求解這個模型。在論述具體解法之前首先需要明確兩個問題:優化目標函數是什麼?待優化的量是什麼?

只有在明確了這兩個問題之後才能對模型進行具體的推導和求解。關於第一個問題,筆者選取模型的損失函數作為優化目標;關於第二個問題,我們從RNN的結構圖中不難發現:只要我們得到了模型的U,V,W這三個參數就能完全確定模型的狀態。因此該優化問題的優化變數就是RNN的這三個參數。順便說一句,RNN模型的U,V,W三個參數是全局共享的,也就是說不同時刻的模型參數是完全一致的,這個特性使RNN得參數變得稍微少了一些。

不做過多的討論,RNN的損失函數選用交叉熵(Cross Entropy),這是機器學習中使用最廣泛的損失函數之一了,其通常的表達式如下所示:

上面式子是交叉熵的標量形式,y_i是真實的標簽值,y_i*是模型給出的預測值,最外面之所以有一個累加符號是因為模型輸出的一般都是一個多維的向量,只有把n維損失都加和才能得到真實的損失值。交叉熵在應用於RNN時需要做一些改變:首先,RNN的輸出是向量形式,沒有必要將所有維度都加在一起,直接把損失值用向量表達就可以了;其次,由於RNN模型處理的是序列問題,因此其模型損失不能只是一個時刻的損失,應該包含全部N個時刻的損失。

故RNN模型在t時刻的損失函數寫成如下形式:

全部N個時刻的損失函數(全局損失)表達為如下形式:

需要說明的是:yt是t時刻輸入的真實標簽值,ot為模型的預測值,N代表全部N個時刻。下文中為了書寫方便,將Loss簡記為L。在結束本小節之前,最後補充一個softmax函數的求導公式:

由於RNN模型與時間序列有關,因此不能直接使用BP(back propagation)演算法。針對RNN問題的特殊情況,提出了BPTT演算法。BPTT的全稱是「隨時間變化的反向傳播演算法」(back propagation through time)。這個方法的基礎仍然是常規的鏈式求導法則,接下來開始具體推導。雖然RNN的全局損失是與全部N個時刻有關的,但為了簡單筆者在推導時只關注t時刻的損失函數。

首先求出t時刻下損失函數關於o_t*的微分:

求出損失函數關於參數V的微分:

因此,全局損失關於參數V的微分為:

求出t時刻的損失函數關於關於st*的微分:

求出t時刻的損失函數關於s_t-1*的微分:

求出t時刻損失函數關於參數U的偏微分。注意:由於是時間序列模型,因此t時刻關於U的微分與前t-1個時刻都有關,在具體計算時可以限定最遠回溯到前n個時刻,但在推導時需要將前t-1個時刻全部帶入:

因此,全局損失關於U的偏微分為:

求t時刻損失函數關於參數W的偏微分,和上面相同的道理,在這里仍然要計算全部前t-1時刻的情況:

因此,全局損失關於參數W的微分結果為:

至此,全局損失函數關於三個主要參數的微分都已經得到了。整理如下:

接下來進一步化簡上述微分表達式,化簡的主要方向為t時刻的損失函數關於ot的微分以及關於st*的微分。已知t時刻損失函數的表達式,求關於ot的微分:

softmax函數求導:

因此:

又因為:

且:

有了上面的數學推導,我們可以得到全局損失關於U,V,W三個參數的梯度公式:

由於參數U和W的微分公式不僅僅與t時刻有關,還與前面的t-1個時刻都有關,因此無法寫出直接的計算公式。不過上面已經給出了t時刻的損失函數關於s_t-1的微分遞推公式,想來求解這個式子也是十分簡單的,在這里就不贅述了。

以上就是關於BPTT演算法的全部數學推導。從最終結果可以看出三個公式的偏微分結果非常簡單,在具體的優化過程中可以直接帶入進行計算。對於這種優化問題來說,最常用的方法就是梯度下降法。針對本文涉及的RNN問題,可以構造出三個參數的梯度更新公式:

依靠上述梯度更新公式就能夠迭代求解三個參數,直到三個參數的值發生收斂。

這是筆者第一次嘗試推導RNN的數學模型,在推導過程中遇到了非常多的bug。非常感謝互聯網上的一些公開資料和博客,給了我非常大的幫助和指引。接下來筆者將嘗試實現一個單隱層的RNN模型用於實現一個語義預測模型。

❾ 神經網路連接方式分為哪幾類每一類有哪些特點

神經網路模型的分類
人工神經網路的模型很多,可以按照不同的方法進行分類。其中,常見的兩種分類方法是,按照網路連接的拓樸結構分類和按照網路內部的信息流向分類。
1 按照網路拓樸結構分類
網路的拓樸結構,即神經元之間的連接方式。按此劃分,可將神經網路結構分為兩大類:層次型結構和互聯型結構。
層次型結構的神經網路將神經元按功能和順序的不同分為輸出層、中間層(隱層)、輸出層。輸出層各神經元負責接收來自外界的輸入信息,並傳給中間各隱層神經元;隱層是神經網路的內部信息處理層,負責信息變換。根據需要可設計為一層或多層;最後一個隱層將信息傳遞給輸出層神經元經進一步處理後向外界輸出信息處理結果。

而互連型網路結構中,任意兩個節點之間都可能存在連接路徑,因此可以根據網路中節點的連接程度將互連型網路細分為三種情況:全互連型、局部互連型和稀疏連接型
2 按照網路信息流向分類
從神經網路內部信息傳遞方向來看,可以分為兩種類型:前饋型網路和反饋型網路。
單純前饋網路的結構與分層網路結構相同,前饋是因網路信息處理的方向是從輸入層到各隱層再到輸出層逐層進行而得名的。前饋型網路中前一層的輸出是下一層的輸入,信息的處理具有逐層傳遞進行的方向性,一般不存在反饋環路。因此這類網路很容易串聯起來建立多層前饋網路。
反饋型網路的結構與單層全互連結構網路相同。在反饋型網路中的所有節點都具有信息處理功能,而且每個節點既可以從外界接受輸入,同時又可以向外界輸出。

閱讀全文

與哪些神經網路信息通常是雙向傳播的相關的資料

熱點內容
同一網路兩個手機直播 瀏覽:433
移動網路的投屏慢 瀏覽:940
電腦網路設備狀態異常 瀏覽:309
秋明網路游戲有哪些 瀏覽:92
電信聯通移動哪個網路號 瀏覽:502
wifi網路拒絕存儲 瀏覽:147
無線網路有感嘆號能上網 瀏覽:257
什麼是軟文網路營銷 瀏覽:777
聯想bios網路喚醒設置 瀏覽:894
網路電視用哪個品牌好 瀏覽:177
河南幹部網路學院學員有多少 瀏覽:502
蘋果更換網路會讓輸入id密碼 瀏覽:559
計算機網路計算題習題 瀏覽:803
e信網路斷開後重新連接 瀏覽:194
游戲開發網路連接 瀏覽:937
手機網路機頂盒怎麼用轉換線 瀏覽:467
蘋果手機添加隱藏wifi網路 瀏覽:923
微信網路推廣有哪些特點 瀏覽:793
打電話時手機提醒未連接移動網路 瀏覽:609
家裡的無線網路手機能控制嗎 瀏覽:760

友情鏈接