对于识别图像分类问题,我们怎么判断输入一张图片具体归于哪一类呢?
假如给你一张猫的照片,你会怎么去分辨这是一只猫?最简单的思路就是:它和现有的猫的相似程度。
但是,这里有个问题,对于人来说,认识这只猫可以通过:猫有爪子,有胡须,耳朵是什么样的,鼻子是什么样的,多大等等特征。
但是,对于机器呢?图片对它们来说,只是一张标明了描述哪一点是什么颜色的矩阵而已!
没办法像定义数组排序这种算法一样去给计算机定义一只猫的图像特征,这时候我们希望,通过机器学习来完成这个过程。交给机器一堆猫的图片,跟它说,这个是猫,这个也是猫……就像教给孩子一样,让它自己去慢慢学会判别。
那机器要怎么学习图片的知识呢?
最简单的一个算法,叫 最邻近分类器 Nearest Neighbor Classifier
名字挺唬人的,但机器学习领域里面名词大都如此。其实原理非常非常简单。
首先,我们定义一个概念:图片的距离。
图片为啥会有距离?大家知道图片是矩阵,那我们很简单地把两张图片矩阵相应位置的元素做一下减法,然后把得到的结果矩阵的所有元素的求一下绝对值加起来……表示为公式如下。