CS231n Convolutional Neural Network for Visual Recognition¶
Image Classification¶
图像分类问题
任务¶
给定一张图片,输出图片中物体的种类
意义:本身的意义,以及作为其他更复杂的计算机视觉任务的基础
挑战¶
- Viewpoint variation
- Scale variation
- Deformation
- Occlusion
- Illumination conditions
- Background clutter
- Intra-class variation
解答¶
feature-driven¶
采用“特征驱动”的方式,人工设置特征,对特征进行分类
data-driven¶
采用数据驱动的方式,由程序通过特定的算法提取信息
Nearest Neighbor Classifier¶
最近邻法是一种常用的机器学习算法,通过图像两两之间的“距离”确定所属“类”的关系。
距离函数通常采用\(L_1\)范数或\(L_2\)范数:
\[
d_{1}\left(I_{1}, I_{2}\right)=\sum_{p}\left|I_{1}^{p}-I_{2}^{p}\right|
\]
{loading=lazy}
最近邻法训练的复杂度为\(O(n)\)(只需要“记住”所有训练样本),测试的复杂度为\(O(m \times n)\),并不是很理想。
最近邻算法只依赖最近的一个数据点进行决策,saliency point 对结果影响很大,于是衍生出了\(k\)最近邻算法。
{loading=lazy}
Train, validation and test¶
首先,我们需要把训练集和测试集分开;其次,我们不能用测试集来调参
训练集用于模型的训练,验证集用于模型的验证,测试集用于测试模型在接触到新的数据时的表现。
或者说,打个不太恰当的比喻,训练集是作业,验证集是模拟考试,测试集是期末考试。考完之后,就要上线部署,走上工作岗位了~
Cross-validation¶
如果数据集较小,可考虑将数据集分成\(n\)份,从其中选取\(n-1\)份用于训练,\(1\)份用于验证
{loading=lazy}