
使用這些基本 REST API 最佳實踐構建出色的 API
反饋神經網絡(Feedback Neural Network)中,神經元不但可以接收其他神經元的信號,而且可以接收自己的反饋信號。和前饋神經網絡相比,反饋神經網絡中的神經元具有記憶功能,在不同時刻具有不同的狀態。反饋神經網絡中的信息傳播可以是單向也可以是雙向傳播,因此可以用一個有向循環圖或者無向圖來表示。
常見的反饋神經網絡包括循環神經網絡(RNN)、長短期記憶網絡(LSTM)、Hopfield網絡和玻爾茲曼機。
全連接神經網絡是深度學習最常見的網絡結構,有三種基本類型的層: 輸入層、隱藏層和輸出層。當前層的每個神經元都會接入前一層每個神經元的輸入信號。在每個連接過程中,來自前一層的信號被乘以一個權重,增加一個偏置,然后通過一個非線性激活函數,通過簡單非線性函數的多次復合,實現輸入空間到輸出空間的復雜映射。
圖像具有非常高的維數,因此訓練一個標準的前饋網絡來識別圖像將需要成千上萬的輸入神經元,除了顯而易見的高計算量,還可能導致許多與神經網絡中的維數災難相關的問題。卷積神經網絡提供了一個解決方案,利用卷積和池化層,來降低圖像的維度。由于卷積層是可訓練的,但參數明顯少于標準的隱藏層,它能夠突出圖像的重要部分,并向前傳播每個重要部分。傳統的CNNs中,最后幾層是隱藏層,用來處理“壓縮的圖像信息”。
深層前饋神經網絡有一個問題,隨著網絡層數的增加,網絡會發生了退化(degradation)現象:隨著網絡層數的增多,訓練集loss逐漸下降,然后趨于飽和,當再增加網絡深度的話,訓練集loss反而會增大。為了解決這個問題,殘差網絡使用跳躍連接實現信號跨層傳播。
生成對抗網絡是一種專門設計用于生成圖像的網絡,由兩個網絡組成: 一個鑒別器和一個生成器。鑒別器的任務是區分圖像是從數據集中提取的還是由生成器生成的,生成器的任務是生成足夠逼真的圖像,以至于鑒別器無法區分圖像是否真實。隨著時間的推移,在謹慎的監督下,這兩個對手相互競爭,彼此都想成功地改進對方。最終的結果是一個訓練有素的生成器,可以生成逼真的圖像。鑒別器是一個卷積神經網絡,其目標是最大限度地提高識別真假圖像的準確率,而生成器是一個反卷積神經網絡,其目標是最小化鑒別器的性能。
自動編碼器學習一個輸入(可以是圖像或文本序列)的壓縮表示,例如,壓縮輸入,然后解壓縮回來匹配原始輸入,而變分自動編碼器學習表示的數據的概率分布的參數。不僅僅是學習一個代表數據的函數,它還獲得了更詳細和細致的數據視圖,從分布中抽樣并生成新的輸入數據樣本。
Transformer是Google Brain提出的經典網絡結構,由經典的Encoder-Decoder模型組成。在上圖中,整個Encoder層由6個左邊Nx部分的結構組成。整個Decoder由6個右邊Nx部分的框架組成,Decoder輸出的結果經過一個線性層變換后,經過softmax層計算,輸出最終的預測結果。
循環神經網絡是一種特殊類型的網絡,它包含環和自重復,因此被稱為“循環”。由于允許信息存儲在網絡中,RNNs 使用以前訓練中的推理來對即將到來的事件做出更好、更明智的決定。為了做到這一點,它使用以前的預測作為“上下文信號”。由于其性質,RNNs 通常用于處理順序任務,如逐字生成文本或預測時間序列數據(例如股票價格)。它們還可以處理任意大小的輸入。
LSTM結構是專門為解決RNN在學習長的的上下文信息出現的梯度消失、爆炸問題而設計的,結構中加入了內存塊。這些模塊可以看作是計算機中的內存芯片——每個模塊包含幾個循環連接的內存單元和三個門(輸入、輸出和遺忘,相當于寫入、讀取和重置)。信息的輸入只能通過每個門與神經元進行互動,因此這些門學會智能地打開和關閉,以防止梯度爆炸或消失。
Hopfield神經網絡是一種單層互相全連接的反饋型神經網絡。每個神經元既是輸入也是輸出,網絡中的每一個神經元都將自己的輸出通過連接權傳送給所有其它神經元,同時又都接收所有其它神經元傳遞過來的信息。
實踐中,我們除了結合任務直接選用一些經典神經模型做驗證,有時也需要對網絡結構做設計優化。網絡結構的設計需要考慮的2個實質問題是:
也就是神經網絡基本的架構如何設計,有兩種設計思路:
神經網絡由輸入層、隱藏層與輸出層構成:
對于網絡的輸入層、輸出層的神經元通常是確定的,主要需要考慮的是隱藏層的深度及寬度,在忽略網絡退化問題的前提下,通常隱藏層的神經元(計算單元)的越多,模型有更多的容量(capcity)去達到更好的擬合效果。
搜索合適的網絡深度及寬度,常用有人工調參、隨機搜索、貝葉斯優化等方法。這里有個引申問題:
以上圖神經網絡為例,將單層寬度增加3個神經元,會新增6個與之相連前后層的權重參數。而直接新增一個3個神經元的網絡層,只會新增3個的權重參數。
當然,深度和寬度并不是完全對立的關系,增加深度和寬度都是在增加可學習參數的個數,從而增加神經網絡的擬合能力,在網絡設計需要追求深度與廣度的平衡。
文章轉自微信公眾號@算法進階