首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自动测试AI算法的最佳方式?

自动测试AI算法的最佳方式?
EN

Stack Overflow用户
提问于 2010-12-02 08:54:22
回答 4查看 1.2K关注 0票数 3

我想知道人们如何以自动化的方式测试人工智能算法。

一个例子是图灵测试--假设有许多参赛者提交了参赛作品。除了让人类测试之外,有没有什么办法可以用自动化的方式给候选人打分呢?

我还看到了一些数据集(数字/字母的模糊图像,照片组等),它们可以随着时间的推移而输入和学习。有什么好的资源可以做到这一点。

我看到的一个挑战是:您不想要一个随时间推移而根据测试数据进行自我调整的算法,因为您试图了解它在一般情况下的表现如何。有什么技术可以确保它不会这样做吗?例如,每次对其进行一次随机测试,或者对一系列随机测试的结果进行平均。

基本上,给出一堆算法,我想要一些自动化的过程来给它提供数据,看看它“学习”得有多好,或者可以预测它还没有见过的新东西。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-12-02 09:02:26

通常,当涉及到这类事情时,您有两个数据集-一个大的“训练集”,用于构建和调整算法,以及一个单独的较小的“探测集”,用于评估其性能。

票数 3
EN

Stack Overflow用户

发布于 2010-12-02 09:19:13

这是一个复杂的主题-好的AI算法通常可以很好地概括到“看不见的”数据。最简单的方法是有两个数据集:一个训练集和一个用于测量性能的评估集。但通常情况下,您希望“调优”您的算法,以便您可能需要3个数据集,一个用于学习,一个用于调优,一个用于评估。调整的定义取决于您的算法,但一个典型的示例是一个模型,其中您希望在单独的数据集上调整一些超参数(例如,在学习的贝叶斯视图下,您的贝叶斯先验中的参数)。学习过程已经为它设置了一个值(或者可能你硬编码了它们的值),但是拥有足够的数据可能会有所帮助,这样你就可以分别对它们进行调优了。

至于建立这些独立的数据集,有许多方法可以做到这一点,例如,通过将可用的数据划分为用于不同目的的子集。需要进行权衡,因为您需要尽可能多的数据来进行训练,但也需要足够的数据来进行评估(假设您处于新算法/产品的设计阶段)。

从已知数据集以系统的方式执行此操作的标准方法是交叉验证。

票数 4
EN

Stack Overflow用户

发布于 2010-12-02 09:22:11

@Anon有权训练和我称之为验证集的东西。值得一提的是,我在这个领域中看到的零星发展指向两件事:

  1. Bayesian Classifiers:可能有这样的东西在过滤你的电子邮件。简而言之,您可以训练算法来做出特定项目是否属于某个组的概率决策(例如,垃圾邮件和火腿)。
  2. 多分类器:这是参与Netflix挑战赛的获胜组采用的方法,它不是关于优化一个特定的算法(例如贝叶斯、遗传编程、神经网络等)。通过组合几个来获得更好的结果。

至于数据集Weka has several available。我还没有探索过数据集的其他库,但mloss.org似乎是一个很好的资源。最后,data.gov提供了许多集合,这些集合提供了一些有趣的机会。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4330691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档