A. 2020-02-14
訓練回歸模型所需要的信息包含-數據、模型、損失函數、優化函數(梯度下降演算法)。
step 1:對數據進行預處理使其可以fit到模型中
step 2:構建模型
step 3:選擇損失函數(回歸模型一般用mse)和優化函數
step 4:迭代訓練模型中的參數,並進行預測
回歸問題轉化為分類問題,分類問題相當於回歸的輸出是多個值。
回歸的輸出是實值可通過softmax將其轉化為對應的概率值,且數組中的最大值所處的index不變。
引用交叉墒損失函數-衡量兩個概率分布差異的測量函數。化簡得最小化交叉熵損失函數等價於最大化訓練數據集所有標簽類別的聯合預測概率。
多個全連接層的stack等價於一個全連接層,問題的根源在於全連接層只是對數據做仿射變換,而多個仿射變換的疊加仍然是一個仿射變換。可以通過解決非線性函數來解決該問題。
非線性激活函數如下:
1、ReLU(rectified linear unit)函數提供了一個很簡單的非線性變換。給定元素,該函數定義為 可以看出,ReLU函數只保留正數元素,並將負數元素清零。
2、Sigmoid函數可以將元素的值變換到0和1之間。 .導數在當輸入為0時,sigmoid函數的導數達到最大值0.25;當輸入越偏離0時,sigmoid函數的導數越接近0。
3、tanh(雙曲正切)函數可以將元素的值變換到-1和1之間。
激活函數的選擇
ReLu函數是一個通用的激活函數,目前在大多數情況下使用。但是,ReLU函數只能在隱藏層中使用。
用於分類器時,sigmoid函數及其組合通常效果更好。由於梯度消失問題,有時要避免使用sigmoid和tanh函數。
在神經網路層數較多的時候,最好使用ReLu函數,ReLu函數比較簡單計算量少,而sigmoid和tanh函數計算量大很多。
在選擇激活函數的時候可以先選用ReLu函數如果效果不理想可以嘗試其他激活函數。
預處理通常包括四個步驟:
現有的分詞工具,nltk.tokenize->word_tokenize;spacy
n元語法,防止序列長度增加,計算和存儲多個詞共同出現的概率的復雜度會呈指數級增加。元語法通過馬爾可夫假設簡化模型,馬爾科夫假設是指一個詞的出現只與前面n個詞相關,即n階馬爾可夫鏈。
元語法可能有哪些缺陷?參數空間過大,數據稀疏
兩種采樣方式,隨機采樣和相鄰采樣。對應的初始化方式不同。
卷積操作前w、h的長度
note: 為卷積後的w長度,p為padding長度,s為步長,k為卷積核大小。
卷積層與全連接層的對比:
二維卷積層經常用於處理圖像,與此前的全連接層相比,它主要有兩個優勢:
一是全連接層把圖像展平成一個向量,在輸入圖像上相鄰的元素可能因為展平操作不再相鄰,網路難以捕捉局部信息。而卷積層的設計,天然地具有提取局部信息的能力。
二是卷積層的參數量更少。
note:卷積核大小和圖像大小相同時等價於全連接層。
訓練誤差:指模型在訓練數據集上表現出的誤差。
泛化誤差:指模型在任意一個測試數據樣本上表現出的誤差的期望,並常常通過測試數據集上的誤差來近似。
target:降低泛化誤差。
數據集可分為:訓練集、測試集、驗證集(模型選擇,例如-超參數)。
note:由於驗證數據集不參與模型訓練,當訓練數據不夠用時,預留大量的驗證數據顯得太奢侈,因此採用k折交叉驗證。
欠擬合是模型無法得到較低的訓練誤差,我們將這一現象稱作欠擬合;
過擬合是模型的訓練誤差遠小於它在測試數據集上的誤差,我們稱該現象為過擬合。
模型復雜度和訓練數據集大小-過擬合及欠擬合的影響
模型復雜度越高越容易發生過擬合;
如果訓練數據集中樣本數過少,特別是比模型參數數量(按元素計)更少時,過擬合更容易發生。此外,泛化誤差不會隨訓練數據集里樣本數量增加而增大。因此,在計算資源允許的范圍之內,我們通常希望訓練數據集大一些。
過擬合的方法:正則化L1和L2及彈性網路,丟棄法-droupout。
當層數較多時,梯度的計算容易出現梯度消失或爆炸。
數據集可能存在的協變數、標簽和概念偏移。
隨著循環神經網路層數的增加可以出現梯度爆炸及消失,對應的使用梯度裁剪解決梯度爆炸。
困惑度是對交叉熵損失函數做指數運算後得到的值,使用它來對語言模型進行判定。特別地,
1、最佳情況下,模型總是把標簽類別的概率預測為1,此時困惑度為1;
2、最壞情況下,模型總是把標簽類別的概率預測為0,此時困惑度為正無窮;
3、基線情況下,模型總是預測所有類別的概率都相同,此時困惑度為類別個數。
encoder:輸入到隱藏狀態
decoder:隱藏狀態到輸出
在訓練時,將decoder的輸出不作為它的屬於。
可以關注到任意長度的字元信息。
有兩種實現方式:點方式和多層感知器方式
Transformer同樣基於編碼器-解碼器架構,其區別主要在於以下三點:
Transformer blocks:將seq2seq模型重的循環網路替換為了Transformer Blocks,該模塊包含一個多頭注意力層(Multi-head Attention Layers)以及兩個position-wise feed-forward networks(FFN)。對於解碼器來說,另一個多頭注意力層被用於接受編碼器的隱藏狀態。
Add and norm:多頭注意力層和前饋網路的輸出被送到兩個「add and norm」層進行處理,該層包含殘差結構以及層歸一化。
Position encoding:由於自注意力層並沒有區分元素的順序,所以一個位置編碼層被用於向序列元素里添加位置信息。
一共包含7層:十分類問題。
卷積6x28x28-平均池化6x14x14-卷積16x10x10-平均池化16x5x5-全連接120-全連接84-全連接10。
卷積神經網路就是含卷積層的網路。 LeNet交替使用卷積層和最大池化層後接全連接層來進行圖像分類。
AlexNet
1×1卷積核作用
1.放縮通道數:通過控制卷積核的數量達到通道數的放縮。
2.增加非線性。1×1卷積核的卷積過程相當於全連接層的計算過程,並且還加入了非線性激活函數,從而可以增加網路的非線性。
3.計算參數少
GoogLeNet