如何解决Keras中的“指标”是什么?
因此,为了了解什么metrics
是开始,最好先了解一个loss
函数是什么。神经网络通常通过递减loss
函数的迭代过程使用梯度方法进行训练。
Aloss
被设计为具有两个关键属性-
首先,其值越小,模型对数据的拟合越好;其次,它应该是可区分的。因此,知道了这一点,我们就可以完全定义ametric
是什么:它是一个函数,给定示例中的预测值和地面真实值,可以为您提供的模型“适合性”的标量度量。因此,如您所见,loss
函数是度量标准,但并非总是成立。要了解这些差异,让我们看一下最常见的metrics
用法示例:
-
例如,精度是不可微分的(甚至不是连续的),因此您无法直接针对它优化网络。但是,您可以使用它来选择精度最高的模型。
-
假设您的损失具有一个正则化项,该项可衡量您的权重与的差异
0
,以及一项可衡量模型适用性的项。在这种情况下,您可以使用metrics
来单独跟踪模型的适应度在各个时期之间的变化。 -
因此-假设您正在解决一个多维回归问题
mse
,而该问题是您最关心的,但与此同时,您cosine-distance
对自己的解决方案是随着时间变化的。然后,最好使用metrics
。
我希望上面介绍的解释清楚地表明了什么用于度量,以及为什么可以在一个模型中使用多个度量。现在,让我们谈谈它们在中的用法机制keras
。训练时有两种计算方法:
-
:这是您直接要求的。在这种情况下,
keras
为您定义的每个指标定义一个单独的张量,以便在训练时进行计算。这通常会使计算速度更快,但这要付出额外编译的代价,并且必须根据keras.backend
功能定义指标。 -
:很好,可以
Callbacks
用来计算指标。由于每个回调的默认属性为model
,因此您可以model.predict
在训练时使用或模型化参数来计算各种指标。此外,它不仅可以以时间为单位进行计算,还可以以批处理或训练方式进行计算。这需要以较慢的计算速度和更复杂的逻辑为代价-因为您需要自己定义指标。
在这里,您可以找到可用指标的列表,以及有关如何定义自己的指标的示例。
解决方法
对我来说还不清楚metrics
(如下面的代码所示)。他们到底在评估什么?为什么我们需要在中定义它们model
?为什么我们在一个模型中可以有多个指标?更重要的是,所有这些背后的机制是什么?任何科学参考也将受到赞赏。
model.compile(loss='mean_squared_error',optimizer='sgd',metrics=['mae','acc'])
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。