損失函式總結

2021-09-19 04:08:04 字數 1608 閱讀 2921

注意:當我們用mse做為損失函式的時候,最好別用sigmoid,tanh這類的啟用函式。從數學的角度來理解,sigmoid函式當x趨於正無窮或者負無窮的時候,函式值接近於1和0,也就是當自變數大於一定值的時候,函式變得非常平緩,斜率比較小,甚至變為0。

然後當斜率很小的時候,他的導數就很小,而bp在反向傳播更新引數的時候,就是要靠導數。

新的引數 = 舊的引數 + 梯度*學習率

這樣的話,引數基本就會保持不變

2.交叉熵損失函式(分類問題)

求導之後,導函式中沒有啟用函式的導數那一項。這樣就巧妙的避免了啟用函式的飽和性問題。

可化簡為:

舉個例子:假設乙個5分類問題,然後乙個樣本i的標籤y=[0,0,0,1,0],也就是說樣本i的真實標籤是4,假設模型**的結果概率(softmax的輸出)p=[0.1,0.15,0.05,0.6,0.1],可以看出這個**是對的,那麼對應的損失l=-log(0.6),也就是當這個樣本經過這樣的網路引數產生這樣的**p時,它的損失是-log(0.6)。那麼假設p=[0.15,0.2,0.4,0.1,0.15],這個**結果就很離譜了,因為真實標籤是4,而你覺得這個樣本是4的概率只有0.1(遠不如其他概率高,如果是在測試階段,那麼模型就會**該樣本屬於類別3),對應損失l=-log(0.1)。那麼假設p=[0.05,0.15,0.4,0.3,0.1],這個**結果雖然也錯了,但是沒有前面那個那麼離譜,對應的損失l=-log(0.3)。我們知道log函式在輸入小於1的時候是個負數,而且log函式是遞增函式,所以-log(0.6) < -log(0.3) < -log(0.1)。簡單講就是你**錯比**對的損失要大,**錯得離譜比**錯得輕微的損失要大。

4.centerloss

softmax函式學習到的特徵仍然有很大的類內差距,為了解決這一問題,center loss應運而生

類間距離變大了,類內距離減少了(

主要變化在於類內距離:intra-class

通過triplet loss的學習後使得positive元和anchor元之間的距離最小,而和negative之間距離最大。其中anchor為訓練資料集中隨機選取的乙個樣本,positive為和anchor屬於同一類的樣本,而negative則為和anchor不同類的樣本。、

損失函式總結

本篇文章介紹一下tensorflow中必須要掌握的基礎知識點,就是損失函式,因為最終訓練迭代優化就是損失函式,那麼總體來說它可以分為兩大類 1 以回歸為主 mse 均方根誤差 2 以分類為主 softmax 交叉熵 3 根據特定場景 自定義損失函式 接下來我們具體來通過 講解每種具體的例項 首先我們...

損失函式總結

1.什麼是損失函式 損失函式 loss function 是用來估量模型的 值f x 與真實值y的不一致程度,它是乙個非負實值函式,通常使用l y,f x 來表示,損失函式越小,模型認為效能就越好。2.損失函式,代價函式和目標函式的區別 損失函式 計算的是乙個樣本的誤差 代價函式 是整個訓練集上所有...

損失函式總結

損失函式對於機器學習演算法來說是至關重要的一環,大部分機器學習演算法都是通過梯度下降來進行學習的。下降的目標就是讓損失函式達到最小值。回歸損失函式 回歸的損失函式比較少,常見的有mse,mae,rmse,也比較好理解,就是 值和真實值直接的差距最小。分類損失函式 分類損失函式的種模擬較多,常見的分類...