神经网络基础:(2)损失函数
比如上述分類,你只知道他做的不好,但是如何知道他做的有多差呢?而是具體一個數值。
神經網絡是既能做分類也能做回歸,能做的事情比較多,唯一的區別就是損失函數你是如何定義的。做不同的任務就是損失函數不同而已。
?上圖中,是其他錯誤類別分類得分,是正確類別的真實得分,加1相當于加一個,相當于容忍程度(加1表示我這個正確類別至少要比你這個錯誤類別高1以上,才是沒損失的)。最后求0和max之間的最大值。
上圖中損失函數小于0,表示沒有損失,意味著正確類別要比錯誤類別得分值高。
----------------------------------------------------
有了損失函數之后,我們還要把它這個損失函數做一個改進,不光有W,還要有正則化。
下圖中雖然結果都一樣,但是模型A只考慮局部,模型B考慮全局。 在訓練的時候我們希望使用的是全局的模型B。模型A的話會產生變異,過擬合。
?在模型訓練當中還要關注你的模型參數會不會產生一些過擬合,所以在構建損失函數過程中,我們還要加上一點,正則化懲罰項。
?前一部分叫做data_loss叫做數據在你當前損失函數當中得到的一個損失;后邊正則化懲罰項表示當前這組模型由于他的權重損失參數帶來的損失,他跟你的數據項沒有任何關系,他只考慮你的權重參數。是懲罰項的系數,正常情況下,值越大,你不希望過擬合,如果你不希望過擬合,你要把懲罰項系數大一些,抑制住變異,正常情況下正則化項使用平方項就行。
?
?1、首先有得分函數,獲得得分值。
2、有了得分值和真實標簽值計算損失,并加上正則化懲罰項,得到當前損失。
PS:現在得到的還是得分,跟分類任務還有一點差別,因為分類任務一般說我屬于這個貓的概率值,一個可能性。
下圖理解:
首先指數函數圖像:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?對數函數圖像:
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
?歸一化也可以得到概率值:
一組數據a\b\c,歸一化就是:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
?計算損失值使用的是log函數:(前邊添加負號,是因為0到1之間的log值是負數)
?概率值越接近于1,損失越小。越接近于0,損失越大。
?輸入一個數據,先得到得分值,然后進行一個計算,為了拉開差距(看圖像),看的更明顯一些,做一個映射,做完映射之后進行一個歸一化(得到概率值),之后使用一個對數函數求他的一個損失(將概率值輸入對數函數中)。?
-------------------------------神經網絡流程-----------------------
前向傳播(計算損失)
反向傳播(損失太高模型不好,更新w)------要從后往前逐層一步一步的求解,使用鏈式法則
PS:整體理解神經網絡:要理解從前向后我對x做了什么;從后向前我對權重w又做了什么;
總結
以上是生活随笔為你收集整理的神经网络基础:(2)损失函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 神经网络基础:(1)得分函数 or 得分
- 下一篇: 网络模型:(0)背景