深度學習術語表與解析
第一部分:
http://waterbolik.github.io/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/2016/10/08/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E6%9C%AF%E8%AF%AD%E8%A1%A8本文整理了一些深度學習領域的專業名詞及其簡單釋義,同時還附加了一些相關的論文或文章連結。本文編譯自 wildml,作者仍在繼續更新該表,編譯如有錯漏之處請指正。文章中的論文與 PPT 讀者可點選連結下載。
Activation Function啟用函式
為了讓神經網路能夠學習複雜的決策邊界(decision boundary),我們在其一些層應用一個非線性啟用函式。最常用的函式包括 sigmoid、tanh、ReLU(Rectified Linear Unit 線性修正單元) 以及這些函式的變體。
Adadelta
Adadelta 是一個基於梯度下降的學習演算法,可以隨時間調整適應每個引數的學習率。它是作為 Adagrad 的改進版提出的,它比超引數(hyperparameter)更敏感而且可能會太過嚴重地降低學習率。Adadelta 類似於 rmsprop,而且可被用來替代 vanilla SGD。
Adagrad
Adam
Adam 是一種類似於 rmsprop 的自適應學習率演算法,但它的更新是通過使用梯度的第一和第二時刻的執行平均值(running average)直接估計的,而且還包括一個偏差校正項。
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)、變自編碼器(Variational Autoencoders)和序列自編碼器(Sequence Autoencoders)。
- 降噪自編碼器論文:Stacked Denoising Autoencoders: Learning Useful Representations in a Deep Network with a Local Denoising Criterion
- 變自編碼器論文:Auto-Encoding Variational Bayes
- 序列自編碼器論文:Semi-supervised Sequence Learning
Average-Pooling 平均池化
平均池化是一種在卷積神經網路中用於影象識別的池化(Pooling)技術。它的工作原理是在特徵的區域性區域上滑動視窗,比如畫素,然後再取視窗中所有值的平均。它將輸入表徵壓縮成一種更低維度的表徵。
BackPropagation 反向傳播
反向傳播是一種在神經網路中用來有效地計算梯度的演算法,或更一般而言,是一種前饋計算圖(feedforward computational graph)。其可以歸結成從網路輸出開始應用分化的鏈式法則,然後向後傳播梯度。反向傳播的第一個應用可以追溯到 1960 年代的 Vapnik 等人,但論文 Learning representations by back-propagating errors常常被作為引用源。
BPTT:Backpropagation Through Time 通過時間的反向傳播
通過時間的反向傳播是應用於迴圈神經網路(RNN)的反向傳播演算法。BPTT 可被看作是應用於 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 Reducing Internal Covariate Shift)
- 論文:使用分批標準化的迴圈神經網路(Batch Normalized Recurrent Neural Networks)
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),其中的維度對應於通道、高度和寬度。自然語言資料也可以有多個通道,比如在不同型別的嵌入(embedding)形式中。
CNN/ConvNet:Convolutional Neural 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 from Overfitting)
- 論文:迴圈神經網路正則化(Recurrent Neural Network Regularization)
Embedding 嵌入
一個嵌入對映到一個輸入表徵,比如一個詞或一句話對映到一個向量。一種流行的嵌入是詞語嵌入(word embedding,國內常用的說法是:詞向量),如 word2vec 或 GloVe。我們也可以嵌入句子、段落或影象。比如說,通過將影象和他們的文字描述對映到一個共同的嵌入空間中並最小化它們之間的距離,我們可以將標籤和影象進行匹配。嵌入可以被明確地學習到,比如在 word2vec 中;嵌入也可作為監督任務的一部分例如情感分析(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:用於詞彙表徵(Word Representation)的全域性向量(Global Vector)(GloVe: Global Vectors for Word Representation )
GoogleLeNet
GoogleLeNet 是曾贏得了 2014 年 ILSVRC 挑戰賽的一種卷積神經網路架構。這種網路使用 Inception 模組(Inception Module)以減少引數和提高網路中計算資源的利用率。
- 論文:使用卷積獲得更深(Going Deeper with Convolutions)
GRU:Gated Recurrent Unit 門控迴圈單元
GRU(Gated Recurrent Unit:門控迴圈單元)是一種 LSTM 單元的簡化版本,擁有更少的引數。和 LSTM 細胞(LSTM cell)一樣,它使用門控機制,通過防止梯度消失問題(vanishing gradient problem)讓迴圈神經網路可以有效學習長程依賴(long-range dependency)。GRU 包含一個復位和更新門,它們可以根據當前時間步驟的新值決定舊記憶中哪些部分需要保留或更新。
Highway Layer
Highway Layer 是使用門控機制控制通過層的資訊流的一種神經網路層。堆疊多個 Highway Layer 層可讓訓練非常深的網路成為可能。Highway Layer 的工作原理是通過學習一個選擇輸入的哪部分通過和哪部分通過一個變換函式(如標準的仿射層)的門控函式來進行學習。Highway Layer 的基本公式是 T h(x) + (1 – T) x;其中 T 是學習過的門控函式,取值在 0 到 1 之間;h(x) 是一個任意的輸入變換,x 是輸入。注意所有這些都必須具有相同的大小。
- 論文:Highway Networks
ICML:International Conference for Machine Learning 國際機器學習大會
即國際機器學習大會(International Conference for Machine Learning),一個頂級的機器學習會議。
ILSVRC:ImageNet Large Scale Visual Recognition Challenge 即 ImageNet 大型視覺識別挑戰賽
即 ImageNet 大型視覺識別挑戰賽(ImageNet Large Scale Visual Recognition Challenge),該比賽用於評估大規模物件檢測和影象分類的演算法。它是計算機視覺領域最受歡迎的學術挑戰賽。過去幾年中,深度學習讓錯誤率出現了顯著下降,從 30% 降到了不到 5%,在許多分類任務中擊敗了人類。
Inception Module:Inception模組
Inception模組被用在卷積神經網路中,通過堆疊 1×1 卷積的降維(dimensionality reduction)帶來更高效的計算和更深度的網路。
- 論文:使用卷積獲得更深(Going Deeper with Convolutions)
Keras
Kears 是一個基於 Python 的深度學習庫,其中包括許多用於深度神經網路的高層次構建模組。它可以執行在 TensorFlow 或 Theano 上。
LSTM:Long Short-Term Memory 長短期記憶
長短期記憶(Long Short-Term Memory)網路通過使用記憶體門控機制防止迴圈神經網路(RNN)中的梯度消失問題(vanishing gradient problem)。使用 LSTM 單元計算 RNN 中的隱藏狀態可以幫助該網路有效地傳播梯度和學習長程依賴(long-range dependency)。
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:Multilayer Perceptron 多層感知器
多層感知器是一種帶有多個全連線層的前饋神經網路,這些全連線層使用非線性啟用函式(activation function)處理非線性可分的資料。MLP 是多層神經網路或有兩層以上的深度神經網路的最基本形式。
NLL:Negative Log Likelihood 負對數似然
參見分類交叉熵損失(Categorical Cross-Entropy Loss)。
分類交叉熵損失(Categorical Cross-Entropy Loss)也被稱為負對數似然(negative log likelihood)。這是一種用於解決分類問題的流行的損失函式,可用於測量兩種概率分佈(通常是真實標籤和預測標籤)之間的相似性。它可用 L = -sum(y * log(y_prediction)) 表示,其中 y 是真實標籤的概率分佈(通常是一個one-hot vector),y_prediction 是預測標籤的概率分佈,通常來自於一個 softmax。
NMT:Neural Machine Translation 神經網路機器翻譯
NMT 系統使用神經網路實現語言(如英語和法語)之間的翻譯。NMT 系統可以使用雙語語料庫進行端到端的訓練,這有別於需要手工打造特徵和開發的傳統機器翻譯系統。NMT 系統通常使用編碼器和解碼器迴圈神經網路實現,它可以分別編碼源句和生成目標句。
- 論文:使用神經網路的序列到序列學習(Sequence to Sequence Learning with Neural Networks)
- 論文:為統計機器翻譯使用 RNN 編碼器-解碼器學習短語表徵(Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation)
NTM:Neural Turing Machine 神經圖靈機
NTM 是可以從案例中推導簡單演算法的神經網路架構。比如,NTM 可以通過案例的輸入和輸出學習排序演算法。NTM 通常學習記憶和注意機制的某些形式以處理程式執行過程中的狀態。
- 論文:神經圖靈機(Neural Turing Machines)
Nonlinearity 非線性
- 參見啟用函式(Activation Function)。
NCE:Noise-Contrastive Estimation 噪音對比估計
噪音對比估計是一種通常被用於訓練帶有大輸出詞彙的分類器的取樣損失(sampling loss)。在大量的可能的類上計算 softmax 是異常昂貴的。使用 NCE,我們可以將問題降低成二元分類問題,這可以通過訓練分類器區別對待取樣和「真實」分佈以及人工生成的噪聲分佈來實現。
- 論文:噪音對比估計:一種用於非標準化統計模型的新估計原理(Noise-contrastive estimation: A new estimation principle for unnormalized statistical models )
- 論文:使用噪音對比估計有效地學習詞向量(Learning word embeddings efficiently with noise-contrastive estimation)
Pooling 池化
參見最大池化(Max-Pooling)或平均池化(Average-Pooling)。
RBN:Restricted Boltzmann Machine 受限玻爾茲曼機
RBN 是一種可被解釋為一個隨機人工神經網路的概率圖形模型。RBN 以無監督的形式學習資料的表徵。RBN 由可見層和隱藏層以及每一個這些層中的二元神經元的連線所構成。RBN 可以使用對比散度(contrastive divergence)進行有效的訓練,這是梯度下降的一種近似。
- 第六章:動態系統中的資訊處理:和諧理論基礎
- 論文:受限玻爾茲曼機簡介(An Introduction to Restricted Boltzmann Machines)
RNN:Recurrent Neural Network 迴圈神經網路
RNN 模型通過隱藏狀態(或稱記憶)連續進行相互作用。它可以使用最多 N 個輸入,併產生最多 N 個輸出。比如,一個輸入序列可能是一個句子,其輸出為每個單詞的詞性標註(part-of-speech tag)(N 到 N);一個輸入可能是一個句子,其輸出為該句子的情感分類(N 到 1);一個輸入可能是單個影象,其輸出為描述該影象所對應一系列詞語(1 到 N)。在每一個時間步驟中,RNN 會基於當前輸入和之前的隱藏狀態計算新的隱藏狀態「記憶」。其中「迴圈(recurrent)」這個術語來自這個事實:在每一步中都是用了同樣的引數,該網路根據不同的輸入執行同樣的計算。
Recursive Neural Network 遞迴神經網路
遞迴神經網路是迴圈神經網路的樹狀結構的一種泛化(generalization)。每一次遞迴都使用相同的權重。就像 RNN 一樣,遞迴神經網路可以使用向後傳播(backpropagation)進行端到端的訓練。儘管可以學習樹結構以將其用作優化問題的一部分,但遞迴神經網路通常被用在已有預定義結構的問題中,如自然語言處理的解析樹中。
- 論文:使用遞迴神經網路解析自然場景和自然語言(Parsing Natural Scenes and Natural Language with Recursive Neural Networks )
ReLU:Rectified Linear Unit 線性修正單元
即線性修正單元(Rectified Linear Unit)。ReLU 常在深度神經網路中被用作啟用函式。它們的定義是 f(x) = max(0, x) 。ReLU 相對於 tanh 等函式的優勢包括它們往往很稀疏(它們的活化可以很容易設定為 0),而且它們受到梯度消失問題的影響也更小。ReLU 主要被用在卷積神經網路中用作啟用函式。ReLU 存在幾種變體,如Leaky ReLUs、Parametric ReLU (PReLU) 或更為流暢的 softplus近似。
- 論文:深入研究修正器(Rectifiers):在 ImageNet 分類上超越人類水平的效能(Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification)
- 論文:修正非線性改進神經網路聲學模型(Rectifier Nonlinearities Improve Neural Network Acoustic Models )
- 論文:線性修正單元改進受限玻爾茲曼機(Rectified Linear Units Improve Restricted Boltzmann Machines )
ResNet:Residual Network 殘差網路
深度殘差網路(Deep Residual Network)贏得了 2015 年的 ILSVRC 挑戰賽。這些網路的工作方式是引入跨層堆疊的快捷連線,讓優化器可以學習更「容易」的殘差對映(residual mapping)而非更為複雜的原對映(original mapping)。這些快捷連線和 Highway Layer 類似,但它們與資料無關且不會引入額外的引數或訓練複雜度。ResNet 在 ImageNet 測試集中實現了 3.57% 的錯誤率。
- 論文:用於影象識別的深度殘差網路(Deep Residual Learning for Image Recognition)
RMSProp
RMSProp 是一種基於梯度的優化演算法。它與 Adagrad 類似,但引入了一個額外的衰減項抵消 Adagrad 在學習率上的快速下降。
Seq2Seq:Sequence-to-Sequence 序列到序列
序列到序列(Sequence-to-Sequence)模型讀取一個序列(如一個句子)作為輸入,然後產生另一個序列作為輸出。它和標準的 RNN 不同;在標準的 RNN 中,輸入序列會在網路開始產生任何輸出之前被完整地讀取。通常而言,Seq2Seq 通過兩個分別作為編碼器和解碼器的 RNN 實現。神經網路機器翻譯是一類典型的 Seq2Seq 模型。
- 論文:使用神經網路的序列到序列學習(Sequence to Sequence Learning with Neural Networks)
SGD:Stochastic Gradient Descent 隨機梯度下降
隨機梯度下降是一種被用在訓練階段學習網路引數的基於梯度的優化演算法。梯度通常使用反向傳播演算法計算。在實際應用中,人們使用微小批量版本的 SGD,其中的引數更新基於批案例而非單個案例進行執行,這能增加計算效率。vanilla SGD 存在許多擴充套件,包括動量(Momentum)、Adagrad、rmsprop、Adadelta 或 Adam。
Softmax
Softmax 函式通常被用於將原始分數(raw score)的向量轉換成用於分類的神經網路的輸出層上的類概率(class probability)。它通過對歸一化常數(normalization constant)進行指數化和相除運算而對分數進行規範化。如果我們正在處理大量的類,例如機器翻譯中的大量詞彙,計算歸一化常數是很昂貴的。有許多種可以讓計算更高效的替代選擇,包括分層 Softmax(Hierarchical Softmax)或使用基於取樣的損失函式,如 NCE。
TensorFlow
TensorFlow是一個開源 C ++ / Python 軟體庫,用於使用資料流圖的數值計算,尤其是深度神經網路。它是由谷歌建立的。在設計方面,它最類似於 Theano,但比 Caffe 或 Keras 更低階。
TensorFlow是谷歌基於DistBelief進行研發的第二代人工智慧學習系統,其命名來源於本身的執行原理。Tensor(張量)意味著N維陣列,Flow(流)意味著基於資料流圖的計算,TensorFlow為張量從圖象的一端流動到另一端計算過程。TensorFlow是將複雜的資料結構傳輸至人工智慧神經網中進行分析和處理過程的系統。
TensorFlow可被用於語音識別或影象識別等多項機器深度學習領域,對2011年開發的深度學習基礎架構DistBelief進行了各方面的改進,它可在小到一部智慧手機、大到數千臺數據中心伺服器的各種裝置上執行。TensorFlow將完全開源,任何人都可以用。
TensorFlow 表達了高層次的機器學習計算,大幅簡化了第一代系統,並且具備更好的靈活性和可延展性。TensorFlow一大亮點是支援異構裝置分散式計算,它能夠在各個平臺上自動執行模型,從手機、單個CPU / GPU到成百上千GPU卡組成的分散式系統。
從目前的文件看,TensorFlow支援CNN、RNN和LSTM演算法,這都是目前在Image,Speech和NLP最流行的深度神經網路模型。
TPU:Tensor Processing Unit:TensorFlow處理單元
Google在2016年5月谷歌在I/O開發者大會上披露了自行設計的定製晶片—-TPU(Tensor Processing Unit):TensorFlow處理單元,業內也有翻譯為張量處理器。這種晶片是為谷歌的TensorFlow開源深度學習框架專門訂製,而且這個名字靈感也是來源於此。(Tensor是類似矩陣一樣的陣列,在深度計算中往往要進行相乘運算)
TPU之所以具有良好的機器學習能力,是因為這種晶片具有比較寬的容錯性,這就意味著,達到與通用晶片相同的學習效果,TPU不需要通用晶片那樣多的電晶體,不需要通用晶片上那樣多的程式操作步驟,也就是說,相同數量的電晶體,在TPU上能做更多的學習工作。
谷歌研發TPU的意圖並要非取代CPU或者FPGE,谷歌認為,TPU是介於CPU和ASIC (application-specific integrated circuit:應用積體電路)之間的晶片。ASIC用於專門的任務,比如去除噪聲的電路,播放視訊的電路,但是ASIC是明顯的短板是不可更改任務。通用CPU可以通過程式設計來適應各種任務,但是效率能耗比就不如ASIC。一如前邊所言,在機器學習方面,TPU同時具備了CPU與ADIC的特點,可程式設計,高效率,低能耗。
從目前的執行效果來看,TPU每瓦能耗的學習效果和效率都比傳統的CPU、GPU高出一個數量級,達到了摩爾定律預言的七年後的CPU的執行效果。
據谷歌介紹,TPU已在谷歌的資料中心運行了一年多,表現非常好。事實上,谷歌的很多應用都用到了TPU,比如谷歌街景,以及AlphaGo等。谷歌稱,在AlphaGo戰勝李世石的系列賽中,TPU能讓AlphaGo”思考”更快,”想”到更多棋招、更好地預判局勢。
Theano
Theano 是一個讓你可以定義、優化和評估數學表示式的 Python 庫。它包含許多用於深度神經網路的構造模組。Theano 是類似於 TensorFlow 的低級別庫。更高級別的庫包括Keras 和 Caffe。
Vanishing Gradient Problem 梯度消失問題
梯度消失問題出現在使用梯度很小(在 0 到 1 的範圍內)的啟用函式的非常深的神經網路中,通常是迴圈神經網路。因為這些小梯度會在反向傳播中相乘,它們往往在這些層中傳播時「消失」,從而讓網路無法學習長程依賴。解決這一問題的常用方法是使用 ReLU 這樣的不受小梯度影響的啟用函式,或使用明確針對消失梯度問題的架構,如LSTM。這個問題的反面被稱為梯度爆炸問題(exploding gradient problem)。
- 論文:訓練迴圈神經網路的困難之處(On the difficulty of training Recurrent Neural Networks)
VGG
VGG 是在 2014 年 ImageNet 定位和分類比賽中分別斬獲第一和第二位置的卷積神經網路模型。這個 VGG 模型包含 16-19 個權重層,並使用了大小為 3×3 和 1×1 的小型卷積過濾器。
- 論文:用於大規模影象識別的非常深度的卷積網路(Very Deep Convolutional Networks for Large-Scale Image Recognition)
word2vec
word2vec 是一種試圖通過預測文件中話語的上下文來學習詞向量(word embedding)的演算法和工具 (https://code.google.com/p/word2vec/)。最終得到的詞向量(wordvector)有一些有趣的性質,例如vector(‘queen’) ~= vector(‘king’) – vector(‘man’) + vector(‘woman’) (女王~=國王-男人+女人)。兩個不同的目標函式可以用來學習這些嵌入:Skip-Gram 目標函式嘗試預測一個詞的上下文,CBOW 目標函式則嘗試從詞上下文預測這個詞。
- 論文:向量空間中詞彙表徵的有效評估(Efficient Estimation of Word Representations in Vector Space)
- 論文:分散式詞彙和短語表徵以及他們的組合性(Distributed Representations of Words and Phrases and their Compositionality)
- 論文:解釋 word2vec 引數學習(word2vec Parameter Learning Explained)
-
第二部分:
-
連結:https://zhuanlan.zhihu.com/p/21284064
activation 啟用值activation function 啟用函式additive noise 加性噪聲autoencoder 自編碼器Autoencoders 自編碼演算法average firing rate 平均啟用率average sum-of-squares error 均方差backpropagation 後向傳播basis 基basis feature vectors 特徵基向量batch gradient ascent 批量梯度上升法Bayesian regularization method 貝葉斯規則化方法Bernoulli random variable 伯努利隨機變數bias term 偏置項binary classfication 二元分類class labels 型別標記concatenation 級聯conjugate gradient 共軛梯度contiguous groups 聯通區域convex optimization software 凸優化軟體convolution 卷積cost function 代價函式covariance matrix 協方差矩陣DC component 直流分量decorrelation 去相關degeneracy 退化demensionality reduction 降維derivative 導函式diagonal 對角線diffusion of gradients 梯度的彌散eigenvalue 特徵值eigenvector 特徵向量error term 殘差feature matrix 特徵矩陣feature standardization 特徵標準化feedforward architectures 前饋結構演算法feedforward neural network 前饋神經網路feedforward pass 前饋傳導fine-tuned 微調first-order feature 一階特徵forward pass 前向傳導forward propagation 前向傳播Gaussian prior 高斯先驗概率generative model 生成模型gradient descent 梯度下降Greedy layer-wise training 逐層貪婪訓練方法grouping matrix 分組矩陣Hadamard product 阿達馬乘積Hessian matrix Hessian 矩陣hidden layer 隱含層hidden units 隱藏神經元Hierarchical grouping 層次型分組higher-order features 更高階特徵highly non-convex optimization problem 高度非凸的優化問題histogram 直方圖hyperbolic tangent 雙曲正切函式hypothesis 估值,假設identity activation function 恆等激勵函式IID 獨立同分布illumination 照明inactive 抑制independent component analysis 獨立成份分析input domains 輸入域input layer 輸入層intensity 亮度/灰度intercept term 截距KL divergence 相對熵KL divergence KL分散度k-Means K-均值learning rate 學習速率least squares 最小二乘法linear correspondence 線性響應linear superposition 線性疊加line-search algorithm 線搜尋演算法local mean subtraction 區域性均值消減local optima 區域性最優解logistic regression 邏輯迴歸loss function 損失函式low-pass filtering 低通濾波magnitude 幅值MAP 極大後驗估計maximum likelihood estimation 極大似然估計mean 平均值MFCC Mel 倒頻係數multi-class classification 多元分類neural networks 神經網路neuron 神經元Newton's method 牛頓法non-convex function 非凸函式non-linear feature 非線性特徵norm 正規化norm bounded 有界範數norm constrained 範數約束normalization 歸一化numerical roundoff errors 數值舍入誤差numerically checking 數值檢驗numerically reliable 數值計算上穩定object detection 物體檢測objective function 目標函式off-by-one error 缺位錯誤orthogonalization 正交化output layer 輸出層overall cost function 總體代價函式over-complete basis 超完備基over-fitting 過擬合parts of objects 目標的部件part-whole decompostion 部分-整體分解PCA 主元分析penalty term 懲罰因子per-example mean subtraction 逐樣本均值消減pooling 池化pretrain 預訓練principal components analysis 主成份分析quadratic constraints 二次約束RBMs 受限Boltzman機reconstruction based models 基於重構的模型reconstruction cost 重建代價reconstruction term 重構項redundant 冗餘reflection matrix 反射矩陣regularization 正則化regularization term 正則化項rescaling 縮放robust 魯棒性run 行程second-order feature 二階特徵sigmoid activation function S型激勵函式significant digits 有效數字singular value 奇異值singular vector 奇異向量smoothed L1 penalty 平滑的L1範數懲罰Smoothed topographic L1 sparsity penalty 平滑地形L1稀疏懲罰函式smoothing 平滑Softmax Regresson Softmax迴歸sorted in decreasing order 降序排列source features 源特徵sparse autoencoder 消減歸一化Sparsity 稀疏性sparsity parameter 稀疏性引數sparsity penalty 稀疏懲罰square function 平方函式squared-error 方差stationary 平穩性(不變性)stationary stochastic process 平穩隨機過程step-size 步長值supervised learning 監督學習symmetric positive semi-definite matrix 對稱半正定矩陣symmetry breaking 對稱失效tanh function 雙曲正切函式the average activation 平均活躍度the derivative checking method 梯度驗證方法the empirical distribution 經驗分佈函式the energy function 能量函式the Lagrange dual 拉格朗日對偶函式the log likelihood 對數似然函式the pixel intensity value 畫素灰度值the rate of convergence 收斂速度topographic cost term 拓撲代價項topographic ordered 拓撲秩序transformation 變換translation invariant 平移不變性trivial answer 平凡解under-complete basis 不完備基unrolling 組合擴充套件unsupervised learning 無監督學習variance 方差vecotrized implementation 向量化實現vectorization 向量化visual cortex 視覺皮層weight decay 權重衰減weighted average 加權平均值whitening 白化zero-mean 均值為零