09 Softmax 回归 + 损失函数 + 图片分类数据集【动手学深度学习v2】
P1 Softmax 回归
(1)分类有多个输出,输出i代表预测为第i类的置信度
(2)对类别进行有效编码:如果为第i类的话,那么yi就为1,其他为0。!这里的y代表真实值,对真实情况进行编码
(3)o_i是预测其他类的输出,o_y是预测正确类的输出。注意o为输出而y才是概率。
(4)将输出的o值转化成概率,并且非负以及和为1。
(5)交叉熵计算公式:
(6)softmax损失与梯度
由于y(真实值)中只有一个为1,而其他的均为0,故交叉熵公式可以化简。就是对真实值类别的预测值求log然后取负数。
(7)Softmax回归损失函数的梯度公式推导(摘自评论区):
P2 损失函数
(本节笔记摘自评论区)
1.均方损失
- 蓝色曲线表示 y = 0 的时候变化预测值 y‘ 的函数,这是一个二次函数
- 绿色曲线是它的似然函数,即exp( - l ),它的似然函数是一个高斯分布
- 橙色曲线表示损失函数的梯度,它是一条过原点的直线
- 在梯度下降的时候是根据负梯度方向来更新梯度,所以它的导数决定如何更新参数
- 当 y 和 y‘ 离得比较远(横轴到零点的距离越远),梯度越大,对参数的更新越多,更新的幅度越大,反之亦然
2.L2 Loss(绝对值损失函数)
- 蓝色曲线表示 y = 0 的时候变化预测值 y‘ 的函数
- 绿色曲线是它的似然函数,即exp( - l )
- 橙色曲线表示损失函数的梯度,当 距离 > 1 的时候他的值为1,当 距离 < 1 的时候他的值为-1
- 绝对值函数在0点处不可导
- 在梯度下降的时候是根据负梯度方向来更新梯度,它的梯度永远是常数,所以就算 y 和 y‘ 离得比较远,参数更新的幅度也不会太大,会带来稳定性上的好处
- 它的缺点是在 0 点处不可导,另外在 0 点处有一个 -1 到 1 的剧烈变化,不平滑性导致预测值和真实值靠的比较近的时候,也就是优化到了末期的时候这个地方可能就变得不那么稳定
3.Huber's Robust Loss(Huber鲁棒损失)
- 当真实值和预测值相差较大时,他是一个绝对误差,而当他们相差较小时是一个均方误差
- 减去 1 / 2 的作用是使得分段函数的曲线能够连起来
- 蓝色曲线表示 y = 0 的时候变化预测值 y‘ 的函数,在 -1 到 1 之间是一个比较平滑的二次函数,在这个区间外是一条直线
- 绿色曲线是它的似然函数,即exp( - l ),和高斯分布有点类似,但是不想绝对值误差那样在 0 点处有一个很尖的地方
- 橙色曲线表示损失函数的梯度,当 距离 > 1 的时候他的值为 -1 或者 1,是一个常数,当距离 < 1 的时候是一个渐变的过程,这样的好处是当预测值和真实值差得比较远的时候,参数值的更新比较均匀,而当预测值和真实值相差比较近的时候,即在参数更新的末期,梯度会越来越小,保证优化过程是比较平滑的,不会出现数值上的剧烈变化
P3 图片分类数据集
(1)使用类似但更复杂的Fashion-MNIST数据集 (Xiao et al., 2017)。
----------------------------------------------------------------------------------------------------------
今天进度比较慢,明天继续吧