【发布时间】:2020-08-18 16:43:32
【问题描述】:
我在 python 中用 keras 做了一个神经网络,并不能真正理解损失函数的含义。
所以这里首先是一些一般信息: 我使用 0-9 类的扑克手数据集,我用 OneHotEncoding 将其写为向量。我在最后一层使用了 softmax 激活,所以我的输出告诉我对于向量中的 10 个条目中的每一个,样本是否属于某个类的概率。例如: 我的真实输入它(0,1,0,0,0,0,0,0,0,0),表示class 1(从0-9表示从无牌到同花顺),class 1表示一对(如果你知道扑克)。 使用神经网络,它会得到类似 (0.4, 0.2, 0.1, 0.1, 0.2, 0,0,0,0,0) 的输出,这意味着我的样本有 40% 属于 0 类,有 20%到第 1 课,依此类推!
好吧!我还使用二进制 cross_entropy 作为损失、准确度指标和 RMSprop-Optimizer。 当我使用 keras 的 mode.evaluate() 时,我得到了类似于 0.16 的损失,我不知道如何解释这一点。 这是否意味着,平均而言,我的预测与真实的偏差为 0.16?所以如果我对 0 类的预测是 0.5,它也可能是 0.66 或 0.34? 或者我该如何解释?
请发送帮助!
【问题讨论】:
-
当你遇到多类问题时为什么要使用二元交叉熵?
-
developers.google.com/machine-learning/crash-course/… 可能是一个很好的开始阅读。了解损失后,您就可以查看模型中使用的损失。也应该是 MSE。
-
感谢 Jason,我想我理解损失,我的问题更多是 keras model.evaluate() 的计算!我使用二元交叉熵,因为我使用第一个 OneHotEncoding
标签: python keras neural-network loss-function loss