1

我正在 Tensorflow 中训练一个深度 CNN 模型,并试图最大化 和 之间的 pearson 相关true labelspredictions。例如,对于真正的标签y_true = [1.0, 2.0, 3.0, 4.0],我想预测类似的东西y_pred = [0.9, 1.8, 3.0, 4.1],因为这会产生很高的皮尔逊相关性。

但是,我的预测都高度接近于 0,例如y_pred = [0.0001,0.0002, 0.0003, 0.0004]. 尽管在这种情况下,皮尔逊相关性很高,但在计算皮尔逊损失时,模型在数值上是不稳定的(例如引发了 NaN 错误)。

因此,我想知道我能做些什么来强制输出具有更大的值,使其不接近 0?也许输出上的某种正则化器可以放大它?

4

1 回答 1

2

也许您可能会尝试将您的问题建模为回归问题。定义为您的损失为

(true_labels - predictions)^2

由于您将明确最小化标签和预测之间的平方差,因此它们也将高度相关。您可以保留 Pearson 相关性的原始损失并将其添加为正则化器,以使预测也接近真实标签。就像是:

pearson_Loss + lambda * (true_labels - predictions)^2

您可以通过网格搜索或随机搜索的交叉验证微调“lambda”来找到正则化器的最佳强度。

于 2018-05-31T06:56:27.017 回答