CS231N-線性回歸+svm多分類+softmax多分類
CS231N-線性回歸+svm多分類+softmax多分類
計算機視覺這一部分比較基礎,沒有太多視覺相關的。。
1.線性回歸
假定在著名的 CIFAR10數據集上,包含10類數據。每類數據有10000條?
目標是輸入一個圖片,通過模型給出一個label。線性回歸的思想就是
得到到F(x)作為某個類別的分數。那麽針對每個可能的label都經過一個線性函數輸出一個分值,那麽我們選最大的其實就是最有可能的分數。
為什麽這麽做是合理的?
角度1:
每個種類一個 template,每個線性函數的W的訓練過程就類似於上圖中得到的底部那些圖片的過程。比如horse這個種類得到的W,看起來就好像有了2個頭,其實就是訓練的過程中綜合了horse這類圖像,然後越和這個圖像相似,得分就越高。
角度2:
一堆線性函數將整個空間進行了劃分,得到每一類。
角度3:
代數的觀點,計算得分。
2. svm的多分類
這段比較迷,從線性回歸直接到svm的多分類。。講的很好理解。自己以前卻看了很久。。。
我們知道給了一個模型,能得到一個結果。那麽怎麽評測這個結果到底好不好呢?
引出了損失函數(用來計算一個得分,通過輸入)。比如我們一直討論的 CIFAR10數據集,我們在用上面的線性回歸給出了不同種類的分數,那麽怎麽評價這些分數的好壞呢?
這裏采用了合頁損失(hinge-loss),也就是。假定對於第i個樣本,真實的label用表示,經過線性函數得到的分數用S表示,在某個類別下的分數用表示,那麽關於樣本i的損失可以寫作
也就是的時候損失為0.效果最高。
接著幾個小問題加深了對這個損失函數的理解。
Q: What happens to loss if car scores change a bit?
因為當正確的分數比其他的分數 要高出一個delta(這裏是1)損失才為0,那麽有微小的變化沒影響。
Q2: what is the min/max possible loss?
當我們完全的分對。損失為0,最差正無窮。
Q3: At initialization W is small so all s ≈ 0. What is the loss?
C-1
Q4: What if the sum was over all classes? (including j = y_i)
多算了j本身這項,損失函數多了1.
Q5: What if we used mean instead of sum?
沒影響
Q6: What if we used
加重了損失。
接著引出了正則化!
如果w使得損失函數為0,那麽這個w是不是唯一的?
顯然不是,2w得到的損失函數也是0.
那麽選擇哪個好?
前半部分是訓練數據上的損失,後面是對於參數w的懲罰,防止過擬合。這裏的lambda是個超參數,在懲罰與擬合數據之間進行平衡。
最常用的正則化方法!
- 也就是2個範數間平衡
L1通常會使某些權重為0.L1在 交換坐標軸的情況下會有不同的結果(所以在特征按照某種順序排列的時候比較有用)實際還是要實驗。
Why regularize?
- Express preferences over weights 表達偏愛對權重。
- Make the model simple so it works on test data 讓模型泛化
-- Improve optimization by adding curvature 通過增加曲率改進優化
3多元邏輯斯蒂回歸
enter description here
形式上很好理解,就是在之前的線性回歸 計算得到各個分數的基礎上,做了exp和normalize操作,進行了歸一化,可以近似看成預測的概率。這個時候損失函數 叫做
交叉熵損失:
(也就是對正確的概率取了對數,加了負號。)
小思考:
Q: What is the min/max possible loss L_i?
A: min 0, max infinity
Q2: At initialization all s will be approximately equal; what is the loss?
A: log(C), eg log(10) ≈ 2.3 這一點可以用來再第一步的時候測試自己代碼是不是正確
4.小小總結
以線性回歸作為引子,逐步拉出來了分類svm,正則化方法,softmax回歸。多元svm和softmax區別主要是 softmax的損失函數的優化過程一直想要更好的結果。然而svm多分類只要達到一定程度是沒有區別的。比如[10,2,2],[10,-2,-2]這2種得分。多元svm認為這2種效果一樣。然而softmax則認為第二種更好,並且想著繼續優化。
CS231N-線性回歸+svm多分類+softmax多分類