Lecture 3:Loss Functions and Optimization
loss function
A loss function tells how good our current classifier is.
数据集在分类器中进行计算后,得到
y
i
y_i
yi表示了将
x
i
x_i
xi代入W中进行计算,即代入不同类别的权重组中进行计算,实际类别的计算结果,如图
输入数据
x
i
x_i
xi,若类别为猫,则
y
i
y_i
yi的值为将
x
i
x_i
xi的值代入猫的权重系数进行计算的结果,代入其他权重系数的值也都算出得到。
较好的分析结果为,实际类别的分数远大于其他类别,则效果较好。
因此取损失函数
以多类别SVM函数为例,其损失函数如图所示
Regularization
特别的,当L = 0时,W的值不是唯一的,此时将W乘以2,根据SVM损失函数,函数值也是0。
为了选择最好的权重值,引入正则化。
正则化的目的是预防模型在训练集上拟合过好,在测试集上,当存在噪声时,表现效果差。
λ
\lambda
λ为重要的超参数,可以进行调节。
R(W)正则化的简单例子:
除此之外:
- Dropout
- Batch normalization
- Stochastic depth
- fractional pooling
正则化引入的原因:
1.表达对权重的偏好
2.令模型在测试集上表现的更好
3.增加曲率来改善降低权重参数的过程
L2正则化倾向于均匀分布的权重
L1正则化倾向于总和较小的权重
Softmax classifier
多项式逻辑回归
实际上将分类器的分数转化为可能性
损失函数变化为对可能性求log
损失函数可能有其他形式,如交叉熵损失函数(Cross Entroy):
p,q的意思与之前的损失函数相同,p代表正确类别输出的结果,q代表其他输出结果。
损失函数实际为所有类别损失函数的总和。
理想结果是实际类别的的可能性为1,其他类别的可能性都是0,此时损失函数恰好为0。
SVM与softmax的区别:
当将分类器分数变化为原来的2倍时,SVM的损失函数值也发生变化,但softmax变化非常小。
Optimization
实际进行优化应采取损失函数值变化到0的方向进行优化,则以损失函数值为因变量,权重为自变量,建立函数,此时函数的维度为权重的个数,分别对每一个维度求偏导数,将偏导数取负值加在权重上,直至损失函数达到0。
此时,输入数据为多个,即不是一张图片,而是N张图片。
在实际计算过程中,有两种方式计算梯度:
1.数值梯度:
在某一权重上增加极小的数如0.0001,计算此时损失函数的变化量,再除以0.0001,得到对应偏导数。
这种方法非常缓慢,是一种近似的方法,
2.解析梯度
对损失函数公式直接求偏导,代入偏导数公式计算梯度。
精确且快速
通常,我们使用解析梯度计算梯度,用数值梯度进行验证。