如果我想预测 0-1 区间的连续结果,我应该使用哪个输出激活和损失?
Which output activation and loss should I use if I want to predict continuous outcome on 0-1 interval?
我想预测连续变量(自动编码器)。由于我已将输入按最小-最大缩放到 0-1 间隔,因此在输出层中使用 sigmoid 激活是否有意义? Sigmoid 不对应于 MSE 损失。有任何想法吗?
使用sigmoid
激活和回归损失,例如mean_squared_error
或mean_absolute_error
摘要: 如果不确定,请使用 binary_crossentropy
+ sigmoid
。如果您的大多数标签是 0 或 1,或者非常接近,请尝试 mae
+ hard_sigmoid
.
解释:
损失函数定义模型的优先级;对于回归,目标是 最小化预测与基本事实(标签)的偏差。激活范围在 0 和 1 之间,MSE 将起作用。
不过;它可能不是最好的 - 特别是对于规范化数据。下面是 [0, 1] 区间的 MSE 与 MAE 的关系图。主要区别:
- MSE 惩罚小差异 比 MAE
少得多
- MSE 惩罚大的差异,w.r.t。 它自己的惩罚小值,比MAE
多得多
以上结果:
- MSE --> 模型在不 'very wrong' 方面更好,但在 'very right'
方面更差
- MAE --> 模型平均预测所有值更好,但不介意 'very wrong' 预测
就激活而言 - hard sigmoid 可能效果更好,尤其是当您的许多值等于或非常接近 0 或 1 时,因为它可以等于 0 或1(或接近它们)比 sigmoid 快得多,它应该作为 正则化 的一种形式,因为它 是 [=] 的一种形式54=]线性化(-->权重衰减)。
二进制交叉熵:通常应该效果最好(w/ sigmoid)
从某种意义上说,它是两全其美:它更多 'evenly distributed'(在非渐近区间),并且强烈惩罚 'very wrong' 预测。事实上,BCE 在此类预测上比 MSE 严格得多 - 因此您应该很少看到在“1”标签上预测的“0”(验证除外)。出于不言而喻的原因,请确保不使用硬 sigmoid。
自动编码器:努力重建他们的输入。根据应用程序,您可以:
需要确保没有一个预测具有太大意义。 Ex:信号数据。一个极其错误的时间步长可能会超过其他方面出色的整体重建
有噪声数据,更喜欢对噪声更稳健的模型
根据以上两者,尤其是 (1),BCE 可能是不受欢迎的。通过更多地处理所有标签 'equally',MAE 可能更适合 (2).
MSE 与 MAE:
Sigmoid 与 Hard Sigmoid
二元交叉熵对比 MSE 对比 MAE(y == 0
BCE 案例)
我想预测连续变量(自动编码器)。由于我已将输入按最小-最大缩放到 0-1 间隔,因此在输出层中使用 sigmoid 激活是否有意义? Sigmoid 不对应于 MSE 损失。有任何想法吗?
使用sigmoid
激活和回归损失,例如mean_squared_error
或mean_absolute_error
摘要: 如果不确定,请使用 binary_crossentropy
+ sigmoid
。如果您的大多数标签是 0 或 1,或者非常接近,请尝试 mae
+ hard_sigmoid
.
解释:
损失函数定义模型的优先级;对于回归,目标是 最小化预测与基本事实(标签)的偏差。激活范围在 0 和 1 之间,MSE 将起作用。
不过;它可能不是最好的 - 特别是对于规范化数据。下面是 [0, 1] 区间的 MSE 与 MAE 的关系图。主要区别:
- MSE 惩罚小差异 比 MAE 少得多
- MSE 惩罚大的差异,w.r.t。 它自己的惩罚小值,比MAE 多得多
以上结果:
- MSE --> 模型在不 'very wrong' 方面更好,但在 'very right' 方面更差
- MAE --> 模型平均预测所有值更好,但不介意 'very wrong' 预测
就激活而言 - hard sigmoid 可能效果更好,尤其是当您的许多值等于或非常接近 0 或 1 时,因为它可以等于 0 或1(或接近它们)比 sigmoid 快得多,它应该作为 正则化 的一种形式,因为它 是 [=] 的一种形式54=]线性化(-->权重衰减)。
二进制交叉熵:通常应该效果最好(w/ sigmoid)
从某种意义上说,它是两全其美:它更多 'evenly distributed'(在非渐近区间),并且强烈惩罚 'very wrong' 预测。事实上,BCE 在此类预测上比 MSE 严格得多 - 因此您应该很少看到在“1”标签上预测的“0”(验证除外)。出于不言而喻的原因,请确保不使用硬 sigmoid。
自动编码器:努力重建他们的输入。根据应用程序,您可以:
需要确保没有一个预测具有太大意义。 Ex:信号数据。一个极其错误的时间步长可能会超过其他方面出色的整体重建
有噪声数据,更喜欢对噪声更稳健的模型
根据以上两者,尤其是 (1),BCE 可能是不受欢迎的。通过更多地处理所有标签 'equally',MAE 可能更适合 (2).
MSE 与 MAE:
Sigmoid 与 Hard Sigmoid
二元交叉熵对比 MSE 对比 MAE(y == 0
BCE 案例)