CNN for Visual Recognition (02)

圖像分類html

參考:http://cs231n.github.io/classification/git

圖像分類(Image Classification),是給輸入圖像賦予一個已知類別標籤。圖像分類是計算機視覺(Computer Vision)問題中一個基本問題,也是很要的一個問題。諸如物體檢測、圖像分割等能夠利用圖像分類來解決。github

圖像分類問題的主要難點在如下幾個方面:app

  • 視角差別(viewpoint variation):拍攝角度
  • 比例差別(Scale variation):縮放比例
  • 形變(Deformation):主要爲非剛性形變(non-rigid deformation)
  • 遮擋(Occlusion):局部遮擋
  • 光照差別(Illumination condition):光線狀況不一樣
  • 背景噪聲(Background clutter):背景與前景接近
  • 類內差別(intra-class variance):類內差別大於類間差別


(ref: http://cs231n.github.io/assets/challenges.jpeg)機器學習

數據驅動的方法(data-driven approach):
從機器學習角度講,訓練數據(training data)爲學習過程提供先驗知識。性能


解決圖像分類流程(pipeline):學習

  • 輸入(input):包括圖像和類別標籤;
  • 學習(learning):學習分類器(classifier)或是模型(model)進而預測輸入圖像標籤;
  • 評價(evaluation):比較預測標籤和實際標籤,評價分類器(模型)的性能。


最鄰近分類(Nearest Neighbor Classifier):
(只是爲了可以直觀瞭解圖像分類問題)
根據已有數據及標籤(training data),預測輸入圖像(input image)爲其最鄰近圖像的標籤。進一步擴展可爲K鄰近方法,K鄰接相對更加經常使用。相對而言,kNN在特徵維度較低的時候,能力比較強的。lua

對於kNN而言有兩個問題很差肯定:
第一個就是k值的選擇。K值較小時,對噪聲敏感;k值較大,會削弱對decision boundary附近樣本的判別能力。最簡單的方法就是交叉驗證,在驗證集嘗試不一樣取值;還有一些參考文件中使用\sqrt(N),其中N是每一類中樣本的平均數(很明顯對數據量很大的狀況不適用)。
第二個就是對距離量度(distance metric)的選擇。比較經常使用的是L1和L2距離。可是對一些問題,須要進行距離量度學習(distance metric learning)。比較經常使用的學習方法有LMNN(Large Margin Nearest Neighbor),ITML(Information-Theoretic Metric Learning)spa


關於使用kNN的一個小節:3d

  • 對特徵作正規化(normalization),即零均值、單位方差;
  • 特徵維數很高時降維,如PCA等;
  • 在訓練集上劃分驗證集;
  • 交叉驗證不一樣的k值及距離量度;
  • 時間開銷過大時考慮Approximate Nearest Neighbor (FLANN)代替(以下降準確率爲代價)。

 

延伸閱讀:
A Few Useful Things to Know about Machine Learning,英文

機器學習那些事,中文

Recognizing and Learning Object Categories, ICCV2005的一個short course。

相關文章
相關標籤/搜索