深度学习基本概念笔记
注意力機制(Attention Mechanism):
注意力機制受到人類視覺注意力機制的啟發,即關注圖像特定部分的能力。即當神經網絡發現輸入數據的關鍵信息后,通過學習,在后繼的預測階段對其予以重點關注。
Attention Mechanism可以幫助模型對輸入的X每個部分賦予不同的權重,抽取出更加關鍵及重要的信息,使模型做出更加準確的判斷,同時不會對模型的計算和存儲帶來更大的開銷,這也是Attention Mechanism應用如此廣泛的原因。
對nlp領域,Attention Mechanism的目的是要把一個句子中,對句子的含義最重要,貢獻最大的詞語找出來。
反向傳播
一種有效計算神經網絡中梯度的算法,更一般地說,是一種前饋計算圖。可以把它歸結為從網絡輸出開始應用差異化的鏈規則并向后傳播梯度。
降維
作用是減少數據量和成本,維度越大需要的數據量越多,成本就越高。
Dropout
是神經網絡的正則化技術,可防止過度擬合。它通過在每次訓練迭代中將它們的一部分隨機設置為0來防止神經元過度適應。可以以各種方式解釋丟失,例如從指數數量的不同網絡中隨機采樣。
感受野(Receptive Field):
卷積神經網絡每一層輸出的特征圖(feature map)上的像素點在輸入圖片上映射的區域大小。再通俗點的解釋是,特征圖上的一個點對應輸入圖上的區域。
LSTM
一種時間循環神經網絡,是為了解決一般的RNN存在的長期依賴問題而專門設計出來的。
激活函數:
為了向網絡中加入非線性因素,加強網絡的表示能力,解決線性模型無法解決的問題。常見的有階躍函數、sigmoid函數、ReLU函數。輸出層所用的激活函數:一般回歸問題使用恒等函數,二元分類問題使用sigmoid函數(包括雙曲正切函數等等),多元分類問題可以使用softmax函數。
Adagrad:
一種自適應學習速率算法,它可以跟隨時間變化,并自動調整每個參數的學習速率。它可以代替vanilla SGD使用,并且對稀疏數據特別有用,它可以為不經常更新的參數分配更高的學習率。
Affine layer(仿射層):
一種神經網絡中的完全連接層。仿射意味著前一層中的每個神經元都連接到當前層中的每個神經元。在許多情況下,這是神經網絡的“標準”層。在進行最終預測之前,通常會在卷積神經網絡或遞歸神經網絡的輸出之上添加仿射層。仿射層通常形式的y=f(Wx+b),其中x是該層的輸入,W參數,b偏置向量,f是非線性激活函數。
Adadelta:
一種基于梯度下降的學習算法,可以隨時間調整每個參數的學習速率。它被認為是對Adagrad的改進,因為Adagrad對超參數很敏感,并且可能過于快速的降低學習速度。Adadelta類似于rmsprop,可以用來代替樸素SGD。
Adam:
一種類似于rmsprop的自適應學習速率算法,但是使用梯度的第一和第二時刻的運行平均值直接估計更新,并且還包括偏差校正項。
patch:
在CNN學習訓練過程中,不是一次來處理一整張圖片,而是先將圖片劃分為多個小的塊,卷積核每次只查看圖像的一個小塊,這一小塊就稱為patch,然后通過卷積核移動到圖像的另一個patch。
損失函數:
為了讓神經網絡能自動的學習,一般使用梯度下降法尋找損失函數最小的值,從而尋找到最優參數(權重和偏置)。
BatchNorm()函數:
一般在cnn的卷積層之后添加,主要是對數據進行歸一化處理,這使得數據在進行Relu之前不會因為數據過大而導致網絡性能的不穩定。
輸出層的softmax函數:
將全連接層的輸出結果正規化(將輸出值的和調整為1)后再輸出。
mini-batch學習:
由于訓練數據太多,在所有數據中選一批一批進行學習。
深度學習
深度學習過程也叫端到端的訓練過程。
end-to-end(端到端)的方法,一端輸入我的原始數據,一端輸出我想得到的結果。只關心輸入和輸出,中間的步驟全部都不管。
歸一化(normalization):
對于一維數據有(Xi-Xmin)/(Xmax-Xmin),使數據在相同尺寸,縮放僅僅跟最大、最小值的差別有關。輸出范圍在0-1之間.數據歸一化會使得最優解的尋優過程會變得平緩,更容易正確的收斂到最優解。
標準化(standardization):
對于一維數據有(Xi-u)/σ,縮放和每個點都有關系,通過方差體現出來。與歸一化對比,標準化中所有數據點都有貢獻。輸出范圍是負無窮到正無窮。
歸一化和標準化:
兩者本質上都是一種線性變換。如果對輸出結果范圍有要求,用歸一化。如果數據較為穩定(圖像或是視頻的數據值處于固定區間),不存在極端的最大最小值,用歸一化。如果數據存在異常值和較多噪音,用標準化,可以間接通過中心化避免異常值和極端值的影響。
Batch_size:
每次喂給模型的樣本數量。
Epoch_size
是訓練所有樣本總的次數。Epoch:當一個完整的數據集通過了神經網絡一次并且返回了一次,這個過程稱為一次epoch。訓練時使用多個Epoch可以理解為背誦了詞典多少次。背多了,就記牢了。背得次數太多就過擬合了。
Batch Norm
以進行學習時的mini-batch為單位按mini-batch進行正規化。
張量(Tensor):
是PyTorch里面基礎的運算單位,與Numpy的ndarray相同都表示的是一個多維的矩陣。 與ndarray的最大區別就是,PyTorch的Tensor可以在 GPU 上運行,而 numpy 的 ndarray 只能在CPU上運行,在GPU上運行大大加快了運算速度。
嵌入
將輸入(例如單詞或句子)映射到向量中。有一種流行的嵌入類型是word嵌入,例如word2vec或GloVe。它們可以嵌入句子,段落或圖像。
網絡退化問題:
在神經網絡可以收斂的前提下,隨著網絡深度增加,網絡的表現先是逐漸增加至飽和,然后迅速下降。
殘差網絡:
進行跳層連接,殘差單元可以以跳層連接的形式實現,很好地解決了深度神經網絡的退化問題。
Seq2Seq模型(序列到序列的模型)
屬于Encoder-Decoder模型的一種,是輸出的長度不確定時采用的模型,RNN一個重要的變種:N vs M,原始的N vs N要求序列等長,然而我們遇到的大部分問題序列都是不等長的。
感知機
是二分類的線性分類模型。
多層感知機
是一種人工神經網絡,設定權重的工作需要由人工來進行,又叫全連接前饋神經網絡。
神經網絡
為了解決多層感知機需要人工設定權重的問題出現的,能夠自動地從數據中學習到合適的權重(一般采用梯度下降法來進行反向傳播設置權重),這是和多層感知機最大的區別。
卷積神經網絡
是含有卷積層池化層全連接層的神經網絡。
GAN模型系列
生成對抗模型(GAN)
2014年提出的一種深度學習模型。
卷積神經網絡模型系列
LeNet:
CNN元祖,1998年首次提出,進行手寫數字識別的網絡。
Alexnet:
2012年提出,引發深度學習熱潮的導火線,網絡結構和LeNet沒有太大的不同,但是圍繞它們的環境和計算機技術有了很大的進步。
NiN:
AlexNet問世不久后提出的,可以顯著減小模型參數尺寸,從而緩解過擬合。然而該設計有時會造成獲得有效模型的訓練時間的增加。
GoogLeNet:
2014年提出,Inception采用了模塊化的結構,從另一種角度來提升訓練結果:能更高效地利用計算資源,在相同的計算量下能提取到更多的特征,從而提升訓練結果。
VGG:
2014年提出,結構整潔,拓展性很強,遷移到其他圖片數據上的泛化性非常好。
ResNet:
2015年提出,由于網絡的加深會造成梯度爆炸和梯度消失的問題,為了讓更深的網絡也能訓練出好的效果而提出ResNet。
SqueezeNet:
2017年提出,參數少,模型文件小。
DenseNet:
DenseNet模型主要由DenseBlock和Transition組成,其中:
DenseBlock是由多層模塊組成,每層的特征圖大小相同,層與層之間采用密集相連的。
Transition是連接兩個相鄰的DenseBlock,并通過pooling使得特征圖大小降低,還能起到壓縮模塊的作用。
DenseBlock中的非線性組合函數H()采用的是:BN+Relu+3x3Conv結構。
總結
以上是生活随笔為你收集整理的深度学习基本概念笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 商品房备案表是什么意思(商品房备案表是什
- 下一篇: Pytorch机器学习/深度学习代码笔记