為了讓神經網絡能夠學習復雜的決策邊界(decision boundary),我們在其一些層應用一個非線性激活函數。常用的函數有sigmoid、tanh、ReLU(Rectified Linear Unit 線性修正單元)和以及這些函數的變體。
二、Adadelta
Adadelta?是基于梯度下降的學習算法,可以隨時間調整每個參數的學習率,它比超參數(hyperparameter)更敏感而且可能會降低學習率。Adadelta 類似于 rmsprop,而且可被用來替代 vanilla SGD。
論文:Adadelta:一種自適應學習率方法
三、Adagrad
Adagrad?是一種自適應學習率算法,能夠隨時間跟蹤平方梯度并自動適應每個參數的學習率。它可被用來替代vanillaSGD (#sgd),稀疏數據上更是特別有用,可以將更高的學習率分配給更新不頻繁的參數。
論文:用于在線學習和隨機優化的自適應次梯度方法
四、Adam
Adam?是類似于 rmsprop 的自適應學習率算法,它通過使用梯度的第一和第二時刻的運行平均值(running average)直接估計,并具有偏差校正功能。
論文:Adam:一種隨機優化方法
五、仿射層(Affine Layer)
這是神經網絡中的一個全連接層。仿射(Affine)的意思是前面一層中的每一個神經元都連接到當前層中的每一個神經元。在許多方面,這是神經網絡的「標準」層。仿射層通常被加在卷積神經網絡或循環神經網絡做出最終預測前頂層。仿射層的一般形式為 y = f(Wx + b),其中 x 是層輸入,w 是參數,b 是一個偏差矢量,f 是一個非線性激活函數。
六、注意機制(Attention Mechanism)
注意機制由人類視覺注意所啟發,是一種關注圖像中特定部分的能力。注意機制可被整合到語言處理和圖像識別的架構中,以幫助網絡學習在做出預測時應該「關注」什么。
七、Alexnet
Alexnet?是一種卷積神經網絡架構的名字,這種架構曾在 2012 年 ILSVRC 挑戰賽中以巨大優勢獲勝,它使導致人們重新關注對用于圖像識別的卷積神經網絡(CNN)。它由 5 個卷積層組成。其中一些后面跟隨著最大池化(max-pooling)層和帶有最終 1000 條路徑的 softmax (1000-way softmax)的 3個全連接層。Alexnet 被引入到了使用深度卷積神經網絡的 ImageNet 分類中。
八、自編碼器(Autoencoder)
自編碼器是一種神經網絡模型,它的目標是預測輸入自身,這通常通過網絡中某個地方的「瓶頸(bottleneck)」實現。通過引入瓶頸,使得網絡學習輸入更低維度的表征,從而將輸入壓縮成一個好的表征。自編碼器和 PCA 等降維技術相關,但因為它們的非線性本質,它們可以學習更為復雜的映射。目前已有一些范圍涵蓋較廣的自編碼器存在,包括降噪自編碼器(Denoising Autoencoders)、變自編碼器(VariationalAutoencoders)和序列自編碼器(Sequence Autoencoders)。
降噪自編碼器論文:
Stacked Denoising Autoencoders: Learning Useful Representationsin a Deep Network with a Local Denoising Criterion
變自編碼器論文:
Auto-Encoding Variational Bayes
序列自編碼器論文:
Semi-supervised Sequence Learning
九、平均池化(Average-Pooling)
平均池化是一種在卷積神經網絡中用于圖像識別的池化(Pooling)技術。它的原理是,在特征的局部區域上滑動窗口(如像素),然后再取窗口中所有值的平均值。它將輸入表征壓縮成一種更低維度的表征。
十、反向傳播(Backpropagation)
反向傳播是一種在神經網絡中用來有效地計算梯度的算法,或稱為前饋計算圖(feedforwardcomputational graph)。它可以歸結成從網絡輸出開始應用分化的鏈式法則,然后向后傳播梯度。
論文:
Learning representations by back-propagating errors
十一、通過時間的反向傳播BPTT:BackpropagationThrough Time
通過時間的反向傳播是應用于循環神經網絡(RNN)的反向傳播算法,可被看作是應用于 RNN 的標準反向傳播算法,其中的每一個時間步驟(time step)都代表一個計算層,而且它的參數是跨計算層共享的。
RNN?在所有的時間步驟中都共享了同樣的參數,一個時間步驟的錯誤必然能「通過時間」反向到之前所有的時間步驟,該算法因此得名。處理長序列(數百個輸入)時,為降低計算成本常常使用一種刪節版的 BPTT。刪節的 BPTT 會在固定數量的步驟之后停止反向傳播錯誤。
論文:
Backpropagation Through Time: What It Does and How to Do It
十二、分批標準化(BN:Batch Normalization)
分批標準化是一種按小批量的方式標準化層輸入的技術。它能加速訓練過程,允許使用更高的學習率,還可用作規范器(regularizer)。分批標準化在卷積和前饋神經網絡中應用較多,但尚未應用到循環神經網絡上。
論文:分批標準化:通過減少內部協變量位移(Covariate Shift)加速深度網絡訓練(Batch Normalization: Accelerating Deep Network Training by ReducingInternal Covariate Shift)
論文:使用分批標準化的循環神經網絡(Batch Normalized Recurrent NeuralNetworks)
十三、雙向循環神經網絡(Bidirectional RNN)
雙向循環神經網絡是一類包含兩個方向不同的 RNN 的神經網絡。其中的前向 RNN 從起點向終點讀取輸入序列,而反向 RNN 則從終點向起點讀取。這兩個 RNN 互相彼此堆疊,它們的狀態通常通過附加兩個矢量的方式進行組合。雙向 RNN 常被用在自然語言問題中,因為在自然語言中我們需要同時考慮話語的前后上下文以做出預測。
論文:雙向循環神經網絡(Bidirectional Recurrent Neural Networks)
十四、Caffe
Caffe?是由伯克利大學視覺和學習中心開發的一種深度學習框架。在視覺任務和卷積神經網絡模型中,Caffe應用較多。
十五、分類交叉熵損失(Categorical Cross-Entropy Loss)
分類交叉熵損失也被稱為負對數似然(negative log likelihood)。這是一種用于解決分類問題的流行的損失函數,可用于測量兩種概率分布(通常是真實標簽和預測標簽)之間的相似性。它可用 L = -sum(y * log(y_prediction)) 表示,其中 y 是真實標簽的概率分布(通常是一個one-hot vector),y_prediction 是預測標簽的概率分布,通常來自一個 softmax。
十六、信道(Channel)
深度學習模型的輸入數據可以有多個信道。圖像就是個典型的例子,它有紅、綠和藍三個顏色信道。一個圖像可以被表示成一個三維的張量(Tensor),其中的維度對應于信道、高度和寬度。自然語言數據也可以有多個信道。
十七、卷積神經網絡(CNN/ConvNet:ConvolutionalNeural Network)
CNN?使用卷積連接從輸入的局部區域提取特征。大部分 CNN 都包含了卷積層、池化層和仿射層的組合。CNN 憑借其在視覺識別任務的卓越性能而獲得普及,它已經在該領域保持了好幾年的領先地位。
十八、深度信念網絡(DBN:Deep Belief Network)
DBN?是一類以無監督的方式學習數據的分層表征的概率圖形模型。DBN 由多個隱藏層組成,這些隱藏層每一對連續層之間的神經元相互連接。DBN 通過堆疊多個 RBN(限制波爾茲曼機)并一個接一個地訓練而創建。
論文:深度信念網絡的一種快速學習算法
(A fast learning algorithm for deep belief nets)
十九、Deep Dream
這是谷歌發明的試圖用來提煉深度卷積神經網絡獲取知識的技術。這種技術可以生成新的圖像或轉換已有的圖片從而給它們一種幻夢般的感覺。
二十、Dropout
Dropout?是用于神經網絡防止過擬合的正則化技術。它通過在每次訓練迭代中,隨機設置神經元中的一小部分為0 來阻止神經元共適應(co-adapting)。Dropout可以通過多種方式進行解讀,例如,從不同網絡的指數數字中隨機取樣。Dropout 層通過它們在卷積神經網絡中的應用而得到普及,也被應用到了其它層上,包括輸入嵌入或循環網絡。
論文:Dropout: 一種防止神經網絡過擬合的簡單方法
Dropout: A Simple Way to Prevent Neural Networks fromOverfitting
論文:循環神經網絡正則化
Recurrent Neural Network Regularization
二十一、嵌入(Embedding)
一個嵌入映射到一個輸入表征,例如一個詞或一句話映射到一個矢量。一種流行的嵌入是詞語嵌入(word embedding,國內常用的說法是:詞向量),如 word2vec 或 GloVe。也可以嵌入句子、段落或圖像。例如,把圖像和他們的文本描述映射到一個共同的嵌入空間,并最小化它們之間的距離,就可以將標簽和圖像進行匹配。嵌入也可作為監督任務的一部分,例如情感分析(Sentiment Analysis)。一般地,一個網絡的輸入層通過預先訓練的嵌入進行初始化,然后根據當前任務進行微調(fine-tuned)。
二十二、梯度爆炸問題(Exploding Gradient Problem)
梯度爆炸問題是梯度消失問題(Vanishing Gradient Problem)的對立面。在深度神經網絡中,梯度可能會在反向傳播過程中爆炸,導致數字溢出。解決梯度爆炸的一個常見技術是梯度裁剪(Gradient Clipping)。
論文:訓練循環神經網絡的困難之處
On the difficulty of training Recurrent Neural Networks
二十三、微調(Fine-Tuning)
Fine-Tuning使用來自另一個任務(例如一個無監督訓練網絡)的參數初始化網絡,再基于當前任務更新這些參數。例如,自然語言處理架構通常使用 word2vec 這樣的預訓練的詞向量(word embeddings),然后這些詞向量會在訓練過程中基于特定的任務(如情感分析)進行更新。
二十四、梯度裁剪(Gradient Clipping)
梯度裁剪是一種在深度較高的網絡(通常是循環神經網絡)中用于防止梯度爆炸(exploding gradient)的技術。執行梯度裁剪的方法有很多,常見的一種是,當參數矢量的 L2 范數(L2 norm)超過一個特定閾值時,對參數矢量的梯度進行標準化,這個特定閾值根據以下函數確定:新梯度=梯度*閾值/L2范數(梯度){new_gradients = gradients * threshold / l2_norm(gradients)}。
論文:訓練循環神經網絡的困難之處
On the difficulty of training Recurrent Neural Networks
二十五、GloVe
GloVe?是一種為話語獲取矢量表征(嵌入)的無監督學習算法。GloVe 的使用目的和 word2vec 一樣,但 GloVe 具有不同的矢量表征,因為它是在共現(co-occurrence)統計數據上訓練的。
論文:GloVe:用于詞匯表征(WordRepresentation)的全局矢量(Global Vector)
GloVe: Global Vectors for Word Representation
二十六、GoogleLeNet
GoogleLeNet?是一種卷積神經網絡架構,曾贏得2014 年 ILSVRC 挑戰賽。這種網絡使用 Inception 模塊(Inception Module)以減少參數和提高網絡中計算資源的利用率。
論文:使用卷積獲得更深
Going Deeper with Convolutions
二十七、GRU
GRU(Gated Recurrent Unit:門控循環單元)是一種 LSTM 單元的簡化版本,擁有更少的參數。和LSTM cell一樣,它使用門控機制,通過防止梯度消失問題(vanishing gradient problem)讓循環神經網絡可以有效學習長程依賴(long-range dependency)。GRU 包含一個復位和更新門,它們可以根據當前時間步驟的新值決定舊記憶中哪些部分需要保留或更新。
論文:為統計機器翻譯使用 RNN 編碼器-解碼器學習短語表征
Learning Phrase Representations using RNN Encoder-Decoder forStatistical Machine Translation
二十八、Highway Layer
Highway Layer 是使用門控機制控制通過層的信息流的一種神經網絡層。堆疊多個 HighwayLayer 層可讓訓練非常深的網絡成為可能。Highway Layer 的基本公式是 T * h(x) + (1 - T) * x。其中, T 是學習過的門控函數,取值在 0 到 1 之間;h(x) 是一個任意的輸入變換;x 是輸入。
? ? ? ? 論文:Highway Networks
二十九、ICML
即國際機器學習大會(International Conference for Machine Learning),一個頂級的機器學習會議。
三十、ILSVRC
ILSVRC#e#
即 ImageNet 大型視覺識別挑戰賽(ImageNetLarge Scale Visual Recognition Challenge),該比賽用于評估大規模對象檢測和圖像分類的算法。它是計算機視覺領域最受歡迎的學術挑戰賽。過去幾年中,深度學習讓錯誤率出現了顯著下降,從 30% 降到了不到 5%,在許多分類任務中擊敗了人類。
三十一、Inception模塊(Inception Module)
Inception模塊被用在卷積神經網絡中,通過堆疊 1×1 卷積的降維(dimensionality reduction)實現高效計算。
論文:使用卷積獲得更深(Going Deeper with Convolutions)
三十二、Keras
Kears?是一個基于 Python 的深度學習庫,包括許多用于深度神經網絡的高層次構建模塊。它可以運行在 TensorFlow 或 Theano 上。
三十三、LSTM
長短期記憶(Long Short-Term Memory)網絡通過使用內存門控機制防止循環神經網絡(RNN)中的梯度消失問題(vanishing gradient problem)。使用 LSTM 單元計算RNN 中的隱藏狀態,可以幫助該網絡有效地傳播梯度和學習長程依賴(long-range dependency)。
論文:長短期記憶
LONG SHORT-TERM MEMORY
三十四、最大池化(Max-Pooling)
池化(Pooling)操作通常被用在卷積神經網絡中。一個最大池化層從一塊特征中選取最大值。與卷積層一樣,池化層也是通過窗口(塊)大小和步幅尺寸進行參數化。例如,在一個 10×10 特征矩陣上以 2 的步幅滑動一個 2×2 的窗口,然后選取每個窗口的 4個值中的最大值,得到一個 5×5 特征矩陣。池化層通過只保留最突出的信息來減少表征的維度;在這個圖像輸入的例子中,它們為轉譯提供了基本的不變性(即使圖像偏移了幾個像素,仍可選出同樣的最大值)。池化層通常被安插在連續卷積層之間。
三十五、MNIST
MNIST數據集可能是最常用的一個圖像識別數據集。它包含 60,000 個手寫數字的訓練樣本和 10,000 個測試樣本。每一張圖像的尺寸為 28×28像素。目前最先進的模型通常能在該測試集中達到 99.5% 或更高的準確度。
三十六、動量(Momentum)
動量是梯度下降算法(Gradient Descent Algorithm)的擴展,可以加速和阻抑參數更新。在實際應用中,在梯度下降更新中包含一個動量項,可在深度網絡中得到更好的收斂速度(convergence rate)。
論文:通過反向傳播(back-propagating error)錯誤學習表征
三十七、多層感知器(MLP:MultilayerPerceptron)
多層感知器是一種帶有多個全連接層的前饋神經網絡,這些全連接層使用非線性激活函數(activationfunction)處理非線性可分的數據。MLP 是多層神經網絡或有兩層以上的深度神經網絡的最基本形式。
三十八、負對數似然(NLL:Negative LogLikelihood)
參見分類交叉熵損失(Categorical Cross-Entropy Loss)。
三十九、神經網絡機器翻譯(NMT:Neural MachineTranslation)
NMT?系統使用神經網絡實現語言(如英語和法語)之間的翻譯。NMT 系統可以使用雙語語料庫進行端到端的訓練,這有別于需要手工打造特征和開發的傳統機器翻譯系統。NMT 系統通常使用編碼器和解碼器循環神經網絡實現,它可以分別編碼源句和生成目標句。
論文:使用神經網絡的序列到序列學習(Sequence to Sequence Learning withNeural Networks)
論文:為統計機器翻譯使用 RNN 編碼器-解碼器學習短語表征(Learning Phrase Representations using RNN Encoder-Decoder forStatistical Machine Translation)
四十、神經圖靈機(NTM:Neural Turing Machine)
NTM?是可以從案例中推導簡單算法的神經網絡架構。例如,NTM 可以通過案例的輸入和輸出學習排序算法。NTM 通常學習記憶和注意機制的某些形式以處理程序執行過程中的狀態。
論文:神經圖靈機(Neural Turing Machines)
四十一、非線性(Nonlinearity)
參見激活函數(Activation Function)。
四十二、噪音對比估計(NCE:noise-contrastiveestimation)
噪音對比估計是通常用于訓練帶有大輸出詞匯的分類器的采樣損失(sampling loss)。在大量可能的類上計算 softmax 是異常昂貴的。使用 NCE,可以將問題降低成二元分類問題,這可以通過訓練分類器區別對待取樣和「真實」分布以及人工生成的噪聲分布來實現。
論文:噪音對比估計:一種用于非標準化統計模型的新估計原理
(Noise-contrastive estimation: A new estimation principlefor unnormalized statistical models )
論文:使用噪音對比估計有效地學習詞向量(Learning word embeddings efficientlywith noise-contrastive estimation)
四十三、池化
參見最大池化(Max-Pooling)或平均池化(Average-Pooling)。
四十四、受限玻爾茲曼機(RBN:RestrictedBoltzmann Machine)
RBN?可被看作隨機人工神經網絡的概率圖形模型。RBN 以無監督的形式學習數據的表征。RBN 由可見層、隱藏層和這些層中的二元神經元的連接構成。RBN 可以使用對比散度(contrastive divergence)進行有效的訓練,這是梯度下降的一種近似。
論文:受限玻爾茲曼機簡介(An Introduction to Restricted BoltzmannMachines)
四十五、循環神經網絡(RNN:Recurrent NeuralNetwork)
RNN?模型通過隱藏狀態(或稱記憶)連續相互作用。它可以使用最多 N 個輸入,并產生最多 N 個輸出。例如,輸入是一個句子,輸出是每個單詞的詞性標注(part-of-speechtag)(N 到 N),或是這個句子的情感分類(N 到 1);再如,輸入是單個圖像,輸出是描述該圖像所對應一系列詞語(1 到 N)。在每一個時間步驟中,RNN會基于當前輸入和之前的隱藏狀態,計算新的隱藏狀態「記憶」。其中,「循環(recurrent)」一詞是指,在每一步中都使用了同樣的參數,該網絡根據不同的輸入執行同樣的計算。
四十六、遞歸神經網絡(Recursive Neural Network)
遞歸神經網絡是循環神經網絡的樹狀結構的一種泛化(generalization)。每一次遞歸都使用相同的權重。就像 RNN 一樣,遞歸神經網絡可以使用向后傳播(backpropagation)進行端到端的訓練。盡管可以學習樹結構以將其用作優化問題的一部分,但遞歸神經網絡通常被用在已有預定義結構的問題中,如自然語言處理的解析樹中。
論文:使用遞歸神經網絡解析自然場景和自然語言(Parsing Natural Scenes and NaturalLanguage with Recursive Neural Networks )
四十七、ReLU
線性修正單元(Rectified Linear Unit)常在深度神經網絡中被用作激活函數。它們的定義是 f(x) = max(0, x) 。較于tanh 等函數,ReLU往往很稀疏(它們的活化可以很容易設置為 0),而且它們受到梯度消失問題的影響也更小。ReLU 主要被用在卷積神經網絡中用作激活函數。ReLU 存在幾種變體,如Leaky ReLUs、Parametric ReLU (PReLU) 或更為流暢的 softplus近似。
論文:深入研究修正器(Rectifiers):在 ImageNet 分類上超越人類水平的性能(Delving Deep into Rectifiers: Surpassing Human-Level Performance onImageNet Classification)
論文:修正非線性改進神經網絡聲學模型(Rectifier Nonlinearities Improve NeuralNetwork Acoustic Models )
論文:線性修正單元改進受限玻爾茲曼機(Rectified Linear Units ImproveRestricted Boltzmann Machines? )
四十八、殘差網絡(ResNet)
深度殘差網絡(Deep Residual Network)贏得了2015 年的 ILSVRC 挑戰賽。這些網絡的工作方式是,引入跨層堆棧的快捷連接,讓優化器可以學習更「容易」的殘差映射(residual mapping)而非更為復雜的原映射(original mapping)。這些快捷連接與 Highway Layer 類似,但它們與數據無關且不會引入額外的參數或訓練復雜度。ResNet在 ImageNet 測試集中實現了 3.57% 的錯誤率。
論文:用于圖像識別的深度殘差網絡(Deep Residual Learning for ImageRecognition)
四十九、RMSProp
RMSProp?是一種基于梯度的優化算法。它與 Adagrad 類似,但引入了一個額外的衰減項抵消 Adagrad 下降的學習率。
五十、序列到序列(Seq2Seq)
序列到序列(Sequence-to-Sequence)模型讀取一個序列(如一個句子)作為輸入,然后產生另一個序列作為輸出。它與標準的 RNN 不同。在標準的 RNN 中,輸入序列會在網絡開始產生任何輸出之前被完整地讀取。通常,Seq2Seq 通過兩個分別作為編碼器和解碼器的 RNN 實現。神經網絡機器翻譯是典型的 Seq2Seq 模型。
論文:使用神經網絡的序列到序列學習(Sequence to Sequence Learning withNeural Networks)
五十一、隨機梯度下降(SGD:Stochastic GradientDescent)
隨機梯度下降是用于訓練階段學習網絡參數的基于梯度的優化算法。梯度通常使用反向傳播算法計算。使用微小批量版本的 SGD,其中的參數更新基于批案例而非單個案例進行執行,這能增加計算效率。vanilla SGD 存在許多擴展,包括動量(Momentum)、Adagrad、rmsprop、Adadelta或 Adam。
論文:用于在線學習和隨機優化的自適應次梯度方法(Adaptive Subgradient Methods forOnline Learning and Stochastic Optimization)
五十二、Softmax
Softmax?函數通常用于將原始分數(raw score)的矢量轉換成用于分類的神經網絡的輸出層上的類概率(class probability)。它通過對歸一化常數(normalizationconstant)進行指數化和相除運算而對分數進行規范化。如果我們正在處理大量的類,例如機器翻譯中的大量詞匯,計算歸一化常數是很昂貴的。有許多種可以讓計算更高效的替代選擇,如分層 Softmax(Hierarchical Softmax),或使用基于取樣的損失函數,如 NCE。
五十三、TensorFlow
TensorFlow是一個開源 C ++ / Python 軟件庫,用于使用數據流圖的數值計算,尤其是深度神經網絡。它由谷歌創建。在設計方面,它最類似于 Theano,但比 Caffe 或Keras 更低級。
五十四、Theano
Theano?是一個讓你可以定義、優化和評估數學表達式的 Python 庫。它包含許多用于深度神經網絡的構造模塊。Theano 是類似于 TensorFlow 的低級別庫。更高級別的庫包括Keras 和 Caffe。
五十五、梯度消失問題(Vanishing Gradient Problem)
梯度消失問題出現在使用梯度很小(在 0 到 1 的范圍內)的激活函數的非常深的神經網絡中,通常是循環神經網絡。因為這些小梯度會在反向傳播中相乘,它們往往在這些層中傳播時「消失」,從而讓網絡無法學習長程依賴。解決這一問題的常用方法是,使用 ReLU 這樣的不受小梯度影響的激活函數,或使用明確針對消失梯度問題的架構,如LSTM。這個問題的反面被稱為梯度爆炸問題(exploding gradient problem)。
論文:訓練循環神經網絡的困難之處(On the difficulty of training RecurrentNeural Networks)
五十六、VGG
VGG?是在 2014 年 ImageNet 定位和分類比賽中分別獲得第一和第二名的卷積神經網絡模型。這個 VGG 模型包含 16-19 個權重層,并使用了大小為 3×3 和 1×1 的小型卷積過濾器。
論文:用于大規模圖像識別的非常深度的卷積網絡(Very Deep Convolutional Networksfor Large-Scale Image Recognition)
五十七、word2vec
word2vec?是一種試圖通過預測文檔中話語的上下文來學習詞向量(word embedding)的算法和工具 (https://code.google.com/p/word2vec/)。最終得到的詞矢量(word vector)有一些有趣的性質,例如vector('queen') ~=vector('king') - vector('man') + vector('woman') (女王~=國王-男人+女人)。兩個不同的目標函數可以用來學習這些嵌入:Skip-Gram 目標函數嘗試預測一個詞的上下文,CBOW? 目標函數則嘗試從上下文預測這個詞。
論文:向量空間中詞匯表征的有效評估(Efficient Estimation of WordRepresentations in Vector Space)
論文:分布式詞匯和短語表征以及他們的組合性(Distributed Representations of Wordsand Phrases and their Compositionality)
論文:解釋 word2vec 參數學習(word2vecParameter Learning Explained)
評論
查看更多