關(guān)于損失函數(shù)寬泛而準(zhǔn)確的數(shù)學(xué)定義,我感覺我不會說得比 Wiki 更好,所以這一章主要還是介紹一些神經(jīng)網(wǎng)絡(luò)中常用的損失函數(shù)。然而即使把范圍限制在 NN,如何選、為何選相應(yīng)的損失函數(shù)仍然是一個不平凡的數(shù)學(xué)問題。囿于時間(和實力)、這一章講的主要是幾個損失函數(shù)的定義、直觀感受和求導(dǎo)方法。 從名字上可以看出,損失函數(shù)是模型對數(shù)據(jù)擬合程度的反映,擬合得越差、損失函數(shù)的值就應(yīng)該越大。同時我們還期望,損失函數(shù)在比較大時、它對應(yīng)的梯度也要比較大,這樣的話更新變量就可以更新得快一點。我們都接觸過的“距離”這一概念也可以被用在損失函數(shù)這里,對應(yīng)的就是最小平方誤差準(zhǔn)則(MSE): 其中G是我們的模型、它根據(jù)輸入矩陣X輸出一個預(yù)測向量G(X) 這個損失函數(shù)的直觀意義相當(dāng)明確:預(yù)測值G(X)和真值Y的歐式距離越大、損失就越大,反之就越小。它的求導(dǎo)也是相當(dāng)平凡的: 其中 w 是模型G中的一個待訓(xùn)練的參數(shù) 由于 MSE 比較簡單、所以我們能夠從一般意義上來討論它。為便于理解,以下的部分會結(jié)合 NN 這個特定的模型來進(jìn)行闡述?;仡?BP 算法章節(jié)中的式子: 這里的其實就是G(X)。在 NN 中,我們通過最后一層的 CostLayer 利用和真值Y得出一個損失、然后 NN 通過最小化這個損失來訓(xùn)練模型 注意到上式的最后除了損失函數(shù)自身的導(dǎo)數(shù)以外、還有一項激活函數(shù)(https://en./wiki/Activation_function)的導(dǎo)數(shù)。事實上,結(jié)合激活函數(shù)來選擇損失函數(shù)是一個常見的做法,用得比較多的組合有以下四個:
可見其確實滿足要求 以上、大概講了一些損失函數(shù)相關(guān)的基本知識。下一章的話會講如何根據(jù)梯度來更新我們的變量、亦即會講如何定義各種 Optimizers 以及會講背后的思想是什么??梢韵胂髸且粋€相當(dāng)大的坑…… 希望觀眾老爺們能夠喜歡~ |
|
來自: 長沙7喜 > 《智能技術(shù)》