案例详解cross-entropy交叉熵损失函数及反向传播

本文详细介绍了交叉熵损失函数的定义、反向传播过程,并通过案例探讨了它在多分类任务(包括one-hot、two-hot和多标签分类)中的应用,解释了为何交叉熵适合作为损失函数。
摘要由CSDN通过智能技术生成

摘要

本文给出 cross-entropy 函数的定义, 求解其在反向传播中的梯度, 并通过案例详解 cross-entropy 的含义.

相关

配套代码, 请参考文章 :

Python和PyTorch对比实现cross-entropy交叉熵损失函数及反向传播

系列文章索引 :
https://blog.csdn.net/oBrightLamp/article/details/85067981

正文

1. 交叉熵函数的定义:

假设在一个多分类问题中, 用 y i y_i yi 表示为实际概率, s i s_i si 为计算得出的预测概率.
常有 :
0 ⩽ y i ⩽ 1 ∑ i = 1 k y i = 1 0\leqslant y_{i} \leqslant 1\\ \quad\\ \sum_{i = 1}^{k}y_{i} = 1\\ 0yi1i=1kyi=1

s i s_i si 由softmax函数计算得出, 则天然满足 :
0 ⩽ s i ⩽ 1 ∑ i = 1 k s i = 1 0\leqslant s_{i} \leqslant 1\\ \quad\\ \sum_{i = 1}^{k}s_{i} = 1\\ 0si1i=1ksi=1

于是, 交叉熵损失函数的定义为:
c r o s s E n t r o p y ( y , s ) = − ∑ i = 1 k y i l o g ( s i ) i = 1 , 2 , 3 , … , k l o g 表 示 以 e 为 底 数 的 自 然 对 数 l o g e crossEntropy(y,s) = -\sum_{i = 1}^{k}y_{i}log(s_{i})\\ \quad\\ i = 1, 2,3, \dots, k\\ \quad\\ log表示以e为底数的自然对数log_{e} crossEntropy(y,s)=i=1kyilog(si)i=1,2,3,,klogeloge

2. 反向传播梯度:

交叉熵损失 :
c = c r o s s E n t r o p y ( y , s ) = − ∑ i = 1 k y i l o g ( s i ) c = crossEntropy(y,s) = -\sum_{i = 1}^{k}y_{i}log(s_{i})\\ c=crossEntropy(y,s)=i=1kyilog(si)

c 对 s 的梯度向量为 :
∇ c ( s ) = ( ∂ c ∂ s 1 , ∂ c ∂ s 2 , ⋯   , ∂ c ∂ s k ) = ( − y 1 s 1 , − y 2 s 2 , ⋯   , − y k s k ) \nabla c_{(s)} =(\frac{\partial c}{\partial s_{1}},\frac{\partial c}{\partial s_{2}}, \cdots, \frac{\partial c}{\partial s_{k}}) =( -\frac{y_1}{s_1}, -\frac{y_2}{s_2},\cdots,-\frac{y_k}{s_k}) c(s)=(s1c,s2c,,skc

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值