cs231n-Lecture 3: Loss Functions and Optimization

Lecture 3:Loss Functions and Optimization

  • loss function
  • Regularization
  • Softmax classifier
  • Optimization

loss function

A loss function tells how good our current classifier is.
数据集在分类器中进行计算后,得到

cs231n-Lecture 3: Loss Functions and Optimization_第1张图片
y i y_i yi表示了将 x i x_i xi代入W中进行计算,即代入不同类别的权重组中进行计算,实际类别的计算结果,如图
cs231n-Lecture 3: Loss Functions and Optimization_第2张图片
输入数据 x i x_i xi,若类别为猫,则 y i y_i yi的值为将 x i x_i xi的值代入猫的权重系数进行计算的结果,代入其他权重系数的值也都算出得到。
较好的分析结果为,实际类别的分数远大于其他类别,则效果较好。
因此取损失函数
cs231n-Lecture 3: Loss Functions and Optimization_第3张图片
以多类别SVM函数为例,其损失函数如图所示
cs231n-Lecture 3: Loss Functions and Optimization_第4张图片
cs231n-Lecture 3: Loss Functions and Optimization_第5张图片

Regularization

特别的,当L = 0时,W的值不是唯一的,此时将W乘以2,根据SVM损失函数,函数值也是0。
为了选择最好的权重值,引入正则化。
cs231n-Lecture 3: Loss Functions and Optimization_第6张图片
正则化的目的是预防模型在训练集上拟合过好,在测试集上,当存在噪声时,表现效果差。
cs231n-Lecture 3: Loss Functions and Optimization_第7张图片
λ \lambda λ为重要的超参数,可以进行调节。
R(W)正则化的简单例子:
cs231n-Lecture 3: Loss Functions and Optimization_第8张图片
除此之外:

  1. Dropout
  2. Batch normalization
  3. Stochastic depth
  4. fractional pooling
    正则化引入的原因:
    1.表达对权重的偏好
    2.令模型在测试集上表现的更好
    3.增加曲率来改善降低权重参数的过程
    L2正则化倾向于均匀分布的权重
    L1正则化倾向于总和较小的权重

Softmax classifier

多项式逻辑回归
实际上将分类器的分数转化为可能性
在这里插入图片描述

损失函数变化为对可能性求log
在这里插入图片描述
损失函数可能有其他形式,如交叉熵损失函数(Cross Entroy):
cs231n-Lecture 3: Loss Functions and Optimization_第9张图片
p,q的意思与之前的损失函数相同,p代表正确类别输出的结果,q代表其他输出结果。
损失函数实际为所有类别损失函数的总和。
理想结果是实际类别的的可能性为1,其他类别的可能性都是0,此时损失函数恰好为0。
SVM与softmax的区别:
当将分类器分数变化为原来的2倍时,SVM的损失函数值也发生变化,但softmax变化非常小。
cs231n-Lecture 3: Loss Functions and Optimization_第10张图片

Optimization

实际进行优化应采取损失函数值变化到0的方向进行优化,则以损失函数值为因变量,权重为自变量,建立函数,此时函数的维度为权重的个数,分别对每一个维度求偏导数,将偏导数取负值加在权重上,直至损失函数达到0。
cs231n-Lecture 3: Loss Functions and Optimization_第11张图片
在这里插入图片描述
此时,输入数据为多个,即不是一张图片,而是N张图片。
在实际计算过程中,有两种方式计算梯度:
1.数值梯度:
在某一权重上增加极小的数如0.0001,计算此时损失函数的变化量,再除以0.0001,得到对应偏导数。
这种方法非常缓慢,是一种近似的方法,
2.解析梯度
对损失函数公式直接求偏导,代入偏导数公式计算梯度。
精确且快速
通常,我们使用解析梯度计算梯度,用数值梯度进行验证。

你可能感兴趣的:(支持向量机,机器学习,算法)