似乎对安全性的要求似乎并不像使用人工智能来满足安全相关要求的系统(特别是在涉及大的潜在破坏/死亡风险的情况下)。任何人都可以建议为什么?我一直认为,只要你正确地编写逻辑,你在算法中投入的智能越多,这种算法就越有可能防止出现危险情况。在实践中情况有所不同吗?
答案 0 :(得分:20)
大多数人工智能算法模糊 - 通常在学习过程中学习。对于具有重要安全重要性的项目,您想要的是确定性的。这些算法更容易证明是正确的,这对于许多安全关键应用来说都是必不可少的。
答案 1 :(得分:6)
我认为原因有两个。
首先,AI可能会做出不可预测的决定。当然,它们可能是有益的,但在谈论安全问题时,你不能冒这样的风险,特别是如果人们的生活在线上。
第二个是决策背后的“推理”并不总是被追踪(有时会有一个随机元素用于生成AI的结果),当出现问题时,没有能力确定“为什么” (以非常精确的方式)成为一种责任。
最后,它归结为问责制和可靠性。
答案 2 :(得分:4)
系统越复杂,测试就越困难。 系统越重要,100%全面测试就越重要。
因此,对于关键系统,人们更喜欢具有次优特征,可以进行测试,并依赖人工交互来进行复杂的决策。
答案 3 :(得分:4)
从安全的角度来看,人们常常关注保证行为的可预测性/确定性和快速响应时间。虽然可以使用AI风格的编程技术来实现其中一种或两种,但随着系统的控制逻辑变得更加复杂,更难以提供有关系统行为方式的令人信服的论据(足以令审计员满意)。
答案 4 :(得分:2)
我猜想AI系统通常被认为更复杂。复杂性通常是一件坏事,特别是当它与“魔术”有关时,这就是某些人如何看待人工智能系统。
这并不是说替代方案必然更简单(或更好)。
当我们完成控制系统编码时,我们必须为每个代码路径和输入的排列显示跟踪表。这需要确保我们不会将设备置于危险状态(对于员工或基础设施),并“证明”程序完成了他们应该做的事情。
如果该计划模糊且不确定,那将是非常棘手的,正如@tvanfosson指出的那样。我想你应该接受这个答案。
答案 5 :(得分:2)
关键声明是“只要您正确编程逻辑”。嗯,如何你“提供”那个?经验表明,大多数程序都充满了bug。
保证没有错误的唯一方法是正式验证,但除了最原始简单的系统之外,这几乎是不可行的,而且(更糟糕的是)通常是在规范而不是代码上完成的,所以你仍然不要在您证明规范完美无缺之后,知道代码是否正确实现了您的规范。
答案 6 :(得分:1)
我认为这是因为人工智能非常难以理解,而且无法维持。
即使人工智能程序被认为是模糊的,或者它被释放的那一刻“学习”,它在所有已知情况(并且已经从中学习)甚至完成之前都经过了很好的测试。大多数情况下,这种“学习”会改变程序中的一些“阈值”或权重,在此之后,即使对于创建者来说,也很难真正理解和维护该代码。
在过去的30年里,通过为数学家创建更易于理解的语言,使他们更容易测试,并围绕问题提供新的伪代码(如mat lab AI工具箱),这一直在发生变化
答案 7 :(得分:1)
普通算法在设计和测试时,有足够的方法可以最终杀死人。如果你还没有读过它,你应该查看Therac 25的情况。这是一个系统,其行为应该是完全确定的,事情仍然可怕,可怕的错误。想象一下,如果它也试图“聪明地”推理。
答案 8 :(得分:1)
由于没有公认的AI定义,问题应该更具体。
我的答案是自适应算法仅仅采用参数估计 - 一种学习 - 来提高输出信息的安全性。即使这在功能安全方面也不受欢迎,尽管似乎所提出的算法的行为不仅是确定性的(所有计算机程序都是),而且易于确定。
为评估员做好准备,要求您展示涵盖输入数据和故障模式的所有组合的测试报告。您的算法是自适应的意味着它不仅取决于当前输入值,还取决于许多或所有早期值。你知道,在宇宙时代,完全的测试覆盖是不可能的。
得分的一种方式是显示先前接受的更简单的算法(现有技术)是不安全的。如果您知道问题空间(如果没有,请远离AI),这将很容易。
您的问题可能存在另一种可能性:一个引人注目的监控功能,指示参数是否准确估计。
答案 9 :(得分:0)
复杂问题空间的“普通算法”往往很笨拙。另一方面,一些“智能”算法具有简单的结构。对于贝叶斯推理的应用尤其如此。您只需知道数据的似然函数(如果数据分成统计独立的子集,则复数适用。)
可以测试似然函数。如果测试无法覆盖足够长的尾部以达到所需的置信水平,则只需添加更多数据,例如从另一个传感器添加。算法的结构不会改变。
缺点是贝叶斯推理所需的CPU性能。
此外,提及Therac 25没有用,因为根本没有算法,只是多任务意大利面条代码。引用作者的话说,“事故在涉及软件编码错误方面相当独特 - 大多数与计算机相关的事故都没有涉及编码错误,而是涉及软件要求中的错误,例如遗漏和错误处理的环境条件和系统状态。” / p>