繁体   English   中英

如果模型 output 层有多个神经元并且只有一个值要预测,那么 Tensorflow model 如何计算损失?

[英]How does a Tensorflow model calculate loss, if the models output layer has multiple neurons and there is only one value to predict?

我最近注意到,我可以拥有并使用Tensorflow model,即使预测值只是一个实数值,它也有任意数量的输出。 例如,我可以从 model 获得 16 个输出,只有 1 个实际目标值,但是,model 仍然可以正常训练,没有错误。

我的问题是,在将 output 与目标值进行比较时,Tensorflow 如何处理 output 的不正确大小。 怎么还能计算损失呢? 它是尝试使每个 output 尽可能接近目标值,还是进行某种平均?

我们对 model 使用分类交叉熵损失,它具有任意数量的输出和单个预测值。

分类交叉熵损失 = Softmax 激活 + 交叉熵损失

在此处输入图像描述

假设我们的 model 中有 4 个类别,softmax 激活 function 将计算 4 个类别的概率。 交叉熵损失是根据真实 label class 的这些概率计算的。

考虑以下示例:

4个output节点分别是Rabbit, Cat, Dog, Squirrel。

真 Label:兔子

预测:兔子 = 8,猫 = 1,狗 = 4,松鼠 = 2

SoftMax计算:R = 2980.95/3045.63,C = 2.71/3045.63,d = 54.59/3045.63,s = 7.38/3045.63

交叉熵损失:-(1 * ln(R) + 0 * ln(C) + 0 * ln(D) + 0 * ln(S)) = -(-0.0214 + 0 + 0 + 0) = 0.0214

这就是 model 处理输出和计算损失的方式。 谢谢!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM