AI 天生自带 Bug !

AI百科4个月前更新 快创云
43 0

  到目前为止,尚未有确切的工具和方法能够彻底消除AI系统中的bug。关键在于,我们需要深刻理解AI bug的本质。

  随着自动驾驶汽车、复杂疾病诊断以及智能系统训练等技术的迅猛发展,一个关键问题浮出水面:我们是否真正了解如何诊断这些系统中潜在的或不易察觉的缺陷,甚至是从源头上预防这些缺陷的产生。尽管机器在某些任务上表现出色,但设计和训练这些系统的人类程序员本身还存在诸多不足。

  IBM阿尔马登研究中心的副总裁兼实验室主任杰夫韦尔泽(Jeff Welser)指出:“调试是一个尚未被充分探索的研究领域,我们目前还未能给出令人满意的答案。”这一观点并非孤立。尽管AI、深度学习和机器学习在半导体设计、制造业等多个领域得到广泛应用,但当前的关注焦点更多在于如何利用这些技术,而非解决它们可能带来的问题。

  ANSYS的首席技术专家诺曼常(Norman Chang)也强调:“调试是一个开放的研究领域,但这个问题尚未得到解决。”至少从一方面来看,人们对于设备经过训练后可能发生的情况缺乏全面理解,尤其是涉及深度学习、AI和各种神经网络时。

  Rambus的企业解决方案技术副总裁、杰出发明家斯蒂文吴(Steven Woo)指出:“调试建立在理解的基础上。关于大脑是如何锻炼的,我们还有很多要学习的地方,因此进行传统意义上的调试仍然充满挑战,因为我们需要明确何时出现了错误分类。我们需要进一步研究‘我不知道’这种类型的分类。”

  这与科幻小说中描述的机器接管世界的场景相去甚远。有缺陷的算法可能导致未来在某一时刻出现无法预料的错误。如果错误涉及关键的安全系统,可能会带来危害;而在其他情况下,它可能导致机器出现令人烦恼的行为。然而,与软件补丁不同,AI、深度学习和机器学习中的错误可能数月甚至数年都不会显现,或需要与其他设备进行一系列交互才会触发。

  Synopsys嵌入式视觉处理器系列的产品营销经理戈登库珀(Gordon Cooper)提到:“如果你在训练一个网络,其吸引力在于可以让网络更快速、更准确。然而,一旦你训练网络,追踪到某一行代码的故障范围非常有限。现在,调试成了一个棘手的问题,这是一个不一定能提前避免的问题。”

  在半导体行业,“什么足够好?”是一个基本话题。面对不同的细分市场和应用场景,答案各不相同。即使在同一个设备中的不同功能之间,也存在差异。例如,智能手机上玩游戏时遇到错误可能很烦人,可能需要重启;但如果无法拨打电话,用户可能会选择更换手机。对于工业设备而言,技术可能与收入直接挂钩,因此这可能是计划维修更换的一部分,而不是等待故障发生。然而,对于AI、深度学习和机器学习而言,并不存在这样的度量标准。推断结果是数学分布,而不是固定的数字或行为。

  eSilicon的市场营销副总裁迈克詹法格纳(Mike Gianfagna)表示:“一大问题是,这是否正确,与人类相比如何?如果它比人类更胜一筹,它是否足够好?这可能是我们永远也无法最终证明的。所有这些都与训练数据有关;通常来说,你拥有的训练数据越多,就越接近完美。这与过去大不一样,过去你只关心算法和连接是否正确。”

  问题可能出现在这里:虽然批量制造方面拥有大量数据,但设计方面的数据却少得多。ArterisIP的首席技术官蒂加里贝(Ty Garibay)指出:“对我们来说,每块芯片都非常独特,我们只处理几百个系统,因此输入数据量很小。而这是一个黑盒子。你如何处理之前从未处理过的东西,尤其是涉及偏见和道德的问题?因此需要多得多的训练数据。”

  对于AI/深度学习/机器学习而言,就连对bug的认识也各不相同。Cadence公司系统和验证部门的高级架构师渡边义则(Yosinori Watanabe)表示:“由于算法的能力不断发展,而算法又是统计性的而非确定性的,因此bug的定义在变化。有时可能无法将从这种算法获得的某一输出确认为是bug,因为它基于算法中记录的进化概率分布。”渡边指出,可以通过为算法可接受的行为设定明确的边界条件来避免这个问题。然而,理解这些边界条件并不总是那么简单,一方面是因为算法本身在不断优化;另一方面是因为这些算法用于广泛的应用场景。

  调试AI/机器学习/深度学习的一个起点是明确你明白什么、不明白什么。这在机器学习中比深度学习更简单一些(两者都属于AI大类),因为机器学习使用的算法相对简单。深度学习是一种基于矩阵多层的数据表示方法,每一层使用上一层的输出作为输入。相比之下,机器学习则使用为特定任务开发的算法。Optimal+的首席技术官迈克尔舒尔登弗赖(Michael Schuldenfrei)指出:“在深度学习环境中理解决策过程更具挑战性。在生产环境中你需要知道哪里出了问题。”你可以解释机器学习算法来自哪个模型并比较不同的算法但在不同产品上答案可能不同。“在产品A上随机森林可能效果很好但在产品B上另一个算法或某种组合可能更有效。”然而没有大量数据机器学习并不好如果你有很多变化的独立变量也会出现问题。”而这正是当前研究工作的重点之一。IBM的韦尔泽表示:“AI系统在观察一只狗后可能会将其识别为小狗或某种类型的狗你需要知道AI系统理解了哪些特征。”机器可能已能识别出五六个特征但这些是正确的特征吗?还是过于强调一个特征而不是另一个特征?一切都归结为人类与机器相比擅长什么。”导致这个决策的一系列事件已非常清楚但决策过程并不清晰。“现在有一系列可解释型AI即将一些数据输入到系统中然后得到答案。”它不一定向你解释得出这个答案的一系列精确推理而是说‘这是输入数据的一些属性强烈地影响了这个答案是这么出来的。’这样做对许多场景都很有帮助因为如果我们为AI程序或机器学习算法赋予了决策方面的更大控制权如果能解释原因将大有帮助。”艾特肯表示:“这是医疗数据面临的一大挑战因为在某些领域专家们在如何标记某些东西方面实际上存在分歧因此你最后不得不开发容忍标记过程中的干扰信息的算法。“我们从算法的层面知道它做什么我们注意到它告诉我们看起来有用的东西。”但与此同时我们也向自己表明不管什么样的偏差进入输入集都会影响输出。“这是证明智能的例子还是只是证明推理滥用的例子还是证明我们还不知道的东西?”一旦识别出了bug消除bug的实际过程也不明确。“解决这个问题的方法之一是从传统方面入手比如支持系统和优化内存带宽但没人知道这些系统实际上如何运行。“你如何配置这个黑盒子?你不知道该找什么。“在这种情况下可能需要机器学习来调试机器学习你需要培训一名主管来训练这些系统识别什么是好的什么是坏的。”“用于训练一台机器的数据可能由另一台机器生成。“这后一台机器可能使用不同的算法或者可能是使用同一算法的不同实例比如说两台机器它们都使用了下围棋的算法可能与对方下棋那样每台机器就会生成供另一台机器用来训练的数据。“调试原理与上述仍然相同因为每台机器的行为分别对照可接受行为的边界条件进行了验证。”另一种方法是保持AI/深度学习/机器学习的应用范围足够小那样就可以在内部不断优化。“我们从TensorFlow算法开始研究很快发现它不够好于是改用随机森林但之后要是发现随机森林不够好该如何是好?今天我们做分析能够改变方法但在已经搞好的深度学习中如何做到这一点呢?”此外这些年来调试AI这项工作被搁置一旁大学和研究机构专注于开发和测试手动编写的算法在过去的一年里这一切都发生了变化机器学习、深度学习和AI无处不在这种技术甚至在去年还在测试的系统当中得到了更广泛的应用。“这种情况肯定会发生变化而且是迅速变化。“其中一些应用背后的想法是AI可用于训练其他系统提高制造业的质量和可靠性但前提是训练数据本身没有bug。“而目前没人很确信AI没有bug。”

© 版权声明

相关文章