softmax交叉熵为什么要取-log

本文深入探讨了Softmax函数和交叉熵损失函数在机器学习中的应用,解释了为何使用-log进行权重调整,以及如何通过这种方式使模型更有效地学习正确的分类。
部署运行你感兴趣的模型镜像

                                                              softmax交叉熵为什么要取"-log"

#######################################################################################

如图:-log是递减函数,对应着 错误越大包含信息越多,越正确包含信息越少,所以给错的比例越大。

而softmax之后,全部在【0,1】之间,越接近1,比例接近0;越接近0,比例无限大。从而可以学习正确的东西。

 

 

 

 

 

 

 

 

 

 

 

 

您可能感兴趣的与本文相关的镜像

TensorFlow-v2.9

TensorFlow-v2.9

TensorFlow

TensorFlow 是由Google Brain 团队开发的开源机器学习框架,广泛应用于深度学习研究和生产环境。 它提供了一个灵活的平台,用于构建和训练各种机器学习模型

在分类任务中,Softmax 激活函数通常与交叉熵损失(Cross-Entropy Loss)结合使用,用于多分类问题。在深度学习中,Softmax 函数将模型输出的原始分数(logits)转换为概率分布,而交叉熵损失则衡量预测概率分布与真实标签之间的差异。 --- ### 为什么 Softmax 的损失函数是 `loss = -log(a_i)`,当 `y=i` 时? 我们先从数学上理解这个问题。 #### 1. Softmax 函数定义 对于一个向量 $ z = [z_1, z_2, ..., z_C] $,Softmax 函数将其映射为一个概率分布: $$ a_i = \text{Softmax}(z_i) = \frac{e^{z_i}}{\sum_{j=1}^{C} e^{z_j}} $$ 其中 $ a_i $ 是第 $ i $ 类的概率输出。 #### 2. 真实标签表示 在多分类任务中,真实标签通常使用 one-hot 编码表示。例如,在三分类任务中,若真实类别是第 2 类,则标签为: $$ y = [0, 1, 0] $$ #### 3. 交叉熵损失函数定义 对于单个样本,交叉熵损失函数定义为: $$ \text{Loss} = -\sum_{i=1}^{C} y_i \log(a_i) $$ 由于 $ y $ 是 one-hot 编码,只有一个位置为 1,其余为 0。因此,损失函数可以简化为: $$ \text{Loss} = -\log(a_i) \quad \text{当 } y=i $$ 这表示我们只关心模型对真实类别的预测概率。 --- ### 代码示例(Python) 以下是一个简单的 Softmax + 交叉熵损失的实现: ```python import numpy as np def softmax(z): exp_z = np.exp(z - np.max(z)) # 防止数值溢出 return exp_z / np.sum(exp_z) def cross_entropy_loss(y_true, y_pred): return -np.log(y_pred[y_true]) # 示例:三分类问题 z = np.array([2.0, 1.0, 0.1]) # 模型输出的 logits y_true = 0 # 真实类别是第 0 类 # 计算 softmax a = softmax(z) # 计算损失 loss = cross_entropy_loss(y_true, a) print("Softmax 输出:", a) print("交叉熵损失:", loss) ``` #### 解释- `softmax` 函数logits 转换为概率分布。 - `cross_entropy_loss` 函数根据 one-hot 标签选择对应的概率值并计算负对数似然。 - 最终输出的是模型对真实类别的置信度的负对数,即损失值。 --- ### 为什么用负对数? - 对数函数是单调递增的,因此 $ -\log(a_i) $ 随着 $ a_i $ 的增大而减小。 - 当模型对真实类别的预测概率接近 1 时,损失接近 0;当预测概率接近 0 时,损失趋于无穷大。 - 这种设计鼓励模型提高对真实类别的预测概率。 --- ### 相关问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值