深度學習學習筆記

人工智能的主要領域:

1.感知,模擬人的感知能力。語音信息和計算機視覺

2.學習,模擬人的學習能力。監督學習,無監督學習和強化學習

3認知,模擬人的認知能力。自然語言理解,規劃,決策

人工智能的發展歷史:

1.推理期:1956年達特茅斯會議

2.知識期:主要是專家系統

3.學習期:從數據中學習,利用率學習到的規律對數據進行預測。即機器學習。

人工智能流派

1.符號主義:信息用符號表示,符號通過顯示規則來操作。可解釋

2.連接主義:人類的認知是由大量簡單的神經網絡處理過程,而不是符號運算。不可解釋。

機器學習:從有限觀測數據中學習出一半規律,並利用這些規律對數據進行預測的方法。可以分爲淺層和表示學習。還有無監督學習,強化學習,監督學習等。

淺層學習:傳統的機器學習主要關注於如何學習一個預測模型。一般需要首先將數據表示爲一組特徵(Feature),特徵的表示形式可以是連續的數值、離散的符號或其它形式。然後將這些特徵輸入到預測模型,並輸出預測結果。這類機器學習可以看作是淺層學習(Shallow Learning)。淺層學習的一個重要特點是不涉及特徵學習,其特徵主要靠人工經驗或特徵轉換方法來抽取。

特徵工程:由於特徵處理一般都需要人工干預完成,利用人類的經驗來選取好的特徵,並最終提高機器學習系統的性能。因此,很多的機器學習問題變成了特徵工程(Feature Engineering)問題。開發一個機器學習系統的主要工作量都消耗在了預處理、特徵提取以及特徵轉換上。

表示學習:區別於淺層學習,如果有一種算法可以自動地學習出有效的特徵,並提高最終機器學習模型的性能,那麼這種學習就是可以叫做表示學習(Representation Learning)。

語義鴻溝:就是我們輸入的圖片等數據,計算機怎麼學到這些圖片,如何抽象出高層語義信息。
局部表示:通常可以表示爲 one-hot向量的形式。假設所有顏色的名字構成一個詞表 V,詞表大小爲 |V|。我們可以用 one-hot向量。一個 |V|維的 one-hot向量來表示每一種顏色。在第 i種顏色對應的 one-hot向量中,第i維的值爲 1,其它都爲 0。
分佈式表示:向量維度一般都比較低。我們只需要用一個三維的稠密向量就可以表示所有顏色
嵌入
嵌入(Embedding):通常指將一個度量空間中的一些對象映射到另一個低維的度量空間中,並儘可能保持不同對象之間的拓撲關係。比如自然語言中詞的分佈式表示,也經常叫做詞嵌入

深度學習:(Deep Learning, DL)機器學習的一個子問題,其主要目的是從數據中自動學習到有效的特徵表示,
進一步輸入到預測函數得到最終結果。

貢獻度分配問題(Credit Assignment Problem, CAP)深度學習需要解決的關鍵問題是貢獻度分配問題即一個系統中不同的組件(Components)或其參數對最終系統輸出結果的貢獻或影響。

端到端學習(End-to-End Learning),也稱端到端訓練,是指在學習過程中不進行分模塊或分階段進行訓練,直接優化任務的總體目標。大部分採用神經網絡的深度學習也可以看做端到端學習。

神經網絡:通過逐層預訓練來學習一個深度信念網絡,並將其權重作爲一個多層前饋神經網絡的初始化權重,再用反向傳
播算法進行精調。“預訓練 + 精調”的方式可以有效地解決深度神經網絡難以訓練的問題。

模式識別:機器學習問題在早期的工程領域也經常稱爲模式識別(Pattern Recognition,PR),但模式識別更偏向於具體的應用任務,比如光學字符識別、語音識別、人臉識別等。

機器學習的三個基本要素:

1.模型:線性模型,非線性模型(包括神經網絡模型)

2.學習準則:包括:經驗風險最小化準則,結構風險最小化準則

