CS231N-线性回归+svm多分类+softmax多分类

Posted cbfstudy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CS231N-线性回归+svm多分类+softmax多分类相关的知识,希望对你有一定的参考价值。

CS231N-线性回归+svm多分类+softmax多分类

这一部分比较基础,没有太多视觉相关的。。

1.线性回归

假定在著名的 CIFAR10数据集上,包含10类数据。每类数据有10000条?
目标是输入一个图片,通过模型给出一个label。线性回归的思想就是
技术分享图片得到到F(x)作为某个类别的分数。那么针对每个可能的label都经过一个线性函数输出一个分值,那么我们选最大的其实就是最有可能的分数。
为什么这么做是合理的?
角度1:
技术分享图片

每个种类一个 template,每个线性函数的W的训练过程就类似于上图中得到的底部那些图片的过程。比如horse这个种类得到的W,看起来就好像有了2个头,其实就是训练的过程中综合了horse这类图像,然后越和这个图像相似,得分就越高。
角度2:
技术分享图片
一堆线性函数将整个空间进行了划分,得到每一类。
角度3:
代数的观点,计算得分。

2. svm的多分类

这段比较迷,从线性回归直接到svm的多分类。。讲的很好理解。自己以前却看了很久。。。
我们知道给了一个模型,能得到一个结果。那么怎么评测这个结果到底好不好呢?
引出了损失函数(用来计算一个得分,通过输入)。比如我们一直讨论的 CIFAR10数据集,我们在用上面的线性回归给出了不同种类的分数,那么怎么评价这些分数的好坏呢?
这里采用了合页损失(hinge-loss),也就是技术分享图片。假定对于第i个样本,真实的label用技术分享图片表示,经过线性函数得到的分数用S表示,在某个类别下的分数用技术分享图片表示,那么关于样本i的损失可以写作
技术分享图片
也就是技术分享图片的时候损失为0.效果最高。
接着几个小问题加深了对这个损失函数的理解。
Q: What happens to loss if car scores change a bit?
因为当正确的分数比其他的分数 要高出一个delta(这里是1)损失才为0,那么有微小的变化没影响。
Q2: what is the min/max possible loss?
当我们完全的分对。损失为0,最差正无穷。
Q3: At initialization W is small so all s ≈ 0. What is the loss?
C-1
Q4: What if the sum was over all classes? (including j = y_i)
多算了j本身这项,损失函数多了1.
Q5: What if we used mean instead of sum?
没影响
Q6: What if we used技术分享图片
加重了损失。

接着引出了正则化!
如果w使得损失函数为0,那么这个w是不是唯一的?
显然不是,2w得到的损失函数也是0.
那么选择哪个好?
技术分享图片
前半部分是训练数据上的损失,后面是对于参数w的惩罚,防止过拟合。这里的lambda是个超参数,在惩罚与拟合数据之间进行平衡。

最常用的正则化方法!

  1. 技术分享图片
  2. 技术分享图片
  3. 技术分享图片 也就是2个范数间平衡
    L1通常会使某些权重为0.L1在 交换坐标轴的情况下会有不同的结果(所以在特征按照某种顺序排列的时候比较有用)实际还是要实验。

Why regularize?

  • Express preferences over weights 表达偏爱对权重。
  • Make the model simple so it works on test data 让模型泛化
    -- Improve optimization by adding curvature 通过增加曲率改进优化

3多元逻辑斯蒂回归

技术分享图片

enter description here

形式上很好理解,就是在之前的线性回归 计算得到各个分数的基础上,做了exp和normalize操作,进行了归一化,可以近似看成预测的概率。这个时候损失函数 叫做

交叉熵损失:

技术分享图片 (也就是对正确的概率取了对数,加了负号。)

小思考:
Q: What is the min/max possible loss L_i?
A: min 0, max infinity
Q2: At initialization all s will be approximately equal; what is the loss?
A: log(C), eg log(10) ≈ 2.3 这一点可以用来再第一步的时候测试自己代码是不是正确

4.小小总结

以线性回归作为引子,逐步拉出来了分类svm,正则化方法,softmax回归。多元svm和softmax区别主要是 softmax的损失函数的优化过程一直想要更好的结果。然而svm多分类只要达到一定程度是没有区别的。比如[10,2,2],[10,-2,-2]这2种得分。多元svm认为这2种效果一样。然而softmax则认为第二种更好,并且想着继续优化。
技术分享图片











































以上是关于CS231N-线性回归+svm多分类+softmax多分类的主要内容,如果未能解决你的问题,请参考以下文章

CS231N课程作业Assignment1--Softmax

Python 代码CS231n中Softmax线性分类器非线性分类器对比举例(含python绘图显示结果)

tensorflow实现svm多分类 iris 3分类——本质上在使用梯度下降法求解线性回归(loss是定制的而已)

分类和回归-支持向量机SVM算法

CS231n课程笔记翻译

CS231N课程作业Assignment1--KNN