CS231n-3-Loss Function & Optimization

来源:互联网 发布:丫头蟋蟀罐淘宝店铺 编辑:程序博客网 时间:2024/06/05 16:50

注意:本课程是应用型课程,对理论证明与思想要求不高,感觉是讲深度学习主要技术,里面的细节都需要自己深入学习。
学完本课程,还需要对理论和代码加强。

Official Lecture Notes
知乎翻译:上中下

recall:

Linear Classifier

f(x,W)=Wx
W 权值矩阵:参数
(x,y) (图像,标签)

Loss function

measure unhappiness: 结果和正确值相差多远
objective: minimize loss function
有两种主流的loss function: SVM & Softmax

SVM loss

这里写图片描述

钟情于一的SVM先生:Support Vector Machine
思想:设立一个safety margin (此处为1),对于每一个xi,所有类别的score:sj和正确值syi之差(加一个safety margin,对过于接近正确值且不正确的score,也不满意)求和。
L为所有Li的算术均值

当然也可以选平方,这是hyperparameter,we are divided on this. 一般是线性,下面的L2也是一般情况。

但注意,深度学习的范式:不仅要调出效果最好的参数,还要对参数本身有要求——正则化(regularization)。在无穷多个最佳的参数中选择正则最好的一个(防止overfitting),或者说,要在Wx和R(W)中trade-off.
这里写图片描述
上面是SVM最终的公式

Softmax

Multinomial logistic regression
这里写图片描述
这里写图片描述

这里的思想挺深的,用e指数,以及概率角度,和统计学,信息论(交叉熵)有关。以后再研究。
Softmax关注正确值的概率多大,概率的度量采用:先指数化(exp),归一化(normalized)。最后-log的一个目的是最小化,方便求导。
事实上,找softmax的loss function最小值就是极小似然估计,即取到这样的参数时,L最小,分类最正确。我们熟知似然估计需要log简化求导。

这里写图片描述

两者都要正则化。SVM是个粗犷而专情的男人,softmax很精细。

Optimization

Lecture Note

这里写图片描述
假象我们就是这个山谷里蒙面小人。山坐落在W超平面,山的表面是L(W的函数)。我们的目标是谷底(minimize loss function),我们在每个地方可以测量海拔(Loss function),那我们怎么办呢?
一个simple的办法(假设全局最优=局部最优):走一小步看看呗。数学上就是算L关于W的gradient,梯度所指向的地方就是前进方向。(注意梯度是超平面向量,指向最陡峭的方向)

这里写图片描述

How to compute gradient

计算梯度有两种方法:数值计算,分析计算。
numerical 数值解:近似求解,取h=0.00001,(f(x+h)-f(x))/h求出梯度的每一个分量。(x+h指的是x[i]+h,其他不变)这种方法比较慢,不采用
analytic 解析解:数学推导出梯度式子,比较快。这里略。以后研究。
数值计算可以起到gradient check作用。

这里写图片描述

Gradient Descent

这里写图片描述
列表内容

这是最常用最简单的更新参数方式。沿着梯度的反方向走。不断更新。
但这里的步长(step size, aka learning rate)是很头痛的超参数。步长太大,错过最低点,太小又太慢。
还有一个头痛的超参数就是正则化的系数λ
补充:SVM is convex,所以局部最优=全局最优,碗状。

接下来介绍随机梯度下降,就是随机取小批量样本来学习?
下节课介绍反向传播,是梯度解析解的高级求法。

0 0
原创粉丝点击