這些深度學習術語,你瞭解多少?(上)
對於一個新手來說,深度學習術語可能非常難以理解。本表試圖解釋深度學習常用術語並連結到原始參考,以幫助讀者深入瞭解特定主題。
深度學習與“一般”的機器學習術語之間的界限非常模糊。例如,我這裡不包括“交叉驗證”,因為它是一種通用技術,用於整個機器學習。但是,我加入了 或 等術語,因為它們通常與深度學習相關,即使它們不是深度學習技術。
啟用函式
為了讓神經網路學習複雜的決策邊界,我們將非線性啟用函式應用於其某些層。常用的函式包括 、 、 及它們的變體。
Adadelta
Adadelta是一種基於梯度下降的學習演算法,可以隨時間調整每個引數的學習速率。它被認為是對 的改進,因為 對超引數很敏感,並且可能過於快速的降低學習速度。Adadelta類似於 ,可以用來代替樸素 。
相關資源:
1、
2、
3、
Adagrad
Adagrad是一種自適應學習速率演算法,它可以跟隨時間變化,並自動調整每個引數的學習速率。它可以代替vanilla SGD使用,並且對稀疏資料特別有用,它可以為不經常更新的引數分配更高的學習率。
相關資源:
1、
2、
3、
Adam
Adam是一種類似於 的自適應學習速率演算法,但是使用梯度的第一和第二時刻的執行平均值直接估計更新,並且還包括偏差校正項。
1、
2、
Affine layer(仿射層)
一種神經網路中的完全連線層。仿射意味著前一層中的每個神經元都連線到當前層中的每個神經元。在許多情況下,這是神經網路的“標準”層。在進行最終預測之前,通常會在 或 的輸出之上新增仿射層。仿射層通常形式的y=f(Wx+b),其中x是該層的輸入,W引數,b偏置向量,f是非線性 。
注意力機制
注意力機制受到人類視覺注意力機制的啟發,即關注影像特定部分的能力。注意力機制可以應用在語言處理和影像識別架構中,以幫助網路瞭解在進行預測時“關注”的內容。
1、
Alexnet
Alexnet是一種卷積神經網路架構的名稱,它以絕對的優勢贏得了ILSVRC 2012競賽。它由五個卷積層組成,其中一些後面是最大池層,三個是完全連線的層,最後是1000-way softmax。Alexnet在 深度卷積神經網路的ImageNet分類中 被引入。
自動編碼器
自動編碼器是一種神經網路模型,其目標是預測輸入本身,通常是透過網路中某處的“瓶頸”。透過引入瓶頸,我們可以強制網路輸入的低維表示,這樣能有效地將輸入壓縮為更好的表示。自動編碼器與PCA和其他降維技術差不多,但由於其非線性的特性,它可以學習更復雜的對映。而且存在很多種自動 器架構,包括 、 或 。
平均池(Average-Pooling)
Average-Pooling是用於影像識別的卷積神經網路的 技術。它的工作原理是在一系列特徵(例如畫素)上滑動視窗,並獲取視窗內所有值的平均值。它可以將輸入壓縮為較低維表示。
反向傳播
反向傳播是一種有效計算神經網路中梯度的演算法,更一般地說,是一種前饋計算圖。可以把它歸結為從網路輸出開始應用差異化的鏈規則並向後傳播梯度,反向傳播的第一次使用可以追溯到1960年代的Vapnik。
1、
反向傳播時間(BPTT)
Backpropagation Through Time( )是應用於遞迴神經網路(RNN)的 。BPTT可被視為應用於RNN的標準反向傳播演算法,其中每個時間步長代表一個層,並且引數在各層之間共享。由於RNN在所有時間步驟中共享相同的引數,因此必須將“一段時間”的錯誤“透過時間”反向傳播到所有先前的時間步驟,因此名稱。當處理長序列時,經常使用Truncated-BPTT來降低計算成本。Truncated-BPTT在固定步數後停止反向傳播錯誤。
1、
批次標準化(Batch Normalization)
批次標準化是一種對每個小批次的層輸入進行標準化的技術。它加快了訓練的速度,允許使用更高的學習率。目前已經發現批次標準化對卷積和前饋神經網路非常有效,但尚未成功應用於遞迴神經網路。
1、
2、
雙向RNN
雙向RNN是一種神經網路,包含兩個進入不同方向的 。前向RNN從開始到結束讀取輸入序列,而後向RNN從結束到開始讀取輸入序列。兩個RNN堆疊在彼此之上,並且通常透過附加兩個向量來組合它們的狀態。雙向RNN通常用於自然語言問題,因為希望在進行預測之前考慮單詞之前和之後的上下文。
1、
Caffe
是伯克利視覺和學習中心開發的深度學習框架,Caffe在視覺任務和 模型中特別受歡迎。
分類交叉熵損失(Categorical Cross-Entropy Loss)
分類交叉熵損失也稱為負對數似然,它是分類問題中流行損失函式,它可以測量兩個機率分佈之間的相似性,通常是真實標籤和預測標籤。它由真實標籤的機率分佈L =-sum(y * log(y_prediction))在何處給出,y_prediction是預測標籤的機率分佈,通常來自 。
通道(Channel)
向Deep Learning模型輸入資料可以有多個通道。一般的影像是具有紅色、綠色和藍色通道。影像可以表示為三維張量,其尺寸對應於通道、高度和寬度。自然語言資料也可以具有多個通道,例如以不同型別的 的形式。
卷積神經網路(CNN,ConvNet)
CNN使用 來連線輸入的區域性區域的提取特徵。大多數CNN都包含卷積, 和 層。CNN已經越來越受歡迎,特別是他們在視覺識別任務方面的出色表現。
1、
2、
深度信念網路(DBN)
DBN是一種機率圖形模型,其以無監督的方式學習資料的分層表示。DBN由多個隱藏層組成,每個連續的層中的神經元之間具有連線。 是透過將多個 堆疊 並逐個訓練來構建的。
1、
DeepDream
Google發明的一種技術,旨在提煉深層卷積神經網路捕獲的知識。該技術可以生成新影像或者轉換現有影像並賦予它們夢幻般的風格。
Dropout
Dropout是神經網路的正則化技術,可防止過度擬合。它透過在每次訓練迭代中將它們的一部分隨機設定為0來防止神經元過度適應。可以以各種方式解釋丟失,例如從指數數量的不同網路中隨機取樣。Dropout層首先透過在 的使用而獲得普及,但此後已應用於其他層。
1、
2、
嵌入(Embedding)
嵌入是將輸入(例如單詞或句子)對映到向量中。有一種流行的嵌入型別是word嵌入,例如 或 。它們可以嵌入句子,段落或影像。例如,透過將影像及其文字描述對映到公共嵌入空間並最小化它們之間的距離,我們可以將標籤與影像匹配。嵌入可以明確地學習,例如在 ,也作為監督任務的一部分,例如情感分析。通常,網路的輸入層用預先訓練的嵌入進行初始化,然後將其 到手頭的任務。
梯度爆炸問題
梯度爆炸問題正好與 相反。在深度神經網路中,梯度可能在反向傳播期間爆炸,導致數量溢位。處理梯度爆炸的常用技術是執行梯度裁剪。
1、
微調
微調是指使用來自其他任務(例如無人監督的訓練任務)的引數初始化網路,然後根據手頭的任務更新這些引數的技術。例如,NLP架構通常使用像 這樣的預訓練詞嵌入模型,然後在訓練期間根據諸如情感分析之類的特定任務更新這些詞嵌入模型。
梯度裁剪
梯度裁剪是一種防止在非常深的網路中 的技術。執行梯度裁剪有很多方式,但常見的是當引數向量的L2範數超過某個閾值時歸一化引數向量的梯度new_gradients=gradients * threshold/l2_norm(gradients)。
手套(GloVe)
是一種用於獲得單詞的向量表示( )的無監督學習演算法。GloVe向量與word2vec具有相同的目的,但由於受到共現統計的訓練,因此具有不同的向量表示。
1、
GoogleLeNet
它是贏得ILSVRC 2014挑戰的卷積神經網路架構。網路使用 來減少引數並提高網路內計算資源的利用率。
GRU
門控迴圈單元是LSTM單元的簡化版本,引數較少。就像LSTM單元一樣,它使用門控機制防止RNN透過出現 。GRU由一個復位門和更新門組成,用於確定舊儲存器的哪一部分與當前時間步的新值保持一致。
1、
2、 迴圈神經網路教程-使用Python和Theano實現GRU/LSTM RNN
初始模組
初始模組用於卷積神經網路,透過堆疊1×1卷積降低維數,實現更高效的計算和更深入的網路。
Keras
是一個基於Python的深度學習庫,包含許多用於深度神經網路的高階構建塊。它可以在 、 或 。
LSTM
長短期記憶網路是為了透過使用記憶門控機制來防止遞迴神經網路中的 。使用LSTM單元計算RNN中的隱藏狀態,幫助網路有效地傳播梯度並學習遠端依賴性。
1、
2、 ;
3、 迴圈神經網路教程-使用Python和Theano實現GRU/LSTM RNN ;
Max-pooling
操作通常在卷積神經網路中使用。最大池層會選擇特徵塊中的最大值,就像卷積層一樣,池化層透過視窗大小和步幅大小進行引數化。例如,我們可以使用步幅大小2在10×10特徵矩陣上滑動尺寸為2×2的視窗,在每個視窗內的所有4個值中選擇最大值,從而產生新的5×5特徵矩陣。合併圖層有助於透過僅保留最顯著的資訊來減少表徵的維度,並且在影像輸入的情況下,它們提供轉換的基本不變性(即使影像移動了幾個畫素,也將選擇相同的最大值)。通常在連續的卷積層之間會插入池化層。
MNIST
該 MNIST資料集 是最常用的影像識別資料集。它包括60,000個訓練和10,000個手寫數字測試示例。每個影像大28×28畫素,現有技術模型通常在測試裝置上達到99.5%或更高的精度。
未完待續····
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29829936/viewspace-2219865/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 這些深度學習術語,你瞭解多少?(下)深度學習
- 學習Python,這些你瞭解嗎?Python
- HTTP專業術語,你瞭解多少?HTTP
- 你真的瞭解深度學習嗎?深度學習
- 【純乾貨分享】網路安全這些專業“術語”你瞭解嗎?
- 關於深度學習上的一些術語: Epoch, Batch Size, Iteration深度學習BAT
- 洞見RSA 2021|深度社會工程學攻擊,你瞭解多少?
- 一文帶你瞭解深度學習中的各種卷積(上)深度學習卷積
- excalidraw 這些用法你肯定不瞭解
- 為什麼你學不好Web前端?這些原因你需瞭解Web前端
- GO 語言的併發模式你瞭解多少?Go模式
- 學習筆記:Android這四個你不可不知的知識點,你都瞭解多少?筆記Android
- NIO你真正瞭解多少?
- PPT中這個不起眼的功能你瞭解多少?
- Python為什麼這麼火?你瞭解多少呢?Python
- 這些程式語言值得學習
- Web前端開發怎樣學?你需瞭解這些問題Web前端
- TCP/IP、HTTP、socket 這些,你真的瞭解嗎?TCPHTTP
- Java String 物件,你瞭解多少?Java物件
- 當紅“Serverless”,你瞭解多少?Server
- java異常你瞭解多少Java
- 關於Synchronized你瞭解多少?synchronized
- 這些情況會阻礙你學習Rust語言 - dystroyRust
- 一、你瞭解機器學習技術體系嗎機器學習
- JS錯誤監控 上報後臺你瞭解多少?JS
- Java8新特性,你應該瞭解這些!Java
- 關於資訊保安,這些你都瞭解嗎?
- 機器學習 | 資料歸一化的重要性你瞭解多少?機器學習
- 學習Python,這些你必須搞懂!Python
- 這高階玩意的的內部結構你瞭解多少
- Android Studio3.3你瞭解多少?Android
- 你對CommonJS規範瞭解多少?JS
- 沉浸式展館你瞭解多少?
- 抽象類和介面,你瞭解多少?抽象
- 關於繼承,你瞭解多少?繼承
- 關於深度學習,這些知識點你需要了解一下深度學習
- 解密網路通訊的關鍵技術(上):DNS、ARP、DHCP和NAT,你瞭解多少?解密DNS
- 一文帶你瞭解深度學習中的各種卷積(下)深度學習卷積