我想知道我是否需要始终对张量流使用正则化。
def regularize(cost, theta, beta):
return beta * tf.nn.l2_loss(theta)
我知道它用于避免过度拟合,但是我的问题是是否应始终使用它。我曾在Kaggle的《泰坦尼克号》比赛中使用过它,但没有进行正规化处理后,它的得分不再提高。因此,我应该养成始终对我的成本函数进行正则化还是仅在特定情况下才做的习惯吗
最佳答案
一般而言,关于如何解决特定问题没有“地面真理”。损失函数(包括正则化函数)的使用是一个广阔的领域,并且已经问了很多遍,包括在Stackoverflow上。
编辑:还可以考虑在DataScience stackexchange处查看答案,这可能更适合于此类问题。
在您的情况下,可以使用正则化(特别是L2正则化)来使网络中的权重保持较小,或者换句话说,对异常值进行更严厉的惩罚,因为它们会在泛化方面使您付出很多代价。
现在,如果我们以image colorization的任务为例,则正则化函数可能恰恰与我们想要的相反!更具体地说,任何良好的着色都具有强烈而清晰的对比度和饱和色值。
另一方面,如果通过规则化的损失函数抑制了这种强烈的色彩值,则由于没有有效地允许强烈的色彩,因此大多数生成的图像看起来会很暗。
因此,最好不使用正则化器。
当然,还有更多示例,并且在某些情况下,正则化器仍然有意义。我不仅要根据性能来判断,还要考虑does mathematically是什么,以判断在您的示例中是否有意义。
通常,您会根据离群值,方差等调查数据集,以找出有效利用所有样本(不进行正则化)还是对少数重度离群值进行惩罚可能是个好主意。
关于python - 您是否应该始终使用正则化 tensorflow ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50940827/