【问题标题】:Why do safety requirements like to discourage use of AI?为什么安全要求会阻止人工智能的使用?
【发布时间】:2009-01-03 15:55:57
【问题描述】:

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

【问题讨论】:

  • “三法安全”在理论上有效,在实践中无效;)

标签: artificial-intelligence requirements


【解决方案1】:

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

【讨论】:

  • 您至少需要在互锁级别具有确定性和可理解的行为。有什么理由——除了文化偏见——不使用模糊的东西来提供预测警报层?
  • 我突然想到我自己的问题的答案可能是“资源”。例如,它们最好花在更具确定性的代码或更彻底的验证上。 ::叹息::
【解决方案2】:

我认为原因是双重的。

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

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

归根结底,它归结为问责制和可靠性。

【讨论】:

  • 您的第二点,即推理通常是不可审计的,这是一个非常现实的问题。
【解决方案3】:

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

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

【讨论】:

    【解决方案4】:

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

    【讨论】:

      【解决方案5】:

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

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

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

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

      【讨论】:

        【解决方案6】:

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

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

        【讨论】:

          【解决方案7】:

          我认为这是因为 AI 很难理解,并且无法维持。

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

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

          【讨论】:

            【解决方案8】:

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

            【讨论】:

              【解决方案9】:

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

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

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

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

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

              【讨论】:

              【解决方案10】:

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

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

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

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

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2010-11-12
                • 2020-04-20
                • 1970-01-01
                相关资源
                最近更新 更多