計算機視覺-線性分類器
線性分類器
CIFAR10資料集。
影象型別:
二進位制影象(非黑即白,非0即1)、灰度影象(畫素值0-255)、彩色影象(RGB,每一個通道都是255個畫素值)。
大多數分類演算法都要求輸入向量。
將影象轉換成向量的方法有很多,最直接簡單的方法就是將影象矩陣轉換成向量(一次排列每一個畫素點的RGB就得到了向量)。
線性分類器:
為什麼從線性分類器開始?
形式簡單、易於理解;最重要的是線性分類器可以通過層級結構(神經網路)或者高維對映(支援向量機)可以組合成為功能強大的非線性模型。
線性分類器是神經網路的基礎。線性分類器是支援向量機的基礎。小樣本情況下,支援向量機是絕對的王者;在大樣本情況下,神經網路是絕對的王者。
將X向量轉換為類別標籤。
每一個類別都有自己的引數W和偏置b。這裡是假設1000個樣本分為10類,這這10類樣本就各自有各自的W和b。
決策規則:如果fi(x)>fj(x),i≠j,則決策輸入影象x屬於第i類。也就是某一個類別x在第i類的打分比第j類的打分高的話,那麼就將它歸屬於第i個類別。
損失函式:
損失函式是一個函式,用於度量給定分類器的預測值與真實值的不一致程度,其輸出通常是一個非負實值。
損失函式的輸出值可以作為反饋訊號來對分類器引數進行調整,以降低當前例項對應的損失值,從而提升分類器的分類效果。
正則項:
因為不止存在一個權重W能夠使得損失函式L=0,因此,在多個權重值之間做出選擇時就需要用到正則項
超引數:在開始學習過程之前設定的引數;超引數一般都會對模型效能有著重要的影響。
使用L2正則項:R(W)=求和(Wi^2),選擇正則損失最小的那個權重W值。
L2正則損失對大數值權值進行懲罰,喜歡分散權值,鼓勵分類器將所有維度的特徵都用起來,而不是強烈的依賴其中少數幾維特徵。
L2正則過程中會選擇儘量多的考慮到所有的維度特徵,而不是簡單依賴於其中某一個或幾個特徵就得出結果,避免了某個重要維度出現損傷的情況下導致整體出錯。也就是避免了對其中某些少數維度的強依賴性。同時防止模型過擬合。
優化函式:
引數優化是機器學習的核心步驟之一,它利用損失函式的輸出值作為反饋訊號來調整分類器引數,以提升分類器對訓練樣本的預測效能。
優化的目標:找到使損失函式L達到最優的那組引數W。直接方法就是L對W求偏導等於0,這裡表示找到一個W使得L函式得到極值點。但是通常情況下,L的形式非常複雜,很難通過簡單的等式求解出來W。
梯度下降演算法:往負梯度方向走,步長由學習率決定。基本思想是逐步迭代得到最終結果,我們無法獲得全域性位置,但是我們知道當前位置,利用當前位置我們可以知道向負梯度方向走,也就是使得損失變小的方向,每一步跨多遠是由學習率決定的。
梯度計算過程中有兩種方法:數值法和解析法。
數值法:使用偏導數求極限的思想得到近似解。
解析法:直接通過求導的方式得到結果。
求梯度的過程中一般使用解析法求梯度,而數值法主要用於解析法結果的正確性校驗(梯度檢查)。因為解析法雖然精確,速度快,但是容易出錯。因此使用數值法的結果來校驗,如果兩者結果相近,則說明數值法是準確的。
缺點:當N很大時,權值的梯度計算量很大,更新的就會很慢,效率低下。
隨機梯度下降演算法:
每次隨機選擇一個樣本計算損失並更新梯度。
缺點:單個樣本的訓練可能會帶來很多噪聲,不是每一次迭代都想著整體最優化的方向。
小批量梯度下降演算法:
每次隨機選擇m小批量個樣本計算損失並更新梯度。
這裡的m一般取2的倍數。
batch_size:每次迭代所使用的的樣本量。
epoch:表示一共要迭代多少次。
資料集劃分:
訓練集用於給定的超引數時分類器引數的學習;驗證集用於選擇超引數;測試集評估泛化能力。
如果資料樣本很少,那麼可能驗證集包含的樣本就太少。這個時候就需要使用到K折交叉驗證的方法來進行訓練。/帶打亂資料的K折交叉驗證,過程基本與K折交叉驗證相同,不同的是每次劃分訓練集和驗證集時都需要打亂資料集。
資料預處理:
1.去均值。2. 歸一化。1. 去相關(資料的協方差矩陣是對角矩陣)。2. 白化資料(協方差矩陣是單位矩陣)。
後1,2常用作傳統的支援向量機,機器學習中來處理資料。前1,2是在神經網路深度學習中常使用的方法。