1.计算机视觉的理解:
如果阿尔法狗的围棋实力,让你觉的计算机已经全方位的超越了人类,那么在视觉识别上你可以树立自信了,毕竟目前来看,没有任何一个机器的视觉能力能够达到甚至超越人类的水平,同样的一张图片,在我们眼中是各式各样的信息,但是在计算力的眼里,只是一堆数字矩阵。
说到视觉,不得不讲一讲计算机形成图片的方法,每张计算机图片都有自己的像素,像素是形成图片的小方格,比如一张600x800的像素图片,那么这张图片是由600x800个小方格组成的,每个方格填充了一种颜色,在我们的眼里,就形成了一张精致的图片,而计算机表示颜色的方法,是用一个三位数字表示红绿蓝三原色的比例,例如“543”就表示红:绿:蓝=5:4:3,所以计算机理解的图片,是一个像素大小的矩阵,其中每个元素都是一个三位数字,所以,计算机很难像我们一样在绝地求生的画面中迅速发现敌人的存在。
2.三种最基础的图片分类算法:
讲算法之前,先谈谈两个评价图片之间相似性的距离指标,
Manhattan distance,曼哈顿距离,两张图片的数字矩阵相同位置的数值相减,对所有元素取绝对值的和
欧式距离:两张图片的数字矩阵相同位置的数值之差的平方和,最后再开根号。
这两种距离的差别我们可以看一下下面这张图,选取了横轴和纵轴两个指标,L1距离下,处于菱形轮廓上的任意一点的图片,与原点的距离是相等的;L2距离下,处于圆上任意一点的图片,与原点的距离是相等的。两种距离没有好坏之分,要根据我们的实际应用需要选取,但是我们要注意到,L1距离对坐标轴是有依赖的,因为旋转坐标轴,会改变等距离线,而对于L2距离,我们知道圆上任意一点到圆心的距离是相等的,所以L2距离不依赖坐标轴。
最近邻分类器(Nearest Neighbor classifier), 对一张新的图片,与已知标签的所有图片进行比对,将距离最近的图片标签赋给新的图片。
KNN分类器,对于一张新的图片,计算其与已知标签的所有图片的距离,选取距离最近的K张图片,K张图片中标签的众数赋给新图片。
线性分类器(Linear classifier),模型表示为f(X,W)=W*X+b,这里的X,W,b都表示矩阵,X表示特征变量组成的列向量,W表示不同变量的权重矩阵,b是常数列向量,模型训练的过程就是对W和b的训练过程,对于一张新的图片,Linear分类器直接将估计好的W,b和图片的X带入,求解出一个列向量,行数表示要分类的类数,每一行代表这个图片在这一类的得分,最后将图片判给得分最高的类别。
线性分类器的优势在于,模型的训练时间很长,但预测时间很短,这意味着我们可以使用大型计算机长时间的训练,将最后的W和b输出给小型计算机,比如浏览器或者手机,在这些小型终端可以快速预测;而上面两种算法,每一次预测需要遍历每个训练集的图片,很难应用到手机等方面。同时,线性分类器也是神经网络的基础。
以上是我个人浅薄的理解,希望各位高手帮忙指正,有什么意见尽管提,我一定虚心改正,因为我不是学计算机的,这些数据分析步骤的程序语言我会随着学习逐步补全。
希望每个人都能对未知的领域保持最起码的敬畏和尊重