Pytorch學習---6深度學習數學基礎

監督學習、無監督學習、半監督學習、強化學習是我們日常接觸到的常見的四個機器學習方法:

  • - 監督學習:通過已有的訓練樣本(即已知數據以及其對應的輸出)去訓練得到一個最優模型(這個模型屬於某個函數的集合,最優則表示在某個評價準則下是最佳的),再利用這個模型將所有的輸入映射爲相應的輸出。
  • - 無監督學習:它與監督學習的不同之處,在於我們事先沒有任何訓練樣本,而需要直接對數據進行建模。 
  • - 半監督學習 :在訓練階段結合了大量未標記的數據和少量標籤數據。與使用所有標籤數據的模型相比,使用訓練集的訓練模型在訓練時可以更爲準確。
  • - 強化學習:我們設定一個回報函數(reward function),通過這個函數來確認否越來越接近目標,類似我們訓練寵物,如果做對了就給他獎勵,做錯了就給予懲罰,最後來達到我們的訓練目的。
     

損失函數(Loss Function)


       損失函數(loss function)是用來估量模型的預測值(我們例子中的output)與真實值(例子中的y_train)的不一致程度,它是一個非負實值函數,損失函數越小,模型的魯棒性就越好。我們訓練模型的過程,就是通過不斷的迭代計算,使用梯度下降的優化算法,使得損失函數越來越小。損失函數越小就表示算法達到意義上的最優。這裏有一個重點:因爲PyTorch是使用mini-batch來進行計算的,所以損失函數的計算出來的結果已經對mini-batch取了平均。

 

Pytorch 常見的損失函數


 

 

方差/偏差

 

  • - 偏差度量了學習算法的期望預測與真實結果的偏離程序,即刻畫了學習算法本身的擬合能力
  • - 方差度量了同樣大小的訓練集的變動所導致的學習性能的變化,即模型的泛化能力
  •  
  • - 高偏差(high bias)的情況,一般稱爲欠擬合(underfitting),即我們的模型並沒有很好的去適配現有的數據,擬合度不夠。
  • - 高方差(high variance)的情況一般稱作過擬合(overfitting),即模型對於訓練數據擬合度太高了,失去了泛化的能力。

如何解決這兩種情況呢?

欠擬合:

  • - 增加網絡結構,如增加隱藏層數目;
  • - 訓練更長時間;
  • - 尋找合適的網絡架構,使用更大的NN結構;

過擬合 :

  • - 使用更多的數據;
  • - 正則化( regularization);
  • - 尋找合適的網絡結構;

正則化:

        利用正則化來解決High variance 的問題,正則化是在 Cost function 中加入一項正則化項,懲罰模型的複雜度,這裏我們簡單的介紹一下正則化的概念。

L1正則化和L2正則化

L2正則化具有唯一性 L1正則化沒有唯一性

L1正則化易懂

 

L1損失函數基礎上加上權重參數的絕對值  L2損失函數基礎上加上權重參數的平方和

L1正則化就是在 loss function 後面加上L1範數,這樣比較容易求到稀疏解。L2 正則化是在 LF 後面加 L2範數 平方,相比L1正則來說,得到的解比較平滑(不是稀疏),但是同樣能夠保證解中接近於0(不等0)的維度比較多,降低模型的複雜度。

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