1、softmax回归
1.1 从回归到分类
输出i是预测为第i类的置信度。输出的个数等于类别的个数
均方损失
n个类别,假设先用1,0表示是否类别正确。使用均方损失训练,最大值作为预测。
校验比例
其实我们关心的不是他具体分类的置信度的值是多少。
关心的是是否可以把正确类别的置信度是否特别大,模型能够把真正的类别和其他的类别拉开一个距离,数学表达式为
O
y
?
O
i
>
=
Δ
(
y
,
i
)
O_y - O_i >= \Delta(y,i)
Oy??Oi?>=Δ(y,i)
引入一个操作子softmax,输出匹配的概率,计算方式使用指数(可以得到非负数,然后和为1)
1.2 softmax和交叉熵损失
其中,求和时,
y
i
y_i
yi?中只有真实的类的值才为1,其他的为0,所以损失函数写成
?
l
o
g
y
^
y
-log\hat{y}_y
?logy^?y?
我们不关心对于非正确类的预测值,我们只关心对于正确类的预测值
损失函数的梯度就是真实概率和预测概率的区别
1.3总结
- softmax回归是一个多类分类模型
- 使用softmax操作子得到每一个类的预测置信度
- 使用交叉熵来衡量预测和标号的区别
2、损失函数
L2 LOSS :
l
(
y
,
y
‘
)
=
1
2
(
y
?
y
‘
)
2
l(y,y^`)=\frac{1}{2}(y-y^`)^2
l(y,y‘)=21?(y?y‘)2??
蓝色为原函数(y取零),橙色为其导数,绿色为其对应的似然函数(统计学里面的)。可以看到里预测值和真实值差距越大,其梯度比较大,对参数的更新也就比较多。随着预测值慢慢靠近真实值,梯度慢慢变小。
L1 LOSS :
l
(
y
,
y
‘
)
=
∣
y
?
y
‘
∣
l(y,y^`)=|y-y^`|
l(y,y‘)=∣y?y‘∣?
该函数的导数在不等于0的情况下都是常数,所以好处就是梯度不会随着预测值的变化而变化(同一个大区间内)。其坏处就是在0点处导数不可导,还有当跨区间时,导数会在-1和1二者之间变化
HUber’ s Robust Loss
可以看做以上两种函数的结合 ,好处就是,当预测值和真实值相差较大时,梯度会以均匀的力度往回推,当相差比较小的时候,梯度会随着差距减小而慢慢变小,这就就能保障在优化末期的时候优化是比较平滑的,不会出现太多的数值问题。
|