optimization - PyTorch - 通过滥用损失函数(负对数似然)获得卓越的模型性能?
问题描述
我误读了 PyTorch NLLLoss()
,不小心将模型的概率传递给了损失函数,而不是模型的对数概率,这是函数所期望的。但是,当我在这种误用的损失函数下训练模型时,模型 (a) 学得更快,(b) 学习更稳定,(b) 损失更低,(d) 在分类任务中表现更好。
我没有一个最小的工作示例,但我很好奇是否有其他人经历过这个或知道这是为什么?有什么可能的假设吗?
我的一个假设是,关于误用损失函数的梯度更稳定,因为导数没有按 1/模型输出概率缩放。
解决方案
推荐阅读
- debugging - 如何在程序“脚本”中找到 interface/ftdi/esp32_devkitj_v1.cfg?
- python - 如何在不复制的情况下从单个 1D Numpy 数组构造 Pandas DataFrame
- node.js - Docker x NodeJS - node_modules 的问题
- apache-camel - toD() - 通过 Quartz 调度的骆驼 2.23 中的动态 URI 形成
- sql - 选择没有重复。相同的数据,但顺序不同
- angular - 在 Angular 6 的服务中使用 http 时无法读取未定义的属性“get”
- php - PHP Imagick 类在从 Web 服务器调用而不是从命令行调用时工作
- php - 使用 PHP 向电子邮件发送 Twillio SMS 响应
- javascript - 按多个条件过滤 JSON 结果
- api - 为什么即使 HTTP 可以在其 Cookie 标头中发送状态信息,它也被称为无状态协议?