机器学习笔记5 - 线性分类器

  • 线性分类器
    • 评分函数 score function
    • 线性分类器的理解和解释
  • 损失函数 loss function
    • 多类SVM
    • softmax分类器
    • SVM和softmax比较

  • KNN分类器存在的不足:

    • 分类器必须记住所有的训练数据并存储起来,以便未来测试数据比较,需要很大的空间

    • 对一个测试数据需要与所有的训练数据进行比较,需要很大的计算资源和时间

    为此,我们需要一种更好的方法:线性分类器

    线性分类器

    由两部分组成:评分函数score function和损失函数loss function。该方法可以转换为一个最优化问题,在优化过程中,将通过更新评分函数的参数来最小化损失函数值。

    评分函数 score function

    f(xi,W,b)=Wxi+b

    W为权重(weights)
    b为偏差向量(bias vector)

    我们的目标就是通过学习得到这些参数W、b,使得计算出来的分类值情况和训练集中图像数据的真实标签相符。
    相比之下:
    - 训练数据得到W,b,一旦训练完成,训练数据就可以丢掉,留下参数即可
    - 只需要一个矩阵乘法和一个矩阵加法就能对一个测试数据进行分类,这比 KNN 这种非参方法,每次预测都要读取所有数据集快得多。

    我们可以这样理解线性分类器:
    这里写图片描述
    图像像素是三维的,可以拉伸为一个列向量。
    假设总共有10个分类,图像b大小是32×32×3=3072
    W=10×3072 (10行3072列)
    x=3072×1
    b=10×1

    关于权重W的一个解释是:它的每一行对应着一个分类的模板(有时候也叫作原型)。一张图像对应不同分类的得分,是通过使用内积(也叫点积)来比较图像和模板,然后找到和哪个模板最相似。从这个角度来看,线性分类器就是在利用学习到的模板,针对图像做模板匹配。从另一个角度来看,可以认为还是在高效地使用k-NN,不同的是我们没有使用所有的训练集的图像来比较,而是每个类别只用了一张图片(这张图片是我们学习到的,而不是训练集中的某一张),而且我们会使用(负)内积来计算向量间的距离,而不是使用L1或者L2距离。

    图像数据预处理

    图像数据预处理:在上面的例子中,所有图像都是使用的原始像素值(从 0 到 255 )。在机器学习中,对于输入的特征做归一化(normalization)处理是很常见的。而在图像分类的例子中,图像上的每个像素可以看做一个特征。在实践中,对每个特征减去平均值来中心化数据是非常重要的。在这些图片的例子中,该步骤意味着根据训练集中所有的图像计算出一个平均图像值,然后每个图像都减去这个平均值,这样图像的像素值就大约分布在 [-127, 127] 之间了。下一个常见步骤是,让所有数值分布的区间变为 [-1, 1] 。零均值的中心化是很重要的,这样损失函数在梯度下降时得到的是一个很规则的形状。

    损失函数

    要使得其与原始训练数据通过score function得到的结果与真实类别一致,我们需要调整参数权重W和偏差b. 怎么调整是梯度下降的事儿~那么调整之前,我们需要先衡量下对结果的不满意程度,然后适当调整对吧~~这就是损失函数干的事儿~

    多类支持向量机损失 Multiclass Support Vector Mashine Loss

    首先,介绍常用的多类支持向量机(SVM)损失函数。SVM的损失函数想要SVM在正确分类上的得分始终比不正确分类上的得分高出一个边界值 Δ。
    这里写图片描述
    sj是第j个类别的得分
    syj是该类别的得分

    举例:假设有 3 个分类,并且得到了分值 s=[13,−7,11]。其中第一个类别是正确类别,即 yi=[1,0,0]。同时假设 Δ是 10 。上面的公式是将所有不正确分类 (j≠yi) 加起来,所以例子中有两个分量:
    Li=max(0,−7−13+10)+max(0,11−13+10)

    正则化(Regularization)损失

    一个简单的例子:如果W能够正确分类所有数据,即对于每个数据,损失值都是0。那么当λ>1时,任何数乘λW都能使得损失值为0,因为这个变化将所有分值的大小都均等地扩大了,所以它们之间的绝对差值也扩大了。
    解决此问题的方法是加一个正则化惩罚项(regularization penalty)R(W)部分。 最常用的正则化惩罚是 L2 范式,L2 范式通过对所有参数进行逐元素的平方惩罚来抑制大数值的权重。
    L2范式:
    R(W)=∑k∑n(Wk,n)^2
    这里是将所有的参数平方后累加得到的一个值。正则化惩罚项函数不是数据的函数,仅仅基于权重~
    SVM损失函数有两部分组成: 数据损失(data loss)和正则化损失(regularization loss)
    这里写图片描述

    Softmax分类器

    SVM是最常用的两个分类器之一,而另一个就是Softmax分类器,它的损失函数与SVM的损失函数不同。对于学习过二元逻辑回归分类器的读者来说,Softmax分类器就可以理解为逻辑回归分类器面对多个分类的一般化归纳。
    softmax 函数:
    这里写图片描述

    SVM和Softmax的比较

    SVM的计算是无标定的,只给出了一个分类最终结果,而且难以针对所有分类的评分值给出直观解释。Softmax分类器则不同,它允许我们计算出对于所有分类标签的“可能性”。

    猜你喜欢

    转载自blog.csdn.net/weixin_41774576/article/details/81358863