【发布时间】:2018-05-21 03:10:14
【问题描述】:
我发现在 Tensorflow 中可能是一种罕见的情况,但我正在尝试使用 KL 散度(交叉熵)作为 Tensorflow 中的成本函数,使用软目标/标签来训练分类器(线性或非线性)(形成有效概率分布但不是“硬”1 或 0 的标签)。
但是很明显(告诫标志)肯定有问题。我尝试过线性和非线性(密集神经网络)形式,但无论如何,无论网络架构如何,我的损失函数总是得到相同的最终值(即使我只训练一个偏差)。此外,使用 L-BFGS(一个非常可靠的优化器!),成本函数收敛得非常快(在 20-30 次迭代内)。出现问题的另一个迹象是我无法过度拟合数据,并且验证集的损失值似乎与训练集完全相同。然而,奇怪的是,当我增加网络架构大小和/或更改正则化损失时,我确实看到了一些的改进。准确性也随之提高(尽管不是我对此感到满意或正如我所期望的那样)。
当我使用完全相同的代码但发送单热编码标签(不是软目标)时,它确实按预期工作。下面显示了从 Tensorboard 获取的训练成本函数示例。有人可以给我一些想法吗?
【问题讨论】: