认知系统的持续集成流程 随着时间的推移对系统进行培训的更广泛的观点包含用户的反馈,因为他们使用通常包括定制用户界面的试验或生产系统。这些步骤如下图所示。
图 6. 训练持续集成
- 上传初始语料库。
- 主题专家建立类型系统。
- 主题专家注释语料库(监督学习)。
- 执行训练并创建第 1 版模型。
- 该模型由应用程序使用,并在应用程序 UI 中显示结果。
- 最终用户可以查看应用程序 UI 中的结果并提供反馈。
- 从许多用户与系统的许多交互中收集反馈并存储它们。
- 在给定的阈值上,将反馈合并回系统中。
- 另外,主题专家可以评审反馈,并对其进行更正或注释。
- 按批次使用反馈(以及已注释的初始语料库),以便进行重新训练。
- 生成下一版模型。
- 重复第 5-8 步,直到获得想要的准确率水平,或者直到引入了需要针对其再次训练系统的新差异。
评估模型您知道 AI 系统变得越来越完善,而且想明确知道系统性能提升了多少。您需要为 AI 系统选择合适的度量。两种主要的度量技术是准确率和 F-measure(通常为 F1)。
准确率是一种非常简单的度量。简言之,它是正确答案数量除以机会数量的商。如果您向一个系统问了 10 个问题而它正确回答了 9 个,那么它的准确率就是 90%。使用准确率的好处是,它是一种每个人都能理解的简单度量。但是,它缺乏细节,全面理解系统性能可能需要细节。
F-measure 提供了对系统做出正确(或错误)预测的原因的分类。正确和错误的预测分别分为两类:
- 真正(True positive):系统给出了一种正确的预测结果。
- 真负(True negative):系统正确地没有给出预测结果。
- 假正(False positive):系统给出了一种预测结果,但不应给出该预测结果(I 类错误)。
- 假负(False negative):系统未能给出预测结果,但应该给出该预测结果(II 类错误)。
要计算 F-measure,首先应计算精确率(系统做出的预测的准确率,由假正的发生率来确定)和召回率(系统预测的可预测值的数量,由假负的发生率来确定)。F1 是最常见的 F-measure,是精确率和召回率的调和平均数。精确率和召回率有一种天然的对立关系:放宽模型条件通常会导致牺牲精确率来提高召回率,而收紧模型条件会导致牺牲召回率来提高精确率。
顺便说一下,准确率可以重写为 (TP+TN)/(TP+TN+FP+FN)。F-measure 的一个附加好处是,它不包含真负,这是最容易且最无趣的情况。在您想要划分错误类型时,或者数据包含大量真负时,应该使用 F-measure。假设您希望从源文本中提取一个罕见的属性,该属性仅在 1/10,000 的句子中出现。由于没有编写注释器,您不断预测该属性不在您看到的每个句子中,预测准确率达到 99.99%。通过使用 F-measure,您会看到这种“什么都不做的”注释器拥有 0% 的召回率,因此它是没有价值的。
示例 1让我们度量一下一个用自然语言标记狗的实例的注释器的准确率和 F1。
#句子提取内容结果1It was a bright sunny day.-真负2The young dog found a bone.dog真正3A young cat lay in the sun.cat假正4The puppy chased the cat.-假负5There was chaos everywhere.-真负6A boy took the bone away.boy假正
在这个示例中,精确率为 33%(第 2、3 和 6 行),召回率为 50%(第 2 和 4 行),F1 为 39.8,准确率为 50%(所有行)。F1 提供的详细分类可以更好地表明需要改进模型的哪些方面。
示例 2现在让我们度量一下一个分类系统的性能。我们假定的系统将图像划分为狗、猫或鸟。测量分类性能的一种传统方式是使用混淆矩阵。
狗(实际结果)猫(实际结果)鸟 (实际结果)狗(预测结果)740猫(预测结果)360鸟(预测结果)0010
在我们的示例中,有 30 幅图,每种动物 10 幅图。但是,系统将这些图划分为 11 只狗、18 只猫,还有一幅图未知。
通过读取这些行,可以度量系统针对每个类别的精确率:精确率(狗)= 7/(7+4+0)。读取各列可以得到每个类别的召回率:召回率(狗)= 7/(7+3+0)。
混淆矩阵显示了系统所犯的错误种类,以及可能需要的新训练数据。或许人们并不感到奇怪,系统经常将猫和狗相互混淆,但从不会将它们与鸟混淆,因此需要更多猫和狗的照片来进行训练。有关专注于 NLP 的准确率度量的详细示例, |