1. 程式人生 > >【深度學習】深度學習的四大元件

【深度學習】深度學習的四大元件

這四大元件就是:

  • 輸入資料和標籤
  • 損失函式
  • 優化器

在這裡插入圖片描述

這四者的關係描述如下:

多層組合在一起形成了網路,網路的目的是將輸入資料對映為預測值,通過損失函式將預測值和目標值比較,得出損失值,用來衡量網路的效能,而優化器的職責是迭代優化損失值來更新網路權重(BP演算法)。

層:構建網路的樂高積木

深度學習模型的最常見用法是層的線性堆疊,將單一輸入對映為單一輸出,即資料從一端進,然後從另一端出。

但是這不是唯一,還有其他的網路拓撲型別,比如:

  • 雙分支網路
  • 多頭網路
  • Inception模組

在機器學習的定義中我們已經學過,機器學習是在一個預先定義好的假設空間中,利用反饋訊號來尋找對輸入資料的有用的表徵。網路的拓撲結構定義了一個假設空間。

這個假設空間就被限定為一系列特定的張量計算,我們為了做好深度學習模型,就需要為這些張量計算的權重找到一組合適的值。

選擇正確的網路架構更像是一門藝術而不是科學。雖然有一些最佳的實踐和原則,但只有動手實踐才能成為合格的神經網路架構師。

損失函式與優化器

在確定了網路架構以後,還需要選擇兩個引數:

  • 損失函式:也叫目標函式,訓練的目標就是最小化這個函式,同時損失函式也是當前訓練任務是否完成的衡量標準
  • 優化器:決定的是如何基於損失函式對網路進行更新,一般用隨機梯度下降SGD或者某個變體

有多個輸出的神經網路可能具有多個損失函式,即每個輸出對應一個損失函式

,但是梯度下降必須基於單個標量損失值。所以,針對具有多個損失函式的網路,我們需要將所有損失函式取平均,使其成為單個標量值。

**選擇正確的目標函式對解決問題極其重要。**如果目標函式與完成當前任務不是完全相關,則網路得出的結果很可能不符合預期。

那選擇損失函式有哪些經驗指導呢?

對於分類、迴歸、序列預測等問題,都有很好的指導原則來幫助我們選擇正確的損失函式。比如:

  • 二分類問題:可以用二元交叉熵(binary crossentropy)損失函式
  • 多分類問題:可以用分類交叉熵(categorical crossentropy)損失函式
  • 迴歸問題:可以用均方誤差(mean-squared error)
  • 序列學習問題:可以用聯結主義時序分類(CTC, connectionist temporall classification)損失函式

所以對於絕大部分問題,都已經有了損失函式的選擇原則,除非是真的全新的問題,才需要自主開發目標函式。

換句話說,如果你開發的目標函式比現有的經驗好,絕對是一篇重量級的論文。

END.

參考:

《Deep Learning with Python》