如果我想预测0-1间隔的连续结果,应该使用哪个输出激活和损失?

问题描述 投票:1回答:2

我想预测连续变量(自动编码器)。当我将输入按最小-最大比例缩放到0-1间隔时,在输出层中使用S型激活是否有意义?乙状结肠不对应于MSE损失。有任何想法吗?

keras autoencoder loss-function continuous activation-function
2个回答
1
投票

使用sigmoid激活和回归损失,例如mean_squared_errormean_absolute_error


1
投票

SUMMARY:如果不确定,请使用binary_crossentropy + sigmoid。如果大多数标签是0或1或非常接近,请尝试mae + hard_sigmoid


EXPLANATION

损失函数定义模型的优先级;对于回归,目标是根据地面真实情况(标签)进行预测的[[最小化偏差]]。激活范围介于0到1之间,MSE将起作用。

但是

;可能不是最好的-特别是对于标准化数据。下面是[0,1]间隔的MSE与MAE的关系图。主要区别:
  • MSE

会惩罚很小的差异,比MAE少得多。MSE会惩罚较大的差异。
  • 其自身的罚款小值,比MAE大得多
  • 由于上述原因:

      MSE->模型擅长于“非常错误”,但劣于“非常正确”
  • MAE->模型可以更好地平均预测所有值,但不介意“非常错误”的预测
  • 就激活而言-硬Sigmoid可能会更好,特别是如果您的许多值等于或非常接近0或1,因为它可以更快地等于0或1(或接近它们)。比S形可以作为

    正则化

  • 的形式,因为它线性化的形式(->权重衰减)。
    二进制交叉熵
    :通常应该效果最好(w /

    Sigmoid

    从某种意义上讲,这是两全其美的选择:它的分布更“均匀”(在非渐近区间内),并严重地惩罚了“非常错误”的预测。实际上,BCE在这种预测上要比MSE严厉-因此,即使在“ 1”标签上预测出“ 0”(验证除外),您也应该很少看到。出于不言而喻的原因,只需确保not使用坚硬的S型曲线即可。


    Autoencoders

    :努力重建其输入。根据应用程序,您可以:

      需要确保
    1. 没有单个预测具有太大的意义

    Ex

    :信号数据。一个非常错误的时间步长可能会超过原本出色的整体重建效果]]拥有嘈杂的数据,并且更喜欢模型[[对噪声的鲁棒性] >>
  • 根据以上两者,尤其是(1),BCE可能是不可取的。通过更平等地对待所有标签,MAE可能在(2)中效果更好。
  • MSE vs. MAE


    Sigmoid vs. Hard Sigmoid

    二进制交叉熵对MSE对MAE

    (对于BCE,显示为y == 0情况)


    © www.soinside.com 2019 - 2024. All rights reserved.