Python 标准Keras模型输出意味着什么?凯拉斯的时代和损失是什么?

Python 标准Keras模型输出意味着什么?凯拉斯的时代和损失是什么?,python,machine-learning,neural-network,keras,data-science,Python,Machine Learning,Neural Network,Keras,Data Science,我刚刚使用Keras构建了我的第一个模型,这是输出。它看起来像是构建任何Keras人工神经网络后得到的标准输出。即使在查看了文档之后,我也不完全理解输出中打印的历元是什么以及损失是什么 凯拉斯的时代和损失是什么? (我知道这可能是一个非常基本的问题,但我似乎无法在网上找到答案,如果从文档中很难找到答案,我想其他人也会有同样的问题,因此决定将其发布在这里。) 当模型通过网络中的所有节点运行数据并准备更新权重以达到最佳损耗值时,一个历元结束。也就是说,越小越好。在您的情况下,由于在较高的历元上有较高

我刚刚使用Keras构建了我的第一个模型,这是输出。它看起来像是构建任何Keras人工神经网络后得到的标准输出。即使在查看了文档之后,我也不完全理解输出中打印的历元是什么以及损失是什么

凯拉斯的时代和损失是什么?

(我知道这可能是一个非常基本的问题,但我似乎无法在网上找到答案,如果从文档中很难找到答案,我想其他人也会有同样的问题,因此决定将其发布在这里。)


当模型通过网络中的所有节点运行数据并准备更新权重以达到最佳损耗值时,一个历元结束。也就是说,越小越好。在您的情况下,由于在较高的历元上有较高的损失分数,所以“似乎”模型在第一历元上更好

我说“似乎”,因为我们还不能确定,因为模型还没有使用适当的交叉验证方法进行测试,也就是说,仅根据其训练数据进行评估

改进模型的方法:

  • 在Keras模型中使用交叉验证,以了解模型的实际执行情况,在预测以前从未见过的新数据时,它是否具有良好的通用性
  • 调整您的学习速度、神经网络模型的结构、隐藏单元/层的数量、初始化、优化器以及模型中使用的激活器参数等

将sklearn的GridSearchCV与Keras相结合,可以实现这一过程的自动化。

为了更具体地回答问题,这里给出了历元和损失的定义:

历元:对所有训练数据进行全面检查

例如,在上面的视图中,您有1213个观察值。因此,当一个历元完成了对你所有1213次观察的训练时,它就结束了

损失:我们在模型训练期间尝试最小化的标量值。损失越小,我们的预测就越接近真实的标签

正如David Maust所说,这通常是均方误差(MSE),或者通常在Keras中


您希望在Keras车型上看到的是,在n个历次中,跑步适合度会降低。你的训练跑相当不正常,因为你的损失实际上在增加。这可能是由于学习率太高,导致您超越了optima

正如jaycode所提到的,您需要查看模型在未看到的数据上的性能,因为这是机器学习的一般用例

因此,您应该在编译方法中包含一个度量列表,该列表可能如下所示:

model.compile(optimizer='rmsprop', loss='categorical_crossentropy', metrics=['accuracy'])
以及在fit方法期间在验证时运行模型,例如:

model.fit(data, labels, validation_split=0.2)


还有很多要解释,但希望这能让您开始。

Epoch是数据的传递次数。损失是训练集上的误差,通常是均方误差(用于回归)或对数损失(用于分类)。
model.fit(data, labels, validation_split=0.2)