1. 最小化代價函數優化方法:BGD、SGD、MBGD、動量、NAG、Adagrad、AdaDelta、Adam、AMSGrad、牛頓法;
2. 前饋神經網絡的隱藏單元不一定在所有的輸入點上可微;
3. CNN最大池化能產生一定程度的平移不變性;
4. 向量範數表徵向量空間的大小:
1. CNN:LeNet、AlexNet、VGGNet、GoogLeNet、ResNet
2. 數據增強技術:翻轉、裁剪、縮放、顏色抖動、平移
3. Batch Size定義:一次訓練所選取的樣本數。
4. Batch Size影響:影響模型的優化程度和速度。同時其直接影響到GPU內存的使用情況,假如GPU內存不大,該數值最好設置小一點。使得梯度下降方向更加準確
5. 劃分訓練集、驗證集、測試集:訓練集:驗證集:測試集的劃分比例爲6:2:2
6. 一階優化方法:RMSProp
7. 深度學習關係圖
1. 什麼是深度學習:表達學習、可擴展的機器學習、生物神經網絡的近似/粗略實現、人類的監督越來越少、多階段的特徵學習過程、相較於傳統模式識別
2. 激活函數分類
1. 合理的稀疏比例:70~80%,屏蔽特徵過多容易出現欠擬合。
2. 正則化在深度神經網絡訓練時的作用
正則化可以很好的解決模型過擬合的問題,常見的正則化方式有L2正則化和dropout,但是正則化是以犧牲模型的擬合能力來達到平衡的,因此在對訓練集的擬閤中有所損失。
3. L1正則化和L2正則化
L1正則化可以產生稀疏值矩陣,即產生一個稀疏模型,可以用於特徵選擇和解決過擬合。能夠幫助模型找到重要特徵,而去掉無用特徵或影響甚小的特徵。
L2 讓所有特徵的係數都縮小, 但不會減爲0,它會使優化求解穩定快速。所以L2適用於特徵之間沒有關聯的情況。
L2正則化可以防止模型過擬合;一定程度上,L1也可以防止過擬合
4. 激活函數的作用
激活函數給神經元引入了非線性因素,使得神經網絡可以任意逼近任何非線性函數,深層神經網絡表達能力更強大,可以應用到衆多的非線性模型中。
5. Sigmoid函數
特點:它能夠把輸入的連續實值變換爲0和1之間的輸出,特別的,如果是非常大的負數,那麼輸出就是0;如果是非常大的正數,輸出就是1.
缺點:在深度神經網絡中梯度反向傳遞時導致梯度爆炸和梯度消失,其中梯度爆炸發生的概率非常小,而梯度消失發生的概率比較大;Sigmoid 的 output 不是0均值;其解析式中含有冪運算,計算機求解時相對來講比較耗時。
6. Relu函數
特點:解決了gradient vanishing問題 (在正區間);計算速度非常快,只需要判斷輸入是否大於0;收斂速度遠快於sigmoid和tanh
缺點:ReLU的輸出不是0均值;某些神經元可能永遠不會被激活,導致相應的參數永遠不能被更新。
7. AdaGrad算法
AdaGrad算法就是將每一個參數的每一次迭代的梯度取平方累加後在開方,用全局學習率除以這個數,作爲學習率的動態更新。
其中,r爲梯度累積變量,r的初始值爲0。ε爲全局學習率,需要自己設置。δ爲小常數,爲了數值穩定大約設置爲10^-7
8. 優化算法的選擇
如果輸入數據是稀疏的,選擇任一自適應學習率算法可能會得到最好的結果。無需調整學習率,選用默認值就可能達到最好的結果。
RMSprop, Adadelta, 和 Adam 非常相似,在相同的情況下表現都很好。
偏置校驗讓Adam的效果稍微比RMSprop好一點
進行過很好的參數調優的SGD+Momentum算法效果好於Adagrad/Adadelta
如果不知道選擇哪種優化算法,就直接選Adam吧
9. 如何判斷模型過擬合
模型在驗證集合上和訓練集合上表現都很好,而在測試集合上變現很差。過擬合即在訓練誤差很小,而泛化誤差很大,因爲模型可能過於的複雜,
10. 如何防止過擬合
Dropout:神經網絡的每個單元都被賦予在計算中被暫時忽略的概率p,稱爲丟失率,通常將其默認值設置爲0.5。然後,在每次迭代中,根據指定的概率隨機選擇丟棄的神經元。因此,每次訓練會使用較小的神經網絡。
提前停止:讓模型在訓練的差不多的時候就停下來,繼續訓練帶來提升不大或者連續幾輪訓練都不帶來提升的時候,這樣可以避免只是改進了訓練集的指標但降低了測試集的指標。
批量正則化:將卷積神經網絡的每層之間加上將神經元的權重調成標準正態分佈的正則化層,可以讓每一層的訓練都從相似的起點出發,而對權重進行拉伸,等價於對特徵進行拉伸,在輸入層等價於數據增強。
11. 特徵圖數
對於單通道圖像,若利用10個卷積核進行卷積計算,可以得到10個特徵圖;
若輸入爲多通道圖像,則輸出特徵圖的個數依然是卷積核的個數(10個)
12. 多通道多個卷積核卷積計算:
圖片:寬度:32,高度:32,圖片的通道數D;
卷積核:大小5*5,處理的圖片是D通道,因此卷積核是5*55*D。
卷積層維度變化:不填充,步長爲1,輸出的矩陣大小爲32-5+1=28, 32-5+1=28, D
若填充,則分子部分改爲:W-F+2*Padding
卷積後的值:D個channel的所有元素對應相乘後求和
池化層維度變化:大小2*2,步長2.因此輸出大小爲28/2=14,28/2=14,D
參數變化:(((kernel_size)* stride + 1)* filters)
1. 卷積計算過程
可參考21。
此例步長1,且未使用填充,即卷積層維度變化公式:
1.1、輸入(8,8,3);4個卷積核(3,3,3,4);卷積後的輸出Z0:(6,6,4),Z0的每個輸出都是3個channel的所有元素對應相乘後求和;
1.2、 經ReLu激活(6,6,4);
1.3、 若有池化,池化層的計算與卷積層一樣規則;
1. BP反向傳播算法過程
殘差:誤差的偏導數
輸出層→隱藏層:殘差 = -(輸出值-樣本值) * 激活函數的導數
隱藏層→隱藏層:殘差 = (右層每個節點的殘差加權求和)* 激活函數的導數
更新權重:
輸入層:權重增加 = 輸入值 * 右層對應節點的殘差 * 學習率
隱藏層:權重增加 = 當前節點的Sigmoid * 右層對應節點的殘差 * 學習率
偏移值:權重增加 = 右層對應節點的殘差 * 學習率
學習率:一個預先設置好的參數,用於控制每次更新的幅度。
1. 一個矢量化的例子:
1. 幾個BP例子
卷積神經網絡的層次結構及其作用
輸入層->卷積層->激活層->池化層->全連接層
數據輸入層:對原始數據進行初步處理,使卷積神經網絡能有更好的效果
卷積層:提取特徵
激活層:計算結果通過一個激活函數加一個非線性的關係,使能逼近任何函數
池化層:數據壓縮,提取主要特徵,降低網絡複雜度
全連接層:分類器角色,將特徵映射到樣本標記空間,本質是矩陣變換
生成式模型和判別式模型的區別
生成式:由數據學習聯合概率分佈P(X,Y), 然後由P(Y|X)=P(X,Y)/P(X)求出概率分佈P(Y|X)作爲預測的模型,表示了給定輸入X與產生輸出Y的生成關係。從統計的角度表示數據的分佈情況,反映同類數據本身的相似度,不關心判別邊界。
判別式:由數據直接學習決策函數Y=f(X)或條件概率分佈P(Y|X)作爲預測模型,關心的是對於給定的輸入X,應該預測什麼樣的輸出Y。尋找不同類別之間的最優分類面,反映的是異類數據之間的差異。
“梯度下降”的定義
迭代法的一種,可用於求解最小二乘問題,讓梯度中所有偏導函數都下降到最低點的過程。梯度下降法的計算過程就是沿梯度下降的方向求解極小值,也可以沿梯度上升方向求解最大值
簡述和討論“隨機梯度下降算法”
1、隨機梯度下降是每次迭代使用一個樣本來對參數進行更新,使得訓練速度加快。隨機梯度下降算法是爲了解決深度學習中多元目標函數的最優值問題。
2、隨機是指每次迭代過程中,樣本都要被隨機打亂。訓練模型的目的是使得目標函數達到極小值。
3、每次迭代並不是都向着整體最優化方向,導致梯度下降的波動非常大,更容易從一個局部最優跳到另一個局部最優,準確度下降
隨機梯度下降算法終止條件
當前後兩次迭代的差值小於某一值時,即收斂,迭代結束
Momentum算法
參數更新時在一定程度上保留之前更新的方向,同時又利用當前batch的梯度微調最終的更新方向,簡言之就是通過積累之前的動量來加速當前的梯度。能夠加速SGD收斂,抑制震盪。在梯度方向改變時,降低參數更新速度,從而減少震盪;在梯度方向相同時,加速參數更新,從而加速收斂
比較最大似然估計(ML)與最大後驗估計(MAP)的異同點.
最大後驗估計 正比於最大似然估計*先驗概率
損失函數:樣本的誤差 ;代價函數:整個訓練集上所有樣本誤差的平均
目標函數:代價函數 + 正則化項
Mini-batch SGD步驟
對一批數據取樣;前向傳播得到損失;反向傳播計算梯度;使用梯度更新參數
Batch Normalization
通常插入在全連接層或卷積層後,在非線性之前。
1)歸一化後加快了梯度下降求最優解的速度;2)歸一化有可能提高精度
遷移學習
通過從已學習的相關任務中轉移知識來改進學習的新任務。
大數據與少標註的矛盾;大數據與弱計算的矛盾;普適化模型與個性化需求的矛盾;特定應用的需求
分類和迴歸問題比較適合做遷移學習的場景,有標籤的源數據是最好的輔助。
RNN用途
語音識別;機器翻譯;音樂生成;文本生成;文本生成;情感分類;DNA序列分析;視頻行爲識別;實體名字識別
激活函數圖像
完整機器學習項目的流程
抽象成數學問題;獲取數據;特徵預處理與特徵選;訓練模型與調優;模型診斷;模型融合;上線運行
常見的分類算法
SVM、神經網絡、隨機森林、邏輯迴歸、KNN、貝葉斯
常見的監督學習算法
感知機、SVM、人工神經網絡、決策樹、邏輯迴歸