Happy moment: 隔着屏幕都能听到一声尖叫
To to
- Define a loss function that quantifies our unhappiness with the scores across the training data.
- Come up with as way of efficiently finding the parameters that minimize the loss function.(optimization)
Multiclass SVM loss:
- SVM损失函数:
每个类别的损失函数: Li=∑j≠yimax(0,sj−syi+1) (hinge loss)
总的损失函数的均值: L=1N∑Ni=1Li - 将所有不正确类别的评分与正确类别的评分之差加1,将得到的数值与0作比较,取二者中的最大值。然后将所有的数值进行求和。不仅要是正确类别的评分高于错误类别的评分,还要使用一个安全系数值1.
- 举例
- Question1:what if the sum was insead over all classes ( including j=y_i)?
- Question2:what if we used a mean instead of a sum here?
- Question3:what if we used : Li=∑j≠yimax(0,sj−syi+1)2 (Squared hinge loss)
- Question4:what is the min/max possible loss?
- Question5:usually at initialization W are small numbers, so all s ~= 0. What is the loss?
- Answer1:相当于在最终的损失结果上加了一个1
- Answer2: 由于类别数n=3没有变,因此取平均值只是成比例地改变了损失函数的大小,对总趋势并无影响。故此:没有必要取平均值,也没有必要令j = y_i
- Answer3:我们不是在不断的缩放scaling或平移shifting这一损失,事实上,是在非线性地改变支持向量机SVM如何来进行工作的这一权衡,而且在权衡不同的分数,这并不太容易看出。Li的指数可视为超参数取1or2
- Answer4:min:0/ max:infinity
- Answer5:我们在准备初始时的W是非常小的,这就导致了在优化最开始的时候分数是很接近零的,这些黑色的数字都接近于零,当所有分数都接近于零的时候,损失函数将会是什么呢?(类的数量减去1),当计算机计算出的第一个答案是这个时,我们确定计算过程无误
There is a bug with the loss:
f(x,W)=Wx
L=1N∑i=1N∑j≠yimax(0,f(xi;W)j−f(xi;W)yi+1)假设我们拥有整个W的空间,是否能找到两个W使L=0?如果可以,我们如何定义W的优先级?
- 根据上面的问题“引出”正则化的概念
cat | 3.2 | 1.3 | 2.2 |
---|---|---|---|
car | 5.1 | 4.9 | 2.5 |
frog | -1.7 | 2.0 | -3.1 |
举例说明:缩放带来的影响
Before
=max(0,1.3-4.9+1)+max(0,20.-4.9+1)=0
With W twice as large
=max(0,2.6-9.8+1)+max(0,4.0-9.8+1)=0
因为后面加了1,比例因子要大于1,考虑缩放造成的偏置
正式引出正则项
Weight Regularization
常用正则项:
R(W)是正则化函数, Wk,l 是二维矩阵,下面行列求和再相加
w全部为0,则R(W)为零,但就没办法分类了,故此前后会相互竞争
- L2 regularization: R(W)=∑k∑lW2k,l
- L1 regularization: R(W)=∑k∑l|Wk,l|
- Elastic net(L1+L2): R(W)=∑k∑lβW2k,l+|Wk,l|
- Max norm regularization:(might see later)
Dropout (will see
用正则化处理损失函数,事实上:正则化是权衡你的训练损失和拟用于测试集的泛化损失,所以正则化是一系列通过顺势来是目标相加的技术
L2 正则化的动机(Motivation):
- L2正则化的特点:
- 尽可能地展开权重并利用所有像素点
- 尽量多的利用各个维度,以充分挖掘信息
- L1正则化的特点:
- 可以得到稀疏矩阵,很多w系数都是0
Softmax Classifier (Multinomial Logistic Regression)
接下来,学习他们之间的区别,是实践中,SVM和softmax分类器是你的两种选择,他们普遍用于线性分类其中,通常你会发现softamx分类器更受欢迎。softmax分类器有时也被叫做多项式Logistic回归,即一般化的Logistic回归。
它是在Scores得分的基础上表明损失的另外一种函数形式
- Softmax Classfier Describtion:
- s=f(xi;W)
- scores = unnormalized log probabilities of the classes
- scores是每个类别未规范化(标准化)的概率
P(Y=k|X=xi)=esk∑jesj−−−where−−−s=f(xi;W) - 以上便是Softmax function
- 当 X=xi 时, Y=k 的概率取最大,等价于,取概率的NLL(负对数似然)
- Li=−logP(Y=yi|X=xi)
- in summary:
- Li=−log(esk∑jesj)
- 由scores得分计算exp指数,再计算归一化数据,最后计算NLL负对数似然概率
- 归一化概率越趋近于1,损失 Li 也就越小
Question1: What is the min/max possible loss L_i?—(min=0;max=infinity)
Question2:usually at initialization W are small
numbers, so all s ~= 0.What is the loss?—(设类别数为N,则结果为 1N )
![]()
Softmax vs SVM
- Softmax: Li=−log(esk∑jesj)
- SVM: Li=∑j≠yimax(0,sj−syi+1)
- Softmax 与 SVM之间的差别可以用这样一个问题的答案来解释:
Question:
Suppose I take a datapoint and I jiggle a bit (changing its score slightly). What happens to the loss in both cases?
Answer:
此处举例阐明一个重要区别:SVM具有附加的稳定性,一旦样例点满足边界条件(误分类评分小于正确分类评分减一),这个样例点就不会影响损失函数,svm对于接近分类边界的点较为敏感,对于远离分类边界的点不是很敏感。而softmax则要将所有样例点都纳入考虑,对每一个样本点都有所考虑。这就是二种分类器最显著的差别。 - 助教花了一天时间做的网站Demo:
http://vision.stanford.edu/teaching/cs231n/linear-classify-demo/
Optimization
Strategy #1: A first very bad idea solution: Random search
随机取一些W的采样,然后计算他们的损失值,然后重复这些步骤,直到找到一个W的值使得损失值最小
15.5% accuracy! not bad!至少比十个类别随机猜测10%概率要高要高
然而:(SOTA is ~95%)….
Strategy #2: Follow the slope
- 给定W → f(x,W) → loss
Evaluation the gradient numerically
- approximate
- very slow to evaluate
感谢牛顿-莱布尼兹的微积分大法求方向导数,但笔者任然表示没听懂?
Strategy #3: (Mini) Gradient Descent
需要关注两个参数:
【step size/learning rate】 +【正则化参数:lambda】
Common mini-batch sizes are 32/64/128 examples
e.g. Krizhevsky ILSVRC ConvNet used 256 examples
根据GPU选择相应的size
![]()
图片来源:http://www.myexception.cn/cloud/2058480.html
Image Feature
- Color (Hue) Histogram
- HOG/SIFT features
- Bag of Words
- 自动提取特征的方法CNN
Next Class
- Becoming a backprop ninja
- Neural Networks (part 1)