損失函數與梯度下降


什么是損失函數

  • 損失函數(Loss Function)也稱代價函數(Cost Function),用來度量預測值與實際值之間的差異
  • 公式:image
    其中E即使損失函數,y表示真實值,y'表示預測值,損失函數即使預測值與實際值之間的差

損失函數的作用

  • 度量決策函數內f(x)和實際值之間的差異
  • 作為模型性能參考。損失數值越小,說明預測輸出和實際結果(也稱期望輸出)之間的差值就越小,也就說明我們構建的模型越好。學習的過程,就是不斷通過訓練數據進行預測,不斷調整預測輸出與實際輸出差異,使得損失值最小的過程

常用損失函數

  • 均方誤差(Mean square error)損失函數。均方誤差是回歸問題或連續問題常用的損失函數,它是預測值與目標值之間差值的平方和,其公式和圖像如下:image
  • 交叉熵(Cross Entrioy)。交叉熵是Shannon信息論中的一個重要概念,主要用於度量兩個概率分布間的差異性信息,在機器學習中用來作為分類問題的損失函數。假設有兩個概率分布,tk(真實概率)和yk(預測概率),其交叉熵函數公式及圖形如下:
    imageimage

梯度下降

什么是梯度

  • 梯度(gradient)是一個向量(矢量,有方向),表示某一個函數在該點處的方向導數沿着該方向取得最大值,即函數在該點處沿着該方向(此梯度的方向)變化最快,變化率最大。損失函數沿梯度相反方向收斂最快(即能最快找到極值點)。當梯度向量為零(或接近於0),說明損失函數到達一個極小值點,模型准確度達到一個極大值點。
  • 通過損失函數,我們將“尋找最優參數”問題,轉換為了“尋找損失函數最小值”問題。尋找步驟:
    1.損失是否足夠小?如果不是,計算損失函數的梯度。
    2.按梯度的反方向走一小步,以縮小損失。
    3.循環到1
    這種按照負梯度不停地調整函數權值的過程就叫做“梯度下降法”。通過這樣的方法,改變每個神經元與其他神經元的連接權重及自身的擱置,讓損失函數的值下降的更快,進而將值收斂到損失函數的某個極小值。

導數

梯度下降算法會依賴於導數和偏導數
導數定義:所謂導數,就是用來分析函數“變化率”的一種度量。導數越大變化率越大,導數越小變化率越小,其公式為image

  • 導數的含義:反應變化的劇烈程度(變化率)image

偏導數

“偏導”的英文本意是“partial derivatives”(表示局部導數)。對於多維變量函數而言,當球某個變量的導數時,就是把其他變量視為常量,然后對整個函數求其導數(相比於全部變量,這里只求一個變量,即為“局部”)例:image

學習率

  • 如果在梯度下降過程中,每次都按照相同的步幅收斂,則可能錯過極值點(下圖左),所以每次在之前的步幅減小一定比率,這個比率稱之為“學習率”(下圖右)
    image

梯度遞減訓練法則

  • 神經網絡中的權值參數是非常多的,因此針對損失函數E的權值向量的梯度如以下公式所示:
    image
    等式左側表示損失函數E的梯度,它本身也是一個向量,它的多個維度分別由損失函數E對多個權值參數Wi求偏導所得。當梯度被解釋為權值空間中的一個向量時,它就確定了E陡峭上升的方向,那么梯度遞減的訓練法則就如下所示:
    image

梯度下降算法

  • 批量梯度下降:批量梯度下降法(Batch Gradient Descent,BGD)是最原始的形式,它是指在每一次迭代時使用所有樣本來進行梯度的更新,
    • 優點
      • 一次迭代是對所有樣本進行計算,此時利用矩陣進行操作,實現了並行。
      • 由全數據集去確定的方向能夠更好地代表樣本總體,從而更准確地朝向極值所在的方向。當目標函數為凸函數時,BGD一定能夠得到全局最優。
    • 缺點
      • 當樣本數目m很大時,每迭代一步都需要對所有樣本進行計算,訓練過程會很慢。
  • 隨機梯度下降:隨機梯度下降法(Stochastic Gradient Descent,SGD)每次迭代使用一個樣本對參數進行更新,使得訓練速度加快。
    • 優點
      • 由於不是在全部訓練數據上的損失函數,而是在每輪迭代中,隨機優化某一條訓練數據上的損失函數,這樣每一輪參數的更新速度大大加快
    • 缺點:
      • 准確度下降。由於即使
  • 小批量梯度下降:小批量梯度下降(Mini-Batch Grradient Descent,MBGD)是對批量梯度下降以及隨機梯度下降的一個折中方法、其思想是:每次迭代使用指定個(batch_size)樣本來對參數進行更新。
    • 優點:
      • 通過矩陣運算,每次在一個batch上優化神經網絡參數並不會比單個數據慢太多。
      • 每次使用一個batch可以大大減小收斂所需要的迭代次數,同時可以使收斂到的結果更加接近梯度下降的結果。
    • 缺點:
      • batch_size的不當選擇可能會帶來一些問題

幾種梯度下降算法收斂比較

  • 批量梯度下降穩健地向着最低的前進的
  • 隨機梯度下降震盪明顯,當總體上向最低點逼近
  • 小批量梯度下降位於兩者之間
    image

小結

本章節介紹了損失函數與梯度下降概念與算法

  • 損失函數用戶度量預測值與期望值之間的差異,根據該差異值進行參數調整
  • 梯度下降用於以最快速度、最少的步驟快速找到損失函數的極小值。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM