cs231_n3.1_Loss_Function

线性分类器可以解释为每个种类的学习模板,对图里的每个像素,以及10个分类里的每一项,矩阵W都有一些对应项,告诉我们那个像素对那个分类有多少影响。也就是说矩阵w里的每一行,都对应一个分类模板,如果我们揭开这些行的值(成图片的大小),那么每一行又分别对应一些权重,每个图像像素值和对应那个类别的一些权重,将这行分解回图像的大小,我们就可以可视化学到的每个类的模板。还有一种对线性分类器的解释是,学习像素在高维空间的一个线性决策边界,其中高维空间就对应了图片能取到的像素密度值。

训练目的:使用training data 得到好的 W,使用W我们可以得到任意图片的10个分类的得分。损失函数:输入分类器的权重W,得到一个得分,定量估计W的好坏。然后找到一种可行方式,在W的可行域里找到一个最合适的W,使损失函数最小——优化问题。

W反映的是x向量的值在多大程度上对输出有影响,加入L2正则项,可以使得权值减少(变化)的更少些,更加能够传递出x中不同元素值的影响,它的鲁棒性更好些。当你输入的x发生变化,我们的判断会铺展开来,并主要取决于x向量的整体情况,而不是取决x向量中的某个特定元素。

 

  

     每个类(如飞机)相当于W的一行,对应某一种类(飞机)的模板。通过该行权重(模板),确定目标为飞机或者其他。

 

 

通过f(x,W)定量的描述参数W。然后在所有的W中,通过损失函数最小化,选出最优的W。

多分类SVM损失

添加正则项,减少模型复杂度:通过求导可以发现,增加正则项,可以减少权值W,即权值衰减。

过拟合的原因:1.训练数据少  2.模型过于复杂

避免过拟合的方法有很多:early stopping、数据集扩增(Data augmentation)、正则化(Regularization)包括L1、L2(L2 regularization也叫weight decay),dropout。

在机器学习算法中,我们常常将原始数据集分为三部分:training data、validation data,testing data。这个validation data是什么?它其实就是用来避免过拟合的,在训练过程中,我们通常用它来确定一些超参数(比如根据validation data上的accuracy来确定early stopping的epoch大小、根据validation data确定learning rate等等)。那为啥不直接在testing data上做这些呢?因为如果在testing data做这些,那么随着训练的进行,我们的网络实际上就是在一点一点地overfitting我们的testing data,导致最后得到的testing accuracy没有任何参考意义。因此,training data的作用是计算梯度更新权重,validation data如上所述,testing data则给出一个accuracy以判断网络的好坏。

     L2正则化就是在代价函数后面再加上一个正则化项:

              

正则化:加入L1或L2范数等,减小模型复杂度,避免过拟合。L1是稀疏的,L2是平滑的。简单来说,就是利用先验知识,在处理过程中引入正则化因子(regulator),增加引导约束的作用,比如在逻辑回归中使用正则化,可以有效降低过拟合的现象。

归一化(Normalization)是为了消除不同数据之间的量纲,方便数据比较和共同处理,比如在神经网络中,归一化可以加快训练网络的收敛性;

1. 把数据变为(0,1)之间的小数,主要是为了方便数据处理,因为将数据映射到0~1范围之内,可以使处理过程更加便捷、快速。

2. 把有量纲表达式变换为无量纲表达式,成为纯量。经过归一化处理的数据,处于同一数量级,可以消除指标之间量纲和量纲单位的影响,提高不同数据指标之间的可比性。

3. 主要算法:线性转换,即min-max归一化(常用方法)

 y=(x-min)/(max-min)

标准化(Standarlization):是为了方便数据的下一步处理,而进行的数据缩放等变换,并不是为了方便与其他数据一同处理或比较,比如数据经过0-1均值标准化后,更利于使用标准正态分布的性质进行处理;

刚一直再讲多分类SVM损失函数,还有一个比较常用的是多项逻辑回归或者softmax loss

s是得分,我们将其指数化,以便结果都是正数,接着我们使用这些指数的和来归一化它们,当我们将分数经过softmax处理后,我们得到了概率分布,对于所有类别我们都有了相应的概率,每个概率介于0和1之间,所有类别的概率和等于 1。 接下来我们拿得到的概率值同我们的目标值(真实的概率分布)进行比较,所以对于类别和P(Y=yi | X=xi)应该尽可能大,为了便于计算取log,取负,即表现为损失函数Li最小化。

SVM多分类:正确的分值比不正确的分值高出一个安全边际(阈值)。

softmax loss:目标是将概率质量函数(离散分布值)等于1,所以,你给正确分类在高的分值,同时给不正确分类再低的分值,softmax依然会在正确分类上积累更多的概率质量,正确的阶级向无穷大迈进,并持续将这一分值推向无穷大,并将不正确分类的分值推向负无穷。

猜你喜欢

转载自blog.csdn.net/jialibang/article/details/108973788