UMICH CV Linear Classifiers
對於使用線性分類器來進行圖片分類,我們可以給出這樣的引數化方法:
而對於這樣一個式子,我們怎麼去理解呢?
首先從代數的角度,這個f(x,W)就是一張圖片的得分,我們可以將一張圖片所有的畫素點輸入,乘以一個權重矩陣,再加上一個偏置項b,就得到f(x,W)
舉個具體的例子:
上面權重矩陣有三行分別對應三種類別,有四列每列對應著一個畫素點的權重,最終得到的結果也是一個三行的矩陣,每一行對應著該圖片在每個類別上面的得分
下面這張圖應該會更加直觀:
對於f(x,W)=Wx + b這個式子,我們也可以選擇把偏置項合併,呈現下面這個形式:
其次我們從視覺化的角度來看,線性分類器實質上是為每個分類建立了一個模板,我們將一個圖片輸入線性分類器實質上就是尋求與模板的匹配:
最後從幾何的角度來看,線性分類器實際上在劃分空間,判斷輸入的圖片應該屬於哪個分類的空間:
而針對線性分類器存在的問題,我們也可以從以上三個方面來認識:
首先從代數方面,線性分類器意味著我們得到的關係是線性的,我們的權重矩陣減半,相應的分數也會減半,這就很難去包含一些複雜的圖形關係,導致分類效果不好
其次從視覺化方面,從前面那張圖我們可以看到線性分類器得到的僅僅是每類簡單的模板,很難去捕捉到資料複雜的特徵,上圖中馬對應的分類甚至有兩個頭
最後是幾何方面,有時候對於線性分類器來說分隔平面是一件無法完成的事,比如說著名的XOR問題等等:
顯然對於上面的區域,我們很難訓練線性分類器讓它來找到劃分平面的方法
在大致瞭解了線性分類器的工作原理之後,我們面臨的問題是如何去判斷並找出對於分類問題來說最好的權重矩陣
為了做到上面兩點,我們需要引入損失函式的概念:
我們透過損失函式來判斷權重矩陣的好壞,具體來說,損失函式是在計算我們模型得到的得分與正確分類得分的差距
一個常見的損失函式是SVM loss:
具體來說,上面這個圖我們計算了貓這張圖片在三個分類上的得分分別是3.2,5.1,-1.7,其中在cat類上的得分3.2是正確分類的得分,所有我們計算其它兩個類與該類得分的差距,注意這裡還要加上一個1,表示margin,大致的意思就是我們對權重矩陣的要求比較高,正確分類的得分不僅要比其它所有分類高,還要高出一定的分數
在上圖中,使用不同的權重矩陣得到了一樣的loss值,那麼我們怎麼去判斷哪個權重才是更好的呢?
這裡引入了正則化的概念,用於表達對某種權重矩陣的preference,同時也能防止模型的過擬合(一般來說正則化都會選擇更簡單的模型):
具體來說,比如我們選擇L2正則化,現在有w1與w2兩個權重矩陣,它們計算的得分一致,但是顯然w1正則化的數值比w2要大,所以w2優於w1,L2正則化函式顯然傾向於分佈比較均勻的權重矩陣,它是將每個權重的平方和累和
另一種常見的損失是交叉熵損失:
這裡具體的解釋與推導需要用到一些資訊理論的知識,我這方面也不是很瞭解,留個坑以後懂了再填吧,感興趣的同學可以自行搜尋,這裡的計算過程就和上面這張圖一樣,先取e的指數然後歸一化,再取負對數,這裡值得注意的是對數的底數一般都取e,所以最後的損失函式還可以化簡一下,在assignment2中的交叉熵損失的實現就是拆分之後的。