tensorflow - 为什么我要选择与我的指标不同的损失函数?
问题描述
当我浏览互联网上的教程或在 SO 上发布的模型时,我经常看到损失函数与用于评估模型的指标不同。这可能看起来像:
model.compile(loss='mse', optimizer='adadelta', metrics=['mae', 'mape'])
无论如何,按照这个例子,我为什么不优化'mae'
或'mape'
作为损失而不是'mse'
当我什至不关心'mse'
我的指标时(假设这将是我的模型)?
解决方案
在许多情况下,您感兴趣的指标可能不可微分,因此您不能将其用作损失,例如准确性就是这种情况,使用交叉熵损失代替,因为它是可微分的。
对于已经可区分的指标,您只想从学习过程中获得更多信息,因为每个指标衡量的东西都不同。例如,MSE 的比例是数据/预测比例的平方,因此要获得相同的比例,您必须使用 RMSE 或 MAE。MAPE 为您提供相对(而非绝对)误差,因此所有这些指标都衡量了可能感兴趣的不同内容。
在准确性的情况下,使用这个度量是因为它很容易被人类解释,而交叉熵损失则不太直观。
推荐阅读
- javascript - 将数组对象合并到另一个普通对象中
- c# - Avalonia 更改 FluentTheme 的一部分
- python - 使用上传到谷歌 Colab 的文件
- d3.js - 如何缩放/平移以适应 d3 中的整个元素?
- c++ - 无法在 C++ 中获取当前光标位置
- ubuntu - Jupyter 终端中的键盘布局无法正常工作
- javascript - 在反应中更改状态时组件不会重新渲染
- java - 有没有办法在 android studio 中使用 java 以编程方式在屏幕上绘图
- javascript - vue2 表单使用组合 api
- java - Android Studio 中没有可朗读的文本