线性分类器是带参数的分类器,数学表达式:f(x,W, b) = Wx + b,其中W为权重向量,x为图像的像素值构成的向量,b为偏差向量。
以cifar-10中的图像为例,每张图都是32*32*3的像素矩阵构成的,把这个三维矩阵拉伸成一个3072*1的向量,cifar-10数据集中有10个标签类,最后得出的结果f应当为输入图像属于这个10个类别的分值score构成的向量,如下图所示:
简化后的例子:
属于cat的分值为负,不是最大,说明该分类器的分类效果不好,需要对W做调整。W其实是10个分类器并行构成的权重向量,每一行代表一个分类器的权重。
对线性分类器的几种理解
将图像看做高维度的点:既然图像被伸展成为了一个高维度的列向量,那么我们可以把图像看做这个高维度空间中的一个点(即每张图像是3072维空间中的一个点)。整个数据集就是一个点的集合,每个点都带有1个分类标签。(知乎专栏·智能单元)
将线性分类器看做模板匹配:关于权重W的另一个解释是它的每一行对应着一个分类的模板(有时候也叫作原型)。一张图像对应不同分类的得分,是通过使用内积(也叫点积)来比较图像和模板,然后找到和哪个模板最相似。从这个角度来看,线性分类器就是在利用学习到的模板,针对图像做模板匹配。(来源同上)
将W的每一行值reshape还原成与原图像大小相同的矩阵,此处为32*32*3,再可视化后,得到上图的10个模板。如上图所示,ship的模板可视化后,蓝色偏多,那么该模板与测试数据里有蓝色背景的图像做内积,使得对应蓝色区域值更大。模板里horse有两个头,对应的是马头朝向左右两边的情形。
线性分类器对于不同颜色的车的分类能力是很弱的,但是后面可以看到神经网络是可以完成这一任务的。神经网络可以在它的隐藏层中实现中间神经元来探测不同种类的车(比如绿色车头向左,蓝色车头向前等)。而下一层的神经元通过计算不同的汽车探测器的权重和,将这些合并为一个更精确的汽车分类分值。(来源同上)
下一节内容:
损失函数Loss function(用于量化W是否合适的函数)
优化 Optimization (先初始化一个随机的W,再寻找使loss function最小的W)