[機器學習]基本概念總結

線性分類器和非線性非類器

  • 線性非類器: 訓練模型是參數的線性函數, 可以使用一個超平面將樣本分類
  • 非線性分類器: 訓練模型是參數的非線性函數, 使用曲面或者多個超平面的組合將樣本分類
    • 邏輯迴歸是線性分類器 , 因爲它本質上是採用線性迴歸的方式, 使用一個超平面將樣本分類, sigmoid函數只是對輸出的結果進行處理, 將它們映射到(0,1)區間上, 同時人爲設定閾值而規定分類的標準. 用來幫助模型的訓練
    • 常見的線性分類器: LR, 單層感知機(Perceptron), SVM(線性核) , 樸素貝葉斯
      • 編程簡單, 速度快, 但是擬合效果可能較差
    • 常見的分線性分類器: 決策樹, SVM(高斯核) , RF, GBDT, 多層感知機(MLP)
      • 編程複雜, 擬合能力強

梯度消失和爆炸

神經網絡訓練中的梯度消失與梯度爆炸 – PENG
詳解機器學習中的梯度消失、爆炸原因及其解決方法 – Double_V_
淺談網絡中梯度爆炸的問題 --阿里云云棲號

  • 深度神經網絡並非是層數越多越好, 層數過多, 其中的殭屍層也會增多(對模型訓練未起作用), 實際起到學習作用的層數並未增多.
  • 反向傳播算法根據的是鏈式求導法則, 求導次數越多, 相乘的單項式也就越多, 當單項式的值都小於1時, 就會造成結果趨於0, 也就是所謂的梯度消失, 這就導致越在前面的隱藏層, 梯度越小, 權重變化也就越小, 甚至可以忽略不計, 因此並沒有起到「學習」的效果;
  • 反之單項式的值都大於1時, 就會造成結果趨於無限大, 即梯度爆炸, 這就導致越在前面的隱藏層, 梯度越大, 權重更新幅度越大, 進而導致網絡不穩定. 極端情況下, 權重的值變得特別大, 會導致結果溢出

前向傳播(FeedForward)和反向傳播(Back Propagation)

一文弄懂神經網絡中的反向傳播法——BackPropagation

  • 前向傳播: 從輸入層開始, 根據訓練模型以及設置的權重和偏差, 一層層的計算, 得到輸出層的結果
  • 反向傳播: 計算前向傳播得到結果的總誤差 (誤差平方和), 從輸出層開始, 一層層地向前計算每一層的權重對總誤差的影響 (總誤差對權重求偏導), 設置學習速率, 使用梯度下降法更新權重值

計算梯度的三種方法

幾種梯度下降法對比
Mini-batch 和batch的區別

  • Batch Gradient Descent: 遍歷全部數據後, 才計算一次損失函數,更新參數, 多次迭代已達到訓練的目的
    • 理想狀態下經過足夠多的迭代後可以達到全局最優
    • 計算量開銷大,計算速度慢,不支持在線學習
  • Stochastic Gradient Descent : 每看一個數劇就會計算一次損失函數, 更新參數.
    • 計算量少, 迭代次數少
    • 每次只用一個樣本來更新參數,不穩定性大, 更新方向可能會在最有點附近震盪
    • 會將數據打亂, 增加「噪音」, 避免陷入局部最優解中
  • Mini Batch : 上述兩種方法的折中, 把全部數據分成若干批, 按批更新損失函數和參數
    • 一批中的一組數據共同決定了更新方向, 減少隨機性
    • 一批的數據量也並不大, 減少計算量

過擬合

在這裏插入圖片描述
該圖轉自用簡單易懂的語言描述「過擬合 overfittingnova avon 的回答

  • 模型的參數過多, 訓練樣本太少, 導致訓練的模型過於複雜, 雖然對訓練數據有很好的擬合效果, 損失函數的只非常小, 但是在測試數據上, 預測準確度極低, 損失函數非常大.
  • 一個參數擬合的一次線性函數, 兩個參數擬合的可能就是曲線, 參數越多擬合的曲線越複雜, 喪失了一般性.

Dropout

深度學習中Dropout原理解析 --Microstrong

  • 爲了解決過擬合問題,一般會採用模型集成的方法,即訓練多個模型進行組合取平均值。此時,訓練模型費時就成爲一個很大的問題,不僅訓練多個模型費時,測試多個模型也是很費時。
  • Dropout就是爲了解決過擬合和費時問題而被提出的
  • 在2012年,Alex、Hinton在其論文《ImageNet Classification with Deep Convolutional Neural Networks》中用到了Dropout算法,用於防止過擬合。並且,這篇論文提到的AlexNet網絡模型引爆了神經網絡應用熱潮,並贏得了2012年圖像識別大賽冠軍,使得CNN成爲圖像分類上的核心算法模型, 因此Dropout 最早的應用就是在CNN中
  • 原理: 隨機刪掉一定數目的隱藏神經元, 對剩餘的神經元進行訓練更新參數; 更新完畢後, 恢復被刪掉的隱藏神經元, 再次隨機刪掉一些, 對未刪掉的進行更新, 知道所有參數都被更新
    • Dropout實際上是將「多個模型進行組合取平均值解決過擬合」的方法應用到了一個模型上, 通過刪掉不同的神經元就好像生成了不同的訓練模型.
    • Dropout程序導致兩個神經元不一定每次都在一個dropout網絡中出現。這樣權值的更新不再依賴於有固定關係的隱含節點的共同作用,阻止了某些特徵僅僅在其它特定特徵下才有效果的情況

邏輯迴歸和線性迴歸的梯度

在這裏插入圖片描述

  • 邏輯迴歸交叉熵損失函數的梯度和線性迴歸最小二乘的梯度形式上完全相同,區別在於,此時的 h Θ ( x ) = g ( z ) = s i g m o i d ( W T X + b ) h_{\Theta}(x) = g(z)=sigmoid(W^{T}X+b) ,而最小二乘的 h Θ = W T X + b h_{\Theta} = W^{T}X+b , 因此兩者實際上是不一樣的