机器学习 Classification的Loss计算 不同Loss function对training的影响

classification输出的表示

从regression引入:
请添加图片描述
在Regression中,输入为x,model的输出为y,目标输出为label y。

若将classification当作regression看待,输入为x,model输出为y,目标输出为 label y class
请添加图片描述
但model输出为数字,而目标输出为class,因此需要将class转化为数字
请添加图片描述
若用序号表示不同的class,例如上图中,有序号1与序号2更近的关系,序号1与序号3更远的关系,若class之间并不存在特定关系,则为class编号不可行。

为解决上述问题,我们可以将class用one-hot vector来表示,label y为几个class,则为几维向量。例如下图中,label y为三维向量:
请添加图片描述

解决label y从class转化为数字这个问题后,还需要将model输出的y从一个数字转化为向量。
请添加图片描述
在regression中,只能得到一个输出y,如上图所示。
可以将output一个数值的方法重复多次即可输出多个数值,如下图所示:
将a1、a2、a3乘上不同的weight再加上bias得到y1;再将a1、a2、a3乘上另外不同的weight再加上另外一个bias得到y2;最后将a1、a2、a3乘上另外不同的weight再加上另外一个bias得到y3.
请添加图片描述
y1、y2、y3组成向量后作为classification中model的输出值

Classification中Loss的计算

label y中每一个值为0或1,而model输出的y中的值为任意值,需要用softmax函数进行normalizey中的任意值,即将任意值挪到0和1之间,以计算y与label y的相似度。
请添加图片描述

Soft-max(Logit)

exp(yi) :exp是exponential,exp(yi)是指对yi取指数
将不同的y取指数后相加得到summation,再用每一个yi除以summation得到不同的yi

Soft-max不仅可以normalize y中的任意值,而且经计算发现,Soft-max还可放大这些值之间的大小差距
请添加图片描述

Loss的计算方式不变,但y与label y之间的差距e有两种计算方式
请添加图片描述
(1)Mean Square Error(MSE)
这是Regression中常见的e的计算方式
(2)Cross-entropy
在Classification中,我们更常用Cross-entropy

更常用Cross- entropy的原因


输入x,输出的y1、y2、y3。假设目标输出为[1,0,0]T
将y3固定为-1000,因此y3在Soft-max之后会趋近于0,和目标值接近,对结果影响则会很小。结果主要由y1和y2影响。
假设y1与y2在范围(-10,10)之间,可作出两种方法下的error surface二维图:
请添加图片描述
(上图中,红色部分表示Loss大,蓝色部分表示Loss小)

若一开始的地方在左上角,即Loss大的位置,则要往Loss小的右下角行进:
MSE方法中:Loss都很大,处于平坦位置,无法用gradient descent来往Loss小的方向走,即便learning rate增大,training仍然困难。
Cross-entropy方法中:坡度是变化的,可通过gradient向右下行进。

Loss function的不同会影响training的难度

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

聪明的Levi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值