1. 程式人生 > >斯坦福深度學習課程筆記(二)

斯坦福深度學習課程筆記(二)

損失函式和優化

官網 ppt

1 損失函式

損失函式是用來定量地分析我們的模型預測效果有多糟糕的函式。損失函式輸出值越大,代表我們的模型效果越糟糕。

損失函式的通用表示: 假設我們的資料集有N個樣本,{(xi,yi)}i=1N\{(x_i,y_i)\}^{N}_{i=1}其中xix_i是樣本圖片,yiy_i是對應的整數標籤;整個資料集的損失就是每個樣本的損失之和。 L=1NiLi(f(xi,W),yi) L = \frac{1}{N}\sum_iL_i(f(x_i,W),y_i)

這裡介紹兩種損失函式

1.1 多分類SVM損失

SVM損失的形式是這樣的: Li=jyi{0ifsyisj+1sj+1syielse=jyimax(0,sj+1syi) L_i = \sum_{j \ne y_i} \left\{ \begin{aligned} 0 &&if && s_{y_i} \le s_j + 1 \\ s_j + 1 - s_{y_i} && else \\ \end{aligned} \right. = \sum_{j \ne y_i} max(0,s_j + 1 - s_{y_i} )

這裡的+1+1代表一個邊界(margin),即正分類比誤分類大的程度,其實這個是可以自由設定的,但是也要依據問題去考慮。

svm loss

也可以把SVM Loss叫做Hinge Loss,橫軸是syis_{y_i},隨著syis_{y_i}的增大,HInge Loss是逐漸下降的,最終降為0。

在這裡插入圖片描述

在這個問題中,我們的ss就是模型跑到最後,給每個樣本image的分類的一個分數值。

關於SVM Loss,有幾個問題:

  • 損失的最大/最小值分別是什麼? 最小值是0,對應全部分類正確的情況; 最大值是無窮大

  • 在初始化階段,WW很小,所以所有的s0s \simeq 0,這個時候的損失是多少? 答案是c1c-1cc代表分類的數量。 jyimax(0,sj+1syi)=jyimax(0,1)=jyi1=c(c1)\sum_{j \ne y_i} max(0,s_j + 1 - s_{y_i} ) = \sum_{j \ne y_i} max(0,1) = \\ \sum_{j \ne y_i} 1 = c(c-1),再求平均值,就是c1c-1

  • 如果包含j=yij = y_i的情況,所有損失的和應該是多少呢? 損失的和應該會加上cc

  • 如果我們使用平均值而非求和,損失會有怎樣的變化呢? 沒什麼變化,只是縮放而已

  • 如果我們使用max(0,sj+1syi)2max(0,s_j + 1 - s_{y_i} )^2,會有什麼變化呢? 這就形成了一個新的損失函式。

  • 如果我們找到了一個WW,使得損失為0,那麼損失是惟一的嗎? 不是,2W2W也能令損失為0。

既然WW2W2W都能使損失降為0,那麼我們應該選哪個WW呢?

這裡我們引入正則

1.2 softmax損失

2 優化