图像分类html
参考:http://cs231n.github.io/classification/git
图像分类(Image Classification),是给输入图像赋予一个已知类别标签。图像分类是计算机视觉(Computer Vision)问题中一个基本问题,也是很要的一个问题。诸如物体检测、图像分割等能够利用图像分类来解决。github
图像分类问题的主要难点在如下几个方面:app
(ref: http://cs231n.github.io/assets/challenges.jpeg)机器学习
数据驱动的方法(data-driven approach):
从机器学习角度讲,训练数据(training data)为学习过程提供先验知识。性能
解决图像分类流程(pipeline):学习
最邻近分类(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
延伸阅读:
A Few Useful Things to Know about Machine Learning,英文
机器学习那些事,中文
Recognizing and Learning Object Categories, ICCV2005的一个short course。