图像分类的困难
图像分类是这样的一个任务:你输入一幅图片,计算机根据已有的标签,通过一定的算法,将图片归类。
这对人类来说非常简单,但对计算机来说就很困难了。因为计算机并不能像我们人类直接看到这幅图片,而是看到一堆杂乱的像素,每个像素都用三个数字来描述(RGB)。这里面并没有一个直接的标志来说明图片的类别。
这个问题称为语义鸿沟。即图片所描述的物体与计算机所看到的数字矩阵间的巨大差距。
这个问题的难点不止在于识别图片中的物体,还在于这些物体有时候会处于不同的光照场景;物体有可能会变形(比如猫,众所周知猫是由水构成的);还可能会被遮挡;有时候还会有图像混乱的问题:想要识别的物体和背景很相似,导致识别困难;此外还有类内差异的问题,当一幅图出现不同表现的同一种物体时,如何准确地识别每一个物体。
数据驱动的算法
为了解决以上问题,一个直觉的算法是得到每个确定的物体的边缘,然后得到其特征用以识别。但这种方法的问题是,即使对于同一种物体,当情况发生变化时,它的效果也会变得很差。
于是一种新的方法被提出了:数据驱动的算法。这种算法是搜集大量的标注了种类的图片,设计一定的算法来让计算机进行识别。计算机会搜集所有的数据,并根据算法的思路,来总结每一类图片的特点,并借此用来识别那些未经过标注的图片。
因此,通常程序包含两部分:一部分是训练函数,计算机通过总结已经标注的图片的特点得到分类知识;一类是测试函数,计算机利用已总结的分类知识来识别未标注的图片,并通过分类错误率来判断分类的精确度。
这一