機器學習——神經網路、深度學習 知識點總結 及 面試題彙總
阿新 • • 發佈:2019-01-25
1、反向傳播思想:
計算出輸出與標籤間的損失函式值,然後計算其相對於每個神經元的梯度,根據梯度方向更新權值。
(1)將訓練集資料輸入到ANN的輸入層,經過隱藏層,最後達到輸出層並輸出結果,這是ANN的前向傳播過程;
(2)由於ANN的輸出結果與實際結果有誤差,則計算估計值與實際值之間的誤差,並將該誤差從輸出層向隱藏層反向傳播,直至傳播到輸入層;
(3)在反向傳播的過程中,根據誤差調整各種引數的值;不斷迭代上述過程,直至收斂。
2、無監督逐層訓練:預訓練:每次訓練一層隱結點。訓練時將上一層隱結點的輸出作為輸入,而本層隱結點的輸出作為 下一層隱結點的輸入。在預訓練結束後,再對整個網路進行微調訓練。
3、DNN :指深度神經網路,與RNN迴圈神經網路、CNN卷積神經網路的區別就是,DNN特指全連線的神經元結構,並不包含卷積單元 或時間上的關聯。
一、DBN:(預訓練+微調)
思想:整個網路看成是多個RBM的堆疊,在使用無監督逐層訓練時,首先訓練第一層,然後將第一層預訓練好的隱結點視為第二層的輸入節點,對第二層進行預訓練,各層預訓練完成後,再用BP演算法對整個網路進行訓練。
整體解釋:預訓練+微調 的做法可視為將大量引數分組,對每組先找到區域性看起來比較好的位置,然後再基於這些區域性較優的結果聯合起來進行全域性尋優。好處:利用了模型大量引數所提供的自由度,有效的節省了訓練開銷。
(補充:是一個概率生成模型,與傳統的判別神經網路不同的是,生成模型建立了觀察資料和標籤之間的聯合分佈,而判別模型只評估了條件概率。
DBN遇到的問題:需要為訓練提供一個有標籤的樣本集;學習過程較慢;不適當的引數選擇導致學習收斂於區域性最優解。
)
二、CNN:(區域性感知+權共享機制:讓一組神經元使用相同的連線權) 提出:全連線的結構下會引起引數數量的膨脹,容易過擬合且區域性最優。影象中有固有的區域性模式可以利用,所以,提出了CNN,並不是所有上下層神經元都能直接相連,而是通過“卷積核”作為中介。同一個卷積核在所有影象內都是共享的,影象通過卷積操作後仍然保留原來的位置關係。 複合多個“卷積層”和“取樣層”對輸入訊號進行加工,然後再連線層實現與輸出目標之間的對映。多層的目的:一層卷積學到的特徵往往是區域性的,層數越高,學到的特徵就越全域性化。 CNN兩大神器: 1、區域性感知:一般認為影象的空間聯絡是區域性的畫素聯絡比較密切,而距離較遠的畫素相關性較弱,因此,每個神經元沒必要對全域性影象進行感知,只要對區域性進行感知,然後在更高層將區域性的資訊綜合起來得到全域性資訊。利用卷積層實現: (特徵對映,每個特徵對映是一個神經元陣列):從上一層通過區域性卷積濾波器提取區域性特徵。卷積層緊跟著一個用來求區域性平均與二次提取的計算層,這種二次特徵提取結構減少了特徵解析度。
2、引數共享:在區域性連線中,每個神經元的引數都是一樣的,即:同一個卷積核在影象中都是共享的。(理解:卷積操作實際是在提取一個個區域性資訊,而區域性資訊的一些統計特性和其他部分是一樣的,也就意味著這部分學到的特徵也可以用到另一部分上。所以對影象上的所有位置,都能使用同樣的學習特徵。)卷積核共享有個問題:提取特徵不充分,可以通過增加多個卷積核來彌補,可以學習多種特徵。
3、取樣(池化)層:在通過卷積得到特徵後,希望利用這些特徵進行分類。基於區域性相關性原理進行亞取樣,在減少資料量的同時保留有用資訊。(壓縮資料和引數的量,減少過擬合)(max-polling 和average-polling)
可用BP演算法訓練,訓練中,無論是卷積層還是取樣層,每一組神經元都是用相同的連線權。
優點:限制了引數的個數並挖掘了局部結構的這個特點,減少了複雜度。
(CNN主要用來識別位移、縮放及其他形式扭曲不變性的二維圖形。由於CNN的特徵檢測層通過訓練資料進行學習,所以在使用CNN時,避免了顯示的特徵抽取,而隱式地從訓練資料中進行學習;再者由於同一特徵對映面上的神經元權值相同,所以網路可以並行學習,這也是卷積網路相對於神經元彼此相連網路的一大優勢。卷積神經網路以其區域性權值共享的特殊結構在語音識別和影象處理方面有著獨特的優越性,其佈局更接近於實際的生物神經網路,權值共享降低了網路的複雜性,特別是多維輸入向量的影象可以直接輸入網路這一特點避免了特徵提取和分類過程中資料重建的複雜度)
三、DBN與CNN兩者異同:
異:DBN:全連線,有pre-train過程;CNN:區域性連線,沒有預訓練過程,但加了卷積。
同:無論是DBN還是CNN,這種多隱層堆疊,每層對上一層的輸出進行處理的機制,可看作是在對輸入訊號進行逐層加工,從而把初始的、與輸出目標之間聯絡不大的輸入表示,轉化成與輸出目標聯絡密切的表示。即:通過多層處理,逐漸將初始的低層特徵表示轉化成高層的特徵表示後,用“簡單模型”就可以完成複雜的分類等學習任務。
四、RNN:
提出:DNN存在一個缺陷:無法對時間序列上的變化進行建模,然而,樣本出現的時間順序對於自然語言處理、語音識別等應用很重要;RNN解決了樣本的處理在各個時刻獨立的問題,可以對時間序列上的變化進行建模,深度是時間上的長度。神經元的輸出可以在下一個時間戳直接作用到自身。即,某一層某一時刻神經元的輸入,除了上一層神經元在該時刻的輸出外,還有本身在上一時刻的輸出。
缺點:時間軸上的“梯度消失”,為解決這個問題——>長短時記憶單元LSTM:通過門的開關實現時間上記憶功能,防止梯度消失。
五、LSTM:
核心:模仿一種細胞狀態,類似傳送帶思想,直接在整個鏈上執行,只有一些少量的線性互動,資訊在上面保持不變。利用一種“門”的結構來去除或增加資訊到細胞狀態的能力,有三個門。門:讓資訊選擇通過的方法,包括sigmoid神經網路層和一個點乘操作。
第一步:忘記門層:決定從細胞狀態中丟棄什麼資訊。讀取本層的輸入和上一層的輸出,輸出一個0到1之間的數值給每個細胞狀態。
第二步:確定什麼樣的資訊被存放在細胞狀態中,包含兩個部分:1)sigmoid“輸入門層”,決定什麼值將要更新。2)tanh層,建立一個新的候選值向量。會被加到狀態中。
第三步:更新細胞狀態。基於細胞狀態確定輸出什麼值
面試篇:
理解它們各自的引數代表什麼,比較好的初始引數,BP的計算,以及常見超引數的調整策略。
如何優化模型 : 加速收斂, 避免overfit, 提升精度 ..
- batch size effect;- learning rate effect;- weight initialization effect;- batch normalization
- drop-out;- model average;- fine-tuning;- data augmentation
二、CNN:(區域性感知+權共享機制:讓一組神經元使用相同的連線權) 提出:全連線的結構下會引起引數數量的膨脹,容易過擬合且區域性最優。影象中有固有的區域性模式可以利用,所以,提出了CNN,並不是所有上下層神經元都能直接相連,而是通過“卷積核”作為中介。同一個卷積核在所有影象內都是共享的,影象通過卷積操作後仍然保留原來的位置關係。 複合多個“卷積層”和“取樣層”對輸入訊號進行加工,然後再連線層實現與輸出目標之間的對映。多層的目的:一層卷積學到的特徵往往是區域性的,層數越高,學到的特徵就越全域性化。 CNN兩大神器: 1、區域性感知:一般認為影象的空間聯絡是區域性的畫素聯絡比較密切,而距離較遠的畫素相關性較弱,因此,每個神經元沒必要對全域性影象進行感知,只要對區域性進行感知,然後在更高層將區域性的資訊綜合起來得到全域性資訊。利用卷積層實現:
- CNN最成功的應用是在CV,那為什麼NLP和Speech的很多問題也可以用CNN解出來?為什麼AlphaGo裡也用了CNN?這幾個不相關的問題的相似性在哪裡?CNN通過什麼手段抓住了這個共性?
- 共線性:多變數線性迴歸中,變數之間由於存在高度相關關係而使迴歸估計不準確。
- 共線性會造成冗餘,導致過擬合。
- 解決方法:排除變數的相關性/加入權重正則。