神經網路損失函式

2021-08-22 04:30:49 字數 1590 閱讀 8567

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是指導引數進行調整的方向性...