前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Crossentropy loss与Hinge loss

Crossentropy loss与Hinge loss

作者头像
狼啸风云
修改2022-09-04 21:14:34
1.8K0
修改2022-09-04 21:14:34
举报

损失函数

在之前写期望风险的时候其实已经提过这个概念了,再补充一下

损失函数 定义:损失函数就一个具体的样本而言,模型预测的值与真实值之间的差距。 对于一个样本(xi,yi)其中yi为真实值,而f(xi)为我们的预测值。使用损失函数L(f(xi),yi)来表示真实值和预测值之间的差距。两者差距越小越好,最理想的情况是预测值刚好等于真实值。

进入正题~

categorical_crossentropy loss(交叉熵损失函数)

讲交叉熵损失函数,我想先从均方差损失函数讲起

均方差损失函数 简单来说,均方误差(MSE)的含义是求一个batch中n个样本的n个输出与期望输出的差的平方的平均值。比如对于一个神经元(单输入单输出,sigmoid函数),定义其代价函数为 (其中y是我们期望的输出,a为神经元的实际输出【 a=σ(z), where z=wx+b 】。):

C=\frac{(y-a)^{2}}{2}

在训练神经网络过程中,我们通过梯度下降算法来更新wb,因此需要计算损失函数对wb的导数:

\begin{array}{l} \frac{\partial C}{\partial w}=(a-y) \sigma^{\prime}(z) x=a \sigma^{\prime}(z) \\ \frac{\partial C}{\partial b}=(a-y) \sigma^{\prime}(z)=a \sigma^{\prime}(z) \end{array}

然后更新w、b w <—— w - η* ?C/?w = w - η * a σ′(z) b <—— b - η ?C/?b = b - η * a * σ′(z) 因为sigmoid函数的性质,导致σ′(z)在z取大部分值时会很小,这样会使得w和b更新非常慢(因为η * a * σ′(z)这一项接近于0)。

为了克服这个不足,引入了categorical_crossentropy(交叉熵损失函数)

categorical_crossentropy(交叉熵损失函数) 交叉熵是用来评估当前训练得到的概率分布与真实分布的差异情况。 它刻画的是实际输出(概率)与期望输出(概率)的距离,也就是交叉熵的值越小,两个概率分布就越接近。 公式如下: (其中y为期望的输出,a为神经元实际输出) 【a=σ(z), where z=∑Wj * Xj+b】

C=-\frac{1}{n} \sum_{x}[y \ln a+(1-y) \ln (1-a)]

同样进行求导:

\frac{\partial C}{\partial w_{j}}=\frac{1}{n} \sum_{x} x_{j}(\sigma(z)-y)

\frac{\partial C}{\partial b}=\frac{1}{n} \sum_{x}(\sigma(z)-y)

从上图可以看到,导数中没有σ′(z)这一项,权重的更新是受σ(z)?y这一项影响,即受误差的影响,所以当误差大的时候,权重更新就快,当误差小的时候,权重的更新就慢性质: a.非负性。(所以我们的目标就是最小化代价函数) b.当真实输出a与期望输出y接近的时候,代价函数接近于0.(比如y=0,a~0;y=1,a~1时,代价函数都接近0)。 这边举一个简单的二分类例子: 预测为猫的p=Pr(y=1)概率是0.8,真实标签y=1;预测不是猫的1-p=Pr(y=0)概率是0.2,真实标签为0。

那么 loss=?(1?log(0.8)+0?log(0.2))=?log(0.8)。 详细解释--KL散度与交叉熵区别与联系 其余可参考深度学习(3)损失函数-交叉熵(CrossEntropy) 如何通俗的解释交叉熵与相对熵?

Hinge loss

在网上也有人把hinge loss称为铰链损失函数,它可用于“最大间隔(max-margin)”分类,其最著名的应用是作为SVM的损失函数。

二分类情况下

多分类 扩展到多分类问题上就需要多加一个边界值,然后叠加起来。公式如下:

L_{i}=\sum_{j \neq y_{i}} \max \left(0, s_{j}-s_{y_{i}}+\Delta\right)

image.png 第一列表示样本真实类别为cat,分类器判断样本为cat的分数为3.2,判断为car的分数为5.1,判断为frog的分数为 -1.7。 hinge loss:

\begin{array}{l} \max (0,5.1-3.2+1)+\max (0,-1.7-3.2+1) \\ =\max (0,2.9)+\max (0,-3.9) \\ =2.9 \end{array}

栗子②△取10

本文参与?腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019年08月27日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体同步曝光计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • categorical_crossentropy loss(交叉熵损失函数)
  • Hinge loss
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com