softmax与对数似然代价函数

### 负对数损失函数概述 在机器学习中,负对数(Negative Log-Likelihood, NLL)是一种常用的损失函数,尤其适用于分类问题。该损失函数衡量的是模型预测的概率分布实际标签之间的差异。 对于二元分类问题,NLL可以表达为: ```python import numpy as np def binary_nll_loss(y_true, y_pred_prob): epsilon = 1e-15 # 防止log(0) y_pred_clipped = np.clip(y_pred_prob, epsilon, 1 - epsilon) nll = -(y_true * np.log(y_pred_clipped) + (1 - y_true) * np.log(1 - y_pred_clipped)) return nll.mean() ``` 当应用于多类分类时,则采用softmax激活后的概率向量计算NLL: ```python from scipy.special import softmax def multi_class_nll_loss(y_true_one_hot, logits): probabilities = softmax(logits, axis=1) selected_probs = np.sum(probabilities * y_true_one_hot, axis=1) epsilon = 1e-15 clipped_selected_probs = np.clip(selected_probs, epsilon, 1 - epsilon) nll = -np.log(clipped_selected_probs).mean() return nll ``` 通过最小化这个损失值,可以使模型学到更好的参数配置来拟合数据集中的模式[^2]。 ### 特点分析 负对数具有如下特性: - 对于正确分类的情况给予较低的惩罚;而对于错误分类则施加较大的惩罚。 - 当预测接近真实情况时,其梯度会变得很小,有助于稳定训练过程。 - 可以看作是对最大估计的一种实现方式,在贝叶斯框架下有着坚实的理论基础[^4]。 ### 应用场景 此方法广泛应用于各种类型的监督式学习任务之中,特别是那些涉及离散型输出变量的任务,如文本分类、图像识别等领域内的多类别或多标签分类问题[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值