Slides:百度云 提取码: gs3n

线性分类的参数

线性分类的公式

f(x,W)=Wx+bf(x, W) = Wx + b
其中WW为参数或者权重

以一个有1010类的32×32×332\times 32\times 3的图片为例
其中f(x,W)f(x, W)bb(10,)(10,)向量,WW(10,3072)(10, 3072)的矩阵,xx(3072,)(3072,)的向量。

计算机视觉中的深度学习3: 线性分类
也可以把bias并到Weight里面,就变成如下了
公式也可以简化成

f(x,W)=Wxf(x, W) = Wx
计算机视觉中的深度学习3: 线性分类

线性分类的效果

线性分类是在一个多维空间里面用多个超平面进行分割

计算机视觉中的深度学习3: 线性分类

线性分类的缺点

很多问题不能通过线性分类来解决,比如在上个世纪把人工智能打入谷底的XOR问题

计算机视觉中的深度学习3: 线性分类
Loss函数

如何选一个好的W让分类器表现有优秀

  1. 找一个好的loss函数
  2. 找一个能让loss函数值最小的W

高的Loss:分类器表现糟糕
低的Loss:分类器表现优秀

对于一个数据集,xix_i是图片,yiy_i是标签
{(xi),yi}i=1N\{(x_i), y_i\}^N_{i=1}
那么Loss函数就是用于描述预测值与实际值中差异的函数
Li(f(xi,W),yi)L_i(f(x_i, W), y_i)
通常会用一个数据集的平均Loss来表示这个分类器在这个数据集上的表现
L=1NiLi(f(xi,W),yi)L={1\over N}\sum_i L_i(f(x_i, W), y_i)

Multiclass SVM Loss

Li=jyi(0,sjsyi+1)L_i=\sum_{j\neq y_i}(0, s_j-s_{y_i}+1)

对于这张猫图,它对于这几个分类计算出来的结果是这样的
计算机视觉中的深度学习3: 线性分类

那么它的SVM Loss就是
L0=max(0,5.13.2+1)+max(0,1.73.2+1)=max(0,2.9)+max(0,3.9)=2.9 \begin{aligned} L_0 &= max(0, 5.1-3.2+1) + max(0, -1.7-3.2+1) \\ & = max(0, 2.9) + max(0, -3.9)\\ & = 2.9 \end{aligned}

平均的Loss则是L=(2.9+=+12.9)/3=5.27L = (2.9+=+12.9)/3=5.27

正则化

正则化的目的是为了防止分类器在训练集上表现过好,防止过拟合现象;同时可以增加曲率从而优化训练的过程

L(W)=1Ni=1NLi(f(xi,W),yi)+λR(W)L(W) = {1\over N}\sum_{i=1}^NL_i(f(x_i, W), y_i)+\lambda R(W)

常用的正则化方式

  1. L2正则:R(W)=klWk,l2R(W)=\sum_k\sum_lW^2_{k,l}
  2. L1正则:R(W)=klWk,lR(W)=\sum_k\sum_l \mid W_{k,l}\mid
  3. Elastic Net(L1+L2):R(W)=klβWk,l2+Wk,lR(W)=\sum_k\sum_l \beta W^2_{k,l} + \mid W_{k,l}\mid
  4. Dropout:丢掉一些训练结果
  5. 归一化
  6. Cutout,Mixup, Stochastic depth

正则化的效果

计算机视觉中的深度学习3: 线性分类
对于w1和w2,他们的训练结果都是一样的,但是对于L2正则函数而言,他们会更喜欢均匀分布的权重,即w2。

Cross-Entropy Loss

通过将分数改变为概率,即,对于XiX_iy=ky = k的概率是:

P(Y=kX=xi)=eskjesjP(Y=k\mid X=x_i)={e^{s_k}\over \sum_je^{s_j}}

那么它的Loss函数就是

Li=logP(Y=yjX=xi)L_i=-logP(Y=y_j\mid X=x_i)

计算机视觉中的深度学习3: 线性分类
利用KL散度衡量两个分布之间的差异。

相关文章: