2018, aug 3
顧名思義,從標題就能知道損失函式(loss function)一定就是來計算神經網路在訓練中的損失的。
說完了定義那到了舉例時間了:主要拿softmax loss來分析
這裡的k也就是我們分類的類別。然後這個函式是怎麼用的呢,我們可以簡單的舉乙個分類的例子來看下。假設我們輸入一張貓的,並且有3個類別,得到三個未標準化(unnormalized)的對數(log)概率分別是3.1, 4.3, -0.6:
類別\貓.img
未標準化的概率(exp)概率貓
3.1狗
4.3豬
-0.6
概率計算公式:
如果我們讓這些分數表示屬於不同類別的概率,不同類別的概率中有乙個是正確的,所以我們想要使正確分類的概率的對數最大,根據損失函式我們要是負的正確分類概率的對數最小,所以正確分類的對數要高,那麼負的就要很低,使用log裡面的值,就是這組資料正確分類的softmax值,它佔的比重越大,這個樣本的loss也就越小,可以看下面程式的輸出便知道
類別\貓.img
未標準化的概率(exp)概率貓
3.122.2
0.23
狗4.3
73.7
0.76
豬-0.6
0.55
0.01
對softmax的結果計算cross entropy loss:
print("2.經過e^x處理後貓-狗-豬的分數:", y)
print("4.佔的比重越大,樣本的loss也就越小 = ", -np.log(p))
print("5.loss = ", -np.log(p[0]))
2.經過e^x處理後貓-狗-豬的分數: [22.197951281441636, 73.69979369959579, 0.5488116360940265]
4.佔的比重越大,樣本的loss也就越小 = [1.46898904 0.26898904 5.16898904]
5.loss = 1.4689890374923653
輸出第四點只是為了讓大家更直觀的理解為什麼佔比(也就是概率)越大,樣本loss越小。因為我們輸入的是貓的,所以,我們最後的損失值也就是對應貓所在的那個,也是就最後的loss = 1.46.......
神經網路 損失函式
開始之前我們先進入數字識別這樣乙個場景 以識別數字1為例,神經網路模型的輸出結果越接近 0,1,0,0,0,0,0,0,0,0 越好。神經網路解決多分類的問題,最常見的方法是設定n個輸出節點,其中n類別個數,那麼上述數字判斷就應該有n 10個輸出。那麼如何判斷乙個輸出向量和期望向量的接近程度呢?交叉...
神經網路 損失函式
先上結論 在使用sigmoid作為啟用函式的時候,cross entropy相比於quadratic cost function,具有收斂速度快,更容易獲得全域性最優的特點 使用softmax作為啟用函式,log likelihood作為損失函式,不存在收斂慢的缺點。對於損失函式的收斂特性,我們期望...
神經網路之損失函式
對於損失函式一直處於混亂理解的狀態,l2 1 2 a y 2 對於其他的類似於交叉資訊熵感覺很高大上的樣子,但是到底是怎麼回事呢?今天我就一 竟!我們都知道,神經網路模型訓練得以實現是經過前向傳播計算loss,根據loss的值進行反向推到,進行相關引數的調整。可見,loss是指導引數進行調整的方向性...