您是否应该始终使用正则化张量流?

时间:2018-06-20 05:27:54

标签: python tensorflow machine-learning

我想知道我是否需要始终对张量流使用正则化。

def regularize(cost, theta, beta):
    return beta * tf.nn.l2_loss(theta)

我知道它用于避免过度拟合,但是我的问题是是否应始终使用它。我曾在Kaggle的《泰坦尼克号》比赛中使用过它,但没有进行正规化处理后,它的得分不再提高。因此,我应该养成始终规范我的成本函数还是仅在特定情况下执行它的习惯吗?

1 个答案:

答案 0 :(得分:1)

通常来说,关于如何处理特定问题没有“地面真理”。损失函数(包括正则化函数)的使用是一个广阔的领域,并且已经问了很多遍,包括在Stackoverflow上。

编辑:也可以考虑从DataScience stackexchange看一下答案,这可能更适合于此类问题。

在您的情况下,正则化-特别是L2正则化器-可用于使网络中的权重保持较小,或者换句话说,更严厉地惩罚离群值,因为它们在泛化方面实际上会花费您很多钱。

现在,如果我们以image colorization的任务为例,则正则化函数可能恰恰与我们想要的相反!更具体地说,任何良好的着色都具有强烈而清晰的对比度和饱和色值。
另一方面,如果通过规则化的损失函数抑制了这种强烈的色彩值,则由于没有有效地允许强烈的色彩,因此大多数生成的图像看起来会很暗。 因此,最好使用正则化器。

当然,还有更多示例,并且在某些情况下,正则化器仍然有意义。我不仅要根据性能来判断,还要考虑它的does mathematically,以判断在您的示例中是否有意义。
通常,您会根据离群值,方差等来调查数据集,以发现有效利用所有样本(不进行正则化)还是对您所拥有的几个严重离群值进行惩罚可能是个好主意。