CS231n
Lecture 3: Loss Functions and Optimization
上节课介绍了线性分类器,这节课介绍如何通过定义合适的loss函数(正如《统计学习方法》中介绍的统计学习三大要素之一的“策略”)并优化该loss得到合适的参数(“算法”)
loss
- SVM loss/Hinge loss
L(x,y)=∑i≠ymax(0,si−sy+1)L(x,y)=∑i≠ymax(0,si−sy+1)
直观解释是只有sy≥si+1∀i≠ysy≥si+1∀i≠y时L(x,y)L(x,y)才为0,说明光是y=argmaxisiy=argmaxisi还不够,要有不小于1的裕量才行,这其实就是soft margin SVM。
Q: What happens to loss if car scores change a bit?
A: 第1、3列的loss发生相应的变化,但是第2列的不会变
Q2: what is the min/max possible loss?
A: 最小当然为0,最大可以为+∞+∞
Q3: At initialization W is small so all s ≈ 0. What is the loss?
A: n−1n−1
Q4: What if the sum was over all classes? (including j = y_i)
A:L += 1
Q5: What if we used mean instead of sum?
A:L /= (n - 1)
Q6: What if we used L=∑i≠y(max(0,si−sy+1))2L=∑i≠y(max(0,si−sy+1))2
A: loss增大
不带偏置项的SVM的解不唯一:任意可行解伸缩之后都是可行解⇒⇒正则化,Occam剃刀
正则化方式:Lp,p∈{2,1,+∞}Lp,p∈{2,1,+∞}, elastic net, dropout, batch normalization, stochastic depth,… - Softmax loss
L=−logP(Y=y|X=x)=−logesy∑iesiL=−logP(Y=y|X=x)=−logesy∑iesi
Q: What is the min/max possible loss L_i?
A: min = 0当P(Y=y|X=x)=1P(Y=y|X=x)=1, max = −∞−∞当P(Y=y|X=x)=0P(Y=y|X=x)=0
Q2: Usually at initialization W is small so all s ≈ 0. What is the loss?
A: L≃−log1n=lognL≃−log1n=logn - 比较二者
Q: Suppose I take a datapoint and I jiggle a bit (changing its score slightly). What happens to the loss in both cases?
A: SVM 要看score的分布,如果分布对正确分类有利,那么几乎没什么影响,否则会有影响;
Softmax dL=∇LTds=(es∑es−1(y))TdsdL=∇LTds=(es∑es−1(y))Tds取决于输出的概率分布
Optimization
梯度下降
数值计算太繁重,用微积分计算解析式!
实际使用时用解析式计算,但是要用数值计算保证正确
全体数据同时优化计算量太大,用SGD,一般32/64/128一个batch
图像特征
目的是使数据映射到线性可分的空间
最简单的图像特征:Hue histogram
除此之外还有HoG(将图像分为8×88×8的区域,每个区域计算9个方向的梯度直方图),BoW(从训练集中提取随机patch进行聚类形成码本,对任意一张输入图像,分析其在码本上的分布)
CNN其实是在利用图像特征进行学习