4

似乎安全要求似乎不喜欢使用 AI 来满足安全相关要求的系统(尤其是在涉及巨大潜在破坏/死亡风险的情况下)。谁能建议为什么?我一直认为,只要您正确地编写逻辑,您在算法中投入的智能越多,该算法就越有可能预防危险情况。实际情况有什么不同吗?

4

10 回答 10

20

大多数人工智能算法都是模糊的——通常是在进行过程中学习。对于具有关键安全重要性的项目,您想要的是确定性的。这些算法更容易证明是正确的,这对于许多安全关键应用程序来说是必不可少的。

于 2009-01-03T16:00:05.450 回答
6

我认为原因是双重的。

首先,人工智能可能会做出不可预测的决定。诚然,它们可能是有益的,但在谈到安全问题时,你不能冒这样的风险,尤其是当人们的生命处于危险之中时。

第二个是决策背后的“推理”不能总是被追踪(有时有一个随机元素用于使用 AI 生成结果),当出现问题时,无法确定“为什么”(在非常精确的方式)成为一种责任。

最后,它归结为问责制和可靠性。

于 2009-01-03T16:01:31.623 回答
4

系统越复杂,测试就越困难。一个系统越重要,100% 全面的测试就越重要。

因此,对于关键系统,人们更喜欢具有可以测试的次优特性,并依赖人工交互来进行复杂的决策。

于 2009-01-03T16:10:49.903 回答
4

从安全的角度来看,人们通常关心行为的可预测性/确定性和快速响应时间。虽然可以使用 AI 风格的编程技术中的任何一个或两个都做,但随着系统的控制逻辑变得更加复杂,很难就系统的行为提供令人信服的论据(足以让审计员满意)。

于 2009-01-03T16:31:12.203 回答
2

我猜人工智能系统通常被认为更复杂。复杂性通常是一件坏事,尤其是当它与“魔法”有关时,这是一些人对人工智能系统的看法。

这并不是说替代方案必然更简单(或更好)。

当我们完成控制系统编码时,我们必须为每个单独的代码路径和输入的排列显示跟踪表。这是为了确保我们不会将设备置于危险状态(对于员工或基础设施),并“证明”这些程序做了它们应该做的事情。

正如@tvanfosson 所指出的那样,如果程序是模糊且不确定的,那将非常棘手。我认为你应该接受这个答案。

于 2009-01-03T16:01:59.657 回答
2

关键语句是“只要你正确地编程你的逻辑”。那么,你如何“提供”它?经验表明,大多数程序都充满了错误。

保证没有错误的唯一方法是形式验证,但这对于除了最原始简单的系统之外的所有系统实际上都是不可行的,而且(更糟糕的是)通常是在规范而不是代码上完成的,所以你仍然不知道在您证明规范完美无缺后,代码正确地实现了您的规范。

于 2009-01-03T16:13:21.537 回答
1

我认为这是因为人工智能非常难以理解,并且无法维持。

即使一个人工智能程序被认为是模糊的,或者它在发布的那一刻就“学习”了,它甚至在完成之前就已经对所有已知案例(并且它已经从中学习)进行了很好的测试。大多数情况下,这种“学习”会改变程序中的一些“阈值”或权重,之后,即使对于创建者来说,也很难真正理解和维护该代码。

在过去的 30 年中,通过创建更易于数学家理解的语言,使他们更容易测试和围绕问题提供新的伪代码(如 mat lab AI 工具箱),这种情况已经发生了变化

于 2009-01-03T17:30:59.633 回答
1

普通算法有足够多的方式,如果设计和测试质量不佳,最终可能会杀人。如果您还没有阅读过它,您应该查看Therac 25的案例。这是一个行为应该是完全确定性的系统,但事情仍然非常糟糕,非常糟糕。想象一下,如果它也试图“智能地”推理。

于 2009-02-01T10:38:07.890 回答
1

由于没有公认的人工智能定义,问题应该更加具体。

我的答案是自适应算法仅仅使用参数估计——一种学习——来提高输出信息的安全性。即使这在功能安全中也不受欢迎,尽管看起来提议的算法的行为不仅是确定性的(所有计算机程序都是)而且很容易确定。

准备好迎接评估员要求您展示涵盖输入数据和故障模式的所有组合的测试报告。您的算法是自适应的,这意味着它不仅取决于当前输入值,还取决于许多或所有早期值。您知道在宇宙时代不可能进行完整的测试覆盖。

一种评分方法是表明以前接受的更简单的算法(最先进的)是不安全的。如果您知道您的问题空间,这将很容易(如果不知道,请远离 AI)。

您的问题可能存在另一种可能性:一个引人注目的监控功能,指示参数是否被准确估计。

于 2013-03-02T22:29:43.557 回答
0

复杂问题空间的“普通算法”往往是有问题的。另一方面,一些“智能”算法具有简单的结构。对于贝叶斯推理的应用尤其如此。您只需要知道数据的似然函数(如果数据分成统计独立的子集,则应用复数)。

可以测试似然函数。如果测试无法覆盖足够远的尾部以达到所需的置信水平,只需添加更多数据,例如来自另一个传感器的数据。你的算法结构不会改变。

一个缺点是/是贝叶斯推理所需的 CPU 性能。

此外,提到 Therac 25 并没有什么帮助,因为根本没有涉及任何算法,只是多任务处理意大利面条代码。引用作者的话,“[这些]事故在涉及软件编码错误方面是相当独特的——大多数与计算机相关的事故不涉及编码错误,而是涉及软件要求中的错误,例如遗漏和错误处理的环境条件和系统状态。”

于 2013-03-05T00:58:26.723 回答