Artificial intelligence 自动化AI算法测试的最佳方法?

Artificial intelligence 自动化AI算法测试的最佳方法?,artificial-intelligence,Artificial Intelligence,我想知道人们是如何以自动化的方式测试人工智能算法的 图灵测试就是一个例子——比如说有很多参赛作品。除了让人测试之外,还有什么可以想象的方法可以自动给候选人打分吗 我还看到了一些数据集(模糊的数字/字母图像、照片组等),这些数据集可以随时间输入和学习。这方面有什么好的资源 我看到的一个挑战是:您不需要一个随时间调整自身以适应测试数据的算法,因为您正试图了解它在一般情况下的表现。是否有任何技术可以确保它不会这样做?比如每次给它一个随机测试,或者在一系列随机测试中平均测试结果 基本上,给定一组算法,我

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

图灵测试就是一个例子——比如说有很多参赛作品。除了让人测试之外,还有什么可以想象的方法可以自动给候选人打分吗

我还看到了一些数据集(模糊的数字/字母图像、照片组等),这些数据集可以随时间输入和学习。这方面有什么好的资源

我看到的一个挑战是:您不需要一个随时间调整自身以适应测试数据的算法,因为您正试图了解它在一般情况下的表现。是否有任何技术可以确保它不会这样做?比如每次给它一个随机测试,或者在一系列随机测试中平均测试结果


基本上,给定一组算法,我需要一些自动化的过程来为它提供数据,看看它“学习”它的能力有多好,或者可以预测它还没有看到的新东西。

一般来说,当涉及到这类事情时,你有两个数据集——一个用于构建和调整算法的大型“训练集”,以及一个单独的较小的“探测集”这是一个复杂的主题——好的人工智能算法通常能够很好地概括“看不见”的数据。最简单的方法是有两个数据集:一个用于测量性能的训练集和一个评估集。但通常,您希望“调优”算法,因此可能需要3个数据集,一个用于学习,一个用于调优,一个用于评估。定义调整的内容取决于您的算法,但一个典型的示例是一个模型,其中您有一些超参数(例如,在贝叶斯学习视图下的贝叶斯先验中的参数),您希望在单独的数据集上进行调整。学习过程可能已经为它设置了一个值(或者您硬编码了它们的值),但是有足够的数据可能会有所帮助,以便您可以单独调整它们

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


从已知数据集中系统地进行验证的标准方法是交叉验证。

@Anon拥有优先权-培训和我称之为验证集的东西。注意到这一点,我看到的关于这一领域发展的点点滴滴指向两件事:

  • :可能有类似的东西在过滤你的电子邮件。简言之,如果某个特定项目是某个组的一部分或不属于某个组(例如垃圾邮件和火腿),您可以训练算法做出概率决策
  • 多分类器:这是参与Netflix挑战的获胜团队所采用的方法,而不是通过组合多个算法来优化一个特定算法(例如,贝叶斯、遗传编程、神经网络等),以获得更好的结果
    至于数据集。我还没有研究过其他库中的数据集,但这似乎是一个很好的资源。最后,data.gov提供了许多集合,提供了一些有趣的机会

    训练数据集和测试集在K-means和其他聚类算法中非常常见,但要想在没有监督学习的情况下拥有人工智能的东西(这意味着拥有一个训练集),可以说,你是在建立一个“大脑”:

    在国际象棋中:从当前游戏状态开始的所有可能的未来状态

    在大多数人工智能学习(强化学习)中,你会遇到一个问题,即“代理”是通过反复做游戏来训练的。基本上,每个州都有一个值。然后为状态下的每个可能操作指定一个期望值

    因此,假设您有S个状态和每个状态的一个操作(尽管您可能在一个状态中有更多可能的移动,而在另一个状态中没有那么多),那么您需要从S中找出最有价值的状态,以及最有价值的操作

    为了计算出状态的值和它们相应的动作,你必须迭代整个游戏。很有可能,一系列的状态会导致胜利或失败,基本上你会知道哪些状态会导致失败,哪些是“坏状态”。您还可以了解哪些更可能导致胜利,而这些是随后的“好”状态。他们每个人都得到一个相关的数学值,通常作为预期的奖励

    从倒数第二个州到获胜州的奖励:+10 如果进入失败状态,奖励:-10

    因此,给予负奖励的州,然后向后给予负奖励,给称为倒数第二个州的州,然后给称为倒数第三个州的州,依此类推

    最终,根据你所处的状态和你采取的行动,你有了一个预期回报的映射。您最终会找到要采取的“最佳”步骤顺序。这通常被称为最佳策略

    反过来说,在得出最优策略时,您所采取的正常行动过程被称为简单策略,并且您始终在执行某个“策略”

    通常确定奖励的方法是有趣的部分。假设我为每个不会导致失败的状态转换奖励您。然后,遍历所有状态直到终止的值是我进行了多少增量,有多少状态转换

    如果某些状态极其不可评估,那么损失很容易避免,因为几乎所有的坏状态都可以避免

    但是,您不希望阻止发现新的、可能更高效的路径,这些路径不只是遵循此o
    "turn left every half mile"
    
    "turn left every half mile if I have turned right 3 times and then turned left 2 times and had a quarter in my left pocket to pay fare... etc etc"