隨着深度學習的快速發展,目前已經出現了海量的不同結構的神經網絡,本文介紹11種需要知道的神經網絡結構。
十一大必知網絡結構
1. Perceptron
感知機是所有神經網絡的基礎,主要由全連接層組成,下面是感知機示意圖。
2. Feed-Forward Network(FNN)
FNN是有Perceptron組合得到的,由輸入層、隱藏層和輸出層組成,其結構如下:
3. Residual Networks (ResNet)
深度神經網絡最大問題就是當網絡深度達到一定程度時就會出現消失梯度的問題,導致模型訓練不佳,為了緩解該問題,我們設計了殘差網絡。它通過一個“跳躍”層傳播信息號,大大緩解了梯度消失的問題。
4. Recurrent Neural Network (RNN)4. Recurrent Neural Network (RNN)
遞歸神經網絡是早期處理序列問題的始祖,它包含循環,並在自身上進行遞歸,因此得名“遞歸”。RNN允許將信息存儲在網絡中,並使用先前訓練中的推理,對即將發生的事件做出更好、更明智的決策。
5. Long Short Term Memory Network (LSTM)5. Long Short Term Memory Network (LSTM)
RNN最大的問題在於,一旦處理的序列較長的時候,例如100,RNN的效果就會大大變差,所以大家設計了LSTM,LSTM可以處理大約300左右長度的序列,這也是為什么目前LSTM在序列化的問題中還經常被使用的原因。
6. Echo State Networks(ESN) 6. Echo State Networks(ESN)
回聲狀態網絡由輸入層、隱藏層(即儲備池)、輸出層組成,是遞歸神經網絡的一種變體,它有一個非常稀疏連接的隱層(通常是百分之一左右的連通性)。神經元的連接和權值是隨機分配的,忽略層和神經元的差異(跳躍連接)。ESN將隱藏層設計成一個具有很多神經元組成的稀疏網絡,通過調整網絡內部權值的特性達到記憶數據的功能。
7. Convolutional Neural Network (CNN)7. Convolutional Neural Network (CNN)
CNN早期在圖像中取得了巨大的成功,在今日,CNN仍然是不可或缺的一部分。因為圖像數據有着非常高的維度,訓練一個標准網絡訓練圖像(例如簡單的MLP)都需要數十萬個輸入神經元,除了明顯的高計算開銷外,還會導致許多與神經網絡維數災難相關的問題。CNN則利用卷積層來幫助降低圖像的維數,不僅大大降低了訓練的參數,而且在效果上也取得了巨大的提升。
8. Deconvolutional Neural Network (DNN)8. Deconvolutional Neural Network (DNN)
反卷積神經網絡,顧名思義,其性能與卷積神經網絡相反。DNN並不是通過卷積來降低來圖像的維數,而是利用反卷積來創建圖像,一般是從噪聲中生成的。DNN還經常用於尋找丟失的特征或信號,這些特征或信號以前可能被認為對卷積神經網絡的任務並不重要。一個信號可能由於與其他信號卷積而丟失。信號的Deconvolution可以用於圖像合成和分析。
9. Generative Adversarial Network (GAN)9. Generative Adversarial Network (GAN)
生成性對抗網絡是一種專門設計用來生成圖像的網絡,它由兩個網絡組成:一個生成器和一個判別器。判別器的任務是區分圖像是從數據集中提取的還是由生成器生成的,生成器的任務是生成虛假的圖像,盡可能使得判別器無法區分圖像是否真實,目前GAN生成的圖像很多都是栩栩如生,甚至達到了以假亂真的程度。
10. Auto Encoder (AE)10. Auto Encoder (AE)
自動編碼器的應用非常廣,包括模型壓縮、數據去噪、異常檢測、推薦系統等等。其基本思想是將原始的高維數據“壓縮”、低維的數據,然后將壓縮后的數據投影到一個新的空間中。
11. Variational Auto Encoder (VAE)11. Variational Auto Encoder (VAE)
自動編碼器學習輸入的壓縮表示,而變分自動編碼器(VAE)學習表示數據的概率分布的參數。它不只是學習表示數據的函數,而是獲得更詳細和細致的數據視圖,從分布中采樣並生成新的輸入數據樣本。所以VAE更像是一個“生成”模式,類似於GAN。