單次預測的誤差                          損失函數(01損失,平方損失,交叉熵損失)
多次預測的誤差均值                   代價函數(經驗風險
全部樣本預測的誤差均值            期望風險,但是期望風險是全局的不可求的,
取而代之的事局部的經驗風險  
經驗風險+正則項(懲罰項) = 結構風險(目標函數)

3.優化算法:梯度下降,提前停止,

參數和超參數:有一類參數是用來定義模型結構或優化策略的,這類參數叫做超參數(Hyper-Parameter)。 在貝葉斯方法中,超參數可以理解爲參數的參數,即控常見的超參數包括:聚類算法中的類別個數、梯度下降法中的步長、正則化 制模型參數分佈的參數。項的係數、神經網絡的層數、支持向量機中的核函數等。超參數的選取一般都是組合優化問題,很難通過優化算法來自動學習。因此,超參數優化是機器學習的一個經驗性很強的技術。

梯度下降:通過求導求得結果最優的參數。

提前停止:如果在驗證集上的錯誤率不再下降,就停止迭代。這種策略叫提前停止(EarlyStop)。如果沒有驗證集,可以在訓練集上劃分出一個小比例的子集作爲驗證集

批量梯度下降法(Batch Gradient Descent, BGD):目標函數是整個訓練集上風險函數,這種方式稱爲批量梯度下降法。批量梯度下降法在每次迭代時需要計算每個樣本上損失函數的梯度並求和。

隨機梯度下降:隨機梯度下降相當於在批量梯度下降的梯度上引入了隨機噪聲。當目標函數非凸時,反而可以使其逃離局部最優點。

批量梯度下降和隨機梯度下降之間的區別在於每次迭代的優化目標是對所有樣本平均損失函數還是單個樣本損失函數

小批量梯度下降法:將全部訓練數據分爲幾部分,計算各個部分的損失函數。

偏差-方差分解(Bias-Variance Decomposition)

如何在模型的擬合能力和複雜度之間取得一個較好的平衡,對一個機器學習算法來講十分重要。 偏差-方差分解爲我們提供一個很好的分析和指導工具。

偏差(Bias),是指一個模型在不同訓練集上的平均性能和最優模型的差異,可以用來衡量一個模型的擬合能力

方差(Variance),是指一個模型在不同訓練集上的差異,可以用來衡量一個模型是否容易過擬合

當一個模型在訓練集上的錯誤率比較高時,說明模型的擬合能力不夠,偏差比較高。這種情況可以通過增加數據特徵、提高模型複雜度、減少正則化係數等操作來改進模型。

當模型在訓練集上的錯誤率比較低,但驗證集上的錯誤率比較高時,說明模型過擬合,方差比較高。

詞袋模型:詞袋模型將文本看做是詞的集合,不考慮詞序信息,不能精確地表示文本信息。

特徵學習:如何讓機器自動地學習出有效的特徵也成爲機器學習中的一項重要研究內容,稱爲特徵學習(Feature Learning),也叫表示學習(Representation Learning)

傳統的特徵學習:包括特徵選擇和特徵提取

特徵選擇:

過濾式子集搜索:每次增加最有信息量的特徵,或刪除最沒有信息量的特徵,不依賴與具體的機器學習模型。

包裹時子集搜索:每次增加對後續機器學習模型最有用的特徵,或刪除對後續機器學習任務最無用的特徵

特徵提取:監督的特徵學習:抽取對一個特定的預測任務最有用的特徵。無監督的特徵學習和具體任務無關,其目標通常是減少冗餘信息和噪聲
深度學習評價指標:查全率和查準率。

機器學習的理論:

可能近似正確(ProbablyApproximately Correct,PAC)學習理論:一個 PAC 可學習的算法是指該學習算法能夠在多項式時間內從合理數量的訓練數據中學習到一個近似正確的 f(x)。

沒有免費午餐定理(No Free Lunch Theorem, NFL)對於基於迭代的最優化算法,不存在某種算法對所有問題(有限的搜索空間內)都有效。

奧卡姆剃刀(Occam’s Razor)簡單的模型泛化能力更好。如果有兩個性能相近的模型,我們應該選擇更簡單的模型。

歸納偏置(Inductive Bias):在機器學習中,很多學習算法經常會對學習的問題做一些假設,這些假設就稱爲歸納偏置。(歸納偏置在貝葉斯學習中也經常稱爲先驗(Priors))

線性模型:二分類,多分類。

激活函數(Activation Function),其作用是把線性函數的值域從實數區間“擠壓”到了 (0, 1)之間

Logistic迴歸(Logistic Regression, LR)是一種常用的處理二分類問題的線性模型。y = σ(wTx)連續的線性函數

Softmax 迴歸(Softmax Regression),也稱爲多項(Multinomial)或多類(Multi-Class)的 Logistic迴歸,是 Logistic迴歸在多分類問題上的推廣。y = softmax(wTx),

感知器(Perceptron)由 Frank Roseblatt於 1957年提出,是一種廣泛使用的線性分類器。感知器可謂是最簡單的人工神經網絡,只有一個神經元。y = sgn(wTx),是不連續的線性函數

支持向量機(Support Vector Machine,SVM)是一個經典兩類分類算法,其找到的分割超平面具有更好的魯棒性,因此廣泛使用在很多任務上,並表現出了很強優勢。支持向量機還有一個重要的優點是可以使用核函數(Kernel Function)
式地將樣本從原始特徵空間映射到更高維的空間,並解決原始特徵空間中的線性不可分問題。wx+b = 0;

對應的損失函數:

Logistic迴歸的損失函數可以改寫爲                L= (1-yf(x;w))^2
感知器的損失函數爲:                                      Lp = max (0, -yf(x; w)
軟間隔支持向量機的損失函數爲                     Lhinge = max( 0, 1 - yf(x; w))
平方損失可以重寫爲                                       Lsquared =( 1 - yf(x; w))^2.

 

神經網絡

 

飽和:對於函數 f(x),若 x → -∞時,其導數 f ′(x) → 0,則稱其爲左飽和。若 x → +∞時,其導數 f ′(x) → 0,則稱其爲右飽和。當同時滿足左、右飽和時,就稱爲兩端飽和。

零中心化:Tanh 函數的輸出是零中心化的(Zero-Centered),而 Logistic函數的輸出恆大於 0。非零中心化的輸出會使得其後一層的神經元的輸入發生偏置偏移(Bias Shift),並進一步使得梯度下降 的收斂速度變慢

激活函數種類

Sigmoid 型函數:

 

 

第二類:relu函數:

 

優點 採用 ReLU 的神經元只需要進行加、乘和比較的操作,計算上更加高效;相比於 Sigmoid型函數的兩端飽和, ReLU函數爲左飽和函數,且在 x > 0時導數爲 1,在一定程度上緩解了神經網絡的梯度消失問題,加速梯 度下降的收斂速度

缺點 ReLU函數的輸出是非零中心化的,給後一層的神經網絡引入偏置偏移,會ReLU 神經元指採用 ReLU 影響梯度下降的效率。

第三類swish函數:

 

以看作是一種軟性的門控機制。當 σ(βx)接近於 1時,門處於“開”狀態,激活函數的輸出近似於x本身;當σ(βx)接近於 0時,門的狀態爲“關”,激活函數的輸出近似於 0。

第四類: 高斯誤差線性單元

當使用 Logistic函數來近似時,GELU相當於一種特殊的 Swish函數。

第五類:MaxOut單元:Maxout單元的輸入是上一層神經元的全部原始輸出,是一個向量 x = [x1; x2; · · · ; xd]。每個 Maxout單元有K 個權重向量 wk ∈ Rd 和偏置bk

神經網絡分類:

1.前饋網絡;整個網絡中的信息是朝一個方向傳播,沒有反向的信息傳播

2.記憶網絡:和前饋網絡相比,記憶網絡中的神經元具有記憶功能,在不同的時刻有不同的狀態信息傳播可以是單向或雙向傳遞

3。圖網絡是定義在圖結構數據上的神經網絡 。圖中每個節點都由一個或一組神經元構成。節點之間的連接可以是有向的,也可以是無向

 

靜態計算圖動態計算圖 計算圖按構建方式可以分爲靜態計算圖和動態計算圖。靜態計算圖是在編譯時構建計算圖,計算圖構建好之後在程序運行時不能改變,而動態計算圖是在程序運行時動態構建。兩種構建方式各有優缺點。靜態計算圖在構建時可以進行優化,並行能力強,但靈活性比較差。動態計算圖則不容易優化,當不同輸入的網絡結構不一致時,難以並行計算,但是靈活性比較高。在目前深度學習框架裏, Theano 和 Tensorflow 採用的是靜態計算圖,而DyNet、Chainer和 PyTorch採用的是動態計算圖。

非凸優化問題  神經網絡的優化問題是一個非凸優化問題

梯度消失:由於 Sigmoid 型函數的飽和性,飽和區的導數更是接近於 0。這樣,誤差經過每一層傳遞都會不斷衰減。當網絡層數很深時,梯度就會不停衰減,甚至消失,使得整個網絡很難訓練。這就是所謂的梯度消失問題(Vanishing Gradient
Problem),也稱爲梯度彌散問題。,減輕梯度消失問題的方法有很多種。一種簡單有效的方是使用導數比較大的激活函數,比如 ReLU等。

卷積神經網絡

(Convolutional Neural Network, CNN或 ConvNet)是一種具有局部連接、權重共享等特性的深層前饋神經網絡,用 卷積來代替全連接。

局部連接 在卷積層(假設是第 l 層)中的每一個神經元都只和下一層(第 l - 1層)中某個局部窗口內的神經元相連,構成一個局部連接網絡

權重共享:作爲參數的濾波器 w(l) 對於第 l 層的所有的神經元都是相同的

感受野(Receptive Field)主要是指聽覺、視覺等神經系統中一些神經元的特性,即神經元只接受其所支配的刺激區域內的信號

卷積神經網絡一般是由卷積層、匯聚層和全連接層交叉堆疊而成的前饋神經網絡,使用反向傳播算法進行訓練。

卷積神經網絡有三個結構上的特性: 局部連接、 權重共享以及匯聚。這些特性使得卷積神經網絡具有一定程度上的平移、縮放和旋轉不變性。和前饋神經網絡相比,卷積神經網絡的參數更少

卷積的主要功能是在一個圖像(或某種特徵)上滑動一個卷積核(即濾波器),通過卷積操作得到一組新的特徵。在計算卷積
的過程中,需要進行卷積核翻轉

互相關和卷積的區別僅僅在於卷積核是否進行翻轉。因此互相關也可以稱爲不翻轉卷積。

 

二維卷積:

一幅圖像在經過卷積操作後得到結果稱爲特徵映射(Feature Map)

卷積的變種:

濾波器的步長(Stride)是指濾波器在滑動時的時間間隔
零填充(Zero Padding)是在輸入向量兩端進行補零

窄卷積(Narrow Convolution):步長 s = 1,兩端不補零 p = 0,卷積後輸出長度爲 n - m + 1。
• 寬卷積(Wide Convolution):步長 s = 1,兩端補零 p = m - 1,卷積後輸出長度 n + m - 1。
• 等寬卷積(Equal-Width Convolution
):步長 s = 1,兩端補零 p = (m -1)/2,卷積後輸出長度 n

卷積層的作用是提取一個局部區域的特徵,不同的卷積核相當於不同的特徵提取器

匯聚層(Pooling Layer)也叫子採樣層(Subsampling Layer),其作用是進行特徵選擇,降低特徵數量,從而減少參數數量。匯聚(Pooling)是指對每個區域進行下采樣(Down Sampling)得到一個值,作爲這個區域的概括,常用的匯聚函數有最大匯聚和平均匯聚。

總結:卷積是減少連接數,最大池化減少特徵數。

幾個典型的網絡:

 

殘差網絡(Residual Network, ResNet)是通過給非線性的卷積層增加直連邊(的)方式來提高信息的傳播效率。

殘差網絡就是將很多個殘差單元串聯起來構成的一個非常深的網絡

反捲積:我們將低維特徵映射到高維特徵的卷積操作稱爲轉置卷積(Transposed Convolution,也稱爲反捲積

循環神經網絡:

循環神經網絡(Recurrent Neural Network, RNN)是一類具有短期記憶能力的神經網絡。在循環神經網絡中,神經元不但可以接受其它神經元的信息,也可以接受自身的信息,形成具有環路的網絡結構.

簡單循環網絡增加了從隱藏層到隱藏層的反饋連接

延時神經網絡是在前饋網絡中的非輸出層都添加一個延時器

有外部輸入的非線性自迴歸模型NARX:是自迴歸模型的擴展,在每個時刻 t都有一個外部輸入 xt,產生一個輸出 yt。NARX通過一個延時器記錄最近幾次的外部輸入和輸出,第 t個時刻的輸出 yt 爲yt = f(xt, xt-1, · · · , xt-p, yt-1, yt-2, · · · , yt-q), 其中 f(·)表示非線性函數,可以是一個前饋網絡,p和 q 爲超參數.

上面兩幅圖的區別在,第二幅圖是第一幅圖的具體化。

循環神經網絡在學習過程中的主要問題是梯度消失或爆炸問題,很難建模長時間間隔(Long Range)的狀態之間的依賴關係

梯度爆炸 一般而言,循環網絡的梯度爆炸問題比較容易解決,一般通過權重衰減梯度截斷來避免。

基於門控的循環神經網絡:

LSTM:長短期記憶(Long Short-Term Memory, LSTM)網絡是循環神經網絡的一個變體,可以有效地解決簡單循環神經網絡的梯度爆炸或消失問題.新的內部狀態 LSTM 網絡引入一個新的內部狀態(internal state) ct 專門進行線性的循環信息傳遞,同時(非線性地)輸出信息給隱藏層的外部狀態 ht。

記憶單元 c中保存信息的生命週期要長於短期記憶 h,但又遠遠短於長期記憶, 長短期記憶是指長的“短期記憶”。因此稱爲長短期記憶.
門控機制 在數字電路中, 門(Gate)爲一個二值變量 {0, 1}, 0代表關閉狀態,不許任何信息通過;1代表開放狀態,允許所有信息通過.

 

門控循環單元(Gated Recurrent Unit, GRU)網絡是一種比 LSTM網絡更加簡單的循環神經網絡。GRU 網絡引入門控機制來控制信息更新的方式。和 LSTM 不同, GRU 不引入額外的記憶單元, GRU 網絡引入一個更新門(Update Gate)來控制當前狀態需要從歷史狀態中保留多少信息(不經過非線性變換),以及需要從候選狀態中接受多少新信息。

堆疊循環神經網絡:一種常見的做法是將多個循環網絡堆疊起來,稱爲堆疊循環神經網絡(StackedRecurrent Neural Network, SRNN)。一個堆疊的簡單循環網絡(Stacked SRN)也稱爲循環多層感知器


雙向循環神經網絡(Bidirectional Recurrent Neural Network, Bi-RNN)由兩層循環神經網絡組成,它們的輸入相同,只是信息傳遞的方向不同。

神經網絡的缺點:

優化問題:神經網絡模型是一個非凸函數,再加上在深度網絡中的梯度消失問題,很難進行優化;另外,深度神經網絡模型一般參數比較多,訓練數據也比較大,會導致訓練的效率比較低。
泛化問題:因爲神經網絡的擬合能力強,反而容易在訓練集上產生過擬合。因此在訓練深度神經網絡時,同時也需要通過一定的正則化方法來改進網絡的泛化能力

優化方法:

小批量梯度下降:

AdaGrad 算法:在標準的梯度下降法中,每個參數在每次迭代時都使用相同的學習率。由於每個參數的維度上收斂速度都不相同,因此根據不同參數的收斂情況分別設置學習率。AdaGrad(Adaptive Gradient)算法是借鑑 ℓ2 正則化的思想,每次迭代時自適應地調整每個參數的學習率.\

RMSprop算法是 Geoff Hinton 提出的一種自適應學習率的方法可以在有些情況下避免 AdaGrad算法中學習率不斷單調下降以至於過載衰減的缺點。RMSProp 算法和 AdaGrad 算法的區別在於 Gt 的計算由累積方式變成了指數衰減移動平均。在迭代過程中,每個參數的學習率並不是呈衰減趨勢,既可以變小也可以變大。

AdaDelta算法也是 AdaGrad算法的一個改進。和 RMSprop算法類似, AdaDelta 算法通過梯度平方的指數衰減移動平均來調整學習率。此外,AdaDelta算法還引入了每次參數更新差∆θ 的平方的指數衰減權移動平均

梯度截斷:在深度神經網絡或循環神經網絡中,除了梯度消失之外,梯度爆炸也是影響學習效率的主要因素。在基於梯度下降的優化過程中,如果梯度突然增大,用大的梯度更新參數反而會導致其遠離最優點。爲了避免這種情況,當梯度的模大於一定閾值時,就對梯度進行截斷,稱爲梯度截斷

超參數的優化,比較簡單的方法有網格搜索、隨機搜索、貝葉斯優化、動態資源分配和神經架構搜索

正則化是通過限制模型複雜度,從而避免過擬合,提高泛化能力的方法,比如引入約束,增加先驗,提前停止,丟棄等。

數據增強:深度神經網絡一般都需要大量的訓練數據才能獲得比較理想的效果。在數據量有限的情況下,可以通過數據增強(Data Augmentation)來增加數據量,提高模型魯棒性,避免過擬合。包括:旋轉,翻轉,縮放,平移,加噪聲。

注意力機制

注意力機制(Attention Mechanism)作爲一種資源分配方案,將有限的計算資源用來處理更重要的信息,是解決信息超載問題的主要手段。可以分爲:聚焦式注意力和顯著的注意力。

一種是自上而下的有意識的注意力,稱爲聚焦式注意力(Focus Attention)。聚焦式注意力也常稱爲選擇性注意力(Selective Attention)。聚焦式注意力是指有預定目的、依賴任務的,主動有意識地聚焦於某一對象的注意力。

另一種是自下而上的無意識的注意力,稱爲基於顯著性的注意力(SaliencyBased Attention)。基於顯著性的注意力是由外界刺激驅動的注意,不需要主動干預,也和任務無關。我們可以將最大匯聚(Max Pooling)、門控(Gating)機制近似地看作是
自下而上的基於顯著性的注意力機制。

注意力機制的計算可以分爲兩步:一是在所有輸入信息上計算注意力分佈,二是根據注意力分佈來計算輸入信息的加
權平均。

注意力分佈 爲了從N 個輸入向量[x1, · · · , xN]中選擇出和某個特定任務相關的信息,我們需要引入一個和任務相關的表示,稱爲查詢向量(Query Vector),並通過一個打分函數來計算每個輸入向量和查詢向量之間的相關性,這叫做注意力分佈。

硬注意力分佈:只關注某一個輸入向量。通常的實現方式有兩種:選取最高概率的一個輸入向量,通過在注意力分佈上隨機採樣的方式實現。
多頭注意力:多頭注意力(Multi-Head Attention)是利用多個查詢Q = [q1, · · · , qM],來平行地計算從輸入信息中選取多組信息。每個注意力關注輸入信息的不同部分。

自注意力機制:?????

外部記憶:爲了增強網絡容量,一種比較簡單的方式是引入結構化的記憶模塊,將和任務相關的短期記憶保存在記憶中,需要時再進行讀取。這種裝備外部記憶的神經網絡也稱爲記憶網絡

集成學習:如adaboost  通過某種策略將多個模型集成,通過羣決策提高準確率。

自測試與協同訓練: 自訓練不斷加入無不愛錢的數據訓練,協同指在相同數據上再增加一個維度。

多任務學習:在同一個數據集上,學習一個任務來優化另一個任務。這些任務是相關的。

遷移學習:源領域的知識,幫助目標領域。

終身學習:過去m個任務上學到的知識應用第M+1個任務並積累M+1個任務的知識。

元學習:從不同任務中歸納一種學習方法。





 


 

 

 

 

 

 


 

 


 


 


 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章