上一课讲到了图像识别面临的种种挑战:
在计算机看到的数据和人眼理解的图像之间存在着一条鸿沟,提出了用data-driveen的方法进行识别,学习了kNN。
在学习神经网络之前,我们要先学习线性分类器作为基础(building block)。
接上节课的线性分类器,假设一张图片x是32*32*3的,先reshape成一行,与各类的权重W(一个参数矩阵)相乘,在加上一个bias,得到判决为各类的分数,分值越高表示这个分类器认为越有可能是这个类。
1.W代表了当前像素是怎样影响类别的
2.线性分类也可以理解为在高维空间里找到类别之间的linear decision boundaries
举个例子:
1.第一张猫的得分3.2,不是最高分,分类错误,W要继续改进、优化
2.第二张车的得分4.9,是最高分,correct
3.第三张青蛙-3.2,不是最高分,相当糟糕,W要优化
Loss Function
定义损失函数,我们默认训练集有两样数据:X-例子的数据,通常要vectorization;y-正确的类别,即label
Multi-class SVM Loss(铰链损失):
在safe margin的前提下,正确类别的得分高于错误类别,loss=0
注:si代表各类得分;syi代表正确类别得分
举个例子:
车分类正确,loss=0:
青蛙分类结果最差,loss很高: