人工智能与经典算法编程

从经典算法编程迈向人工智能

Anthony Quattrone, PhD 2022年4月30日

人工智能的进步使得以前难以解决、棘手或具有高度组合性的复杂计算问题得以高效解决。这些问题包括面部识别、物体检测、路线规划和高度个性化的在线推荐系统。

组织迈向未来所面临的挑战在于,战略决策者需要在传统经典方法和人工智能方法之间做出选择,以解决复杂的计算问题。在准确性、成本、实施难度和可维护性等维度上,这两种方法在交付稳健系统方面都面临独特的挑战。

解决问题的经典算法编程方法

经典编程范式涉及通过规范性算法和利用明确定义的指令序列来解决问题。输入被定义和约束,开发算法通过定义的编程范式(过程式、面向对象、函数式和逻辑式)处理输入以产生输出。

发现算法以解决时间和空间效率问题众所周知极具挑战性。在计算复杂性理论中,问题分为 P(多项式)、NP(非确定性多项式)、NP 完全或 NP 困难。多项式问题可以快速求解和验证,而非多项式问题则不能。NP 问题很难通过经典算法方法求解。

P 问题的一个示例是找到两点之间的最短路径,而 NP 问题的一个示例是旅行商问题,即当给定一系列位置时,访问所有地点且行驶尽可能短距离的最佳路径是什么。碰巧的是,当前需要通过计算解决的许多问题都属于 NP 类别。在大多数情况下,出于实际目的,近似解通常就足够了。在处理日常生活时,人类总是会想出近似解,即导航。

在经典算法范式下以高效方式解决问题存在实施挑战。算法复杂性是计算机科学的一个分支,涉及算法在时间域(时间复杂性)和空间域(空间复杂性)中运行的效率。

虽然实现算法有许多不同的方法,但一种显而易见但可能效率低下的算法实现方法通常被称为“朴素”算法。最高效的算法并不容易发现,计算机科学家多年来一直在寻找解决各类问题的最佳算法。生产系统中的算法以时间和空间高效的方式实现。最大的软件公司通过结对编程(类似于同行评审)来确保最高的算法标准。高效地实现算法需要多年的训练和高度的技能。

在实际意义上,尽管编程技术已经发展,编程语言(即C、C++、Java、JavaScript、PHP、Python)的流行程度也各不相同,但自贝尔实验室在20世纪70年代编写第一批C模块以来,基本原理一直保持不变。有一些实用的方法可以使理论上具有挑战性的问题在生产环境中运行,例如使用分布式系统。高级方法的成本更高,并且除了技术最先进的组织之外,超出了其他所有组织的能力范围。

鉴于经典算法编程方法的复杂性,组织长期以来一直难以建立有效的团队在内部开发此类系统。此外,许多组织也难以找到外部提供商来解决理论上可以实现的小众挑战。随着问题复杂性的增加,设计特定算法变得显著更加复杂。对于多变量问题尤其如此。对于算法能够快速解决且适用于大多数情况的问题,最好使用经典算法方法。

解决问题的 AI 方法

人工智能范式试图通过将输入和期望输出输入到系统中并让系统学习如何解决问题来通用地解决问题。当前的 AI 方法通过经典编程技术在经典计算机上运行。最令人兴奋的 AI 方法是神经网络和强化学习。

人工神经网络利用了人类对大脑如何学习和概括问题的理解。强化学习使用代理输入目标状态和一系列场景。学习算法在多次迭代中保留有利结果并放弃不利结果。强化学习类似于操作性条件反射。代理通过多次训练迭代学习如何实现目标。

训练人工智能解决方案的一个要求是,要么需要一个定义明确的海量数据集(通常通过结合各种数据仓库或众包来编制),要么系统可以通过运行一系列迭代来学习达到目标状态。这方面的一个例子是系统与自己下棋,如国际象棋或围棋,以进一步学习如何制定策略来改善结果。人工网络和强化学习都在未经训练的场景上运行,并与其他机器学习方法类似地进行评估。这些方法具有良好的泛化能力,并针对特定类别的问题提供高效的解决方案。基于人工智能的解决方案适用于无法轻易用一系列指令定义的问题;相反,它们需要更多的“直觉”和价值判断。

通常,人工智能系统使用数据集进行训练,随后在评估集上进行评估。输入 AI 系统的高质量训练数据越多,系统达到高标准表现的可能性就越大。AI 方法的优势在于,随着系统学习到更多知识,它们可以随着时间的推移不断改进。因此,复杂的问题可以被泛化并由计算系统解决。这些问题包括传统上由人工解决的问题,尽管弱 AI 可以被视为对现有人工输入的补充,以确保获得更好的结果。

长期以来,各组织对人工智能和机器学习持谨慎态度,因为此类系统缺乏可追溯性和确定性,无法明确其在用例中将如何响应。因此,AI 可能在罕见情况下采取行动,并在最意想不到时做出不可预测的响应。这就是为什么明确定义 AI 的使用时机、可接受的错误水平,以及 AI 系统的输出如何通过人工输入进行同行评审以确保准确性非常重要。

总体而言,我们预测 AI 系统带来的准确性提升,加上增强人工输入所获得的效率提升,将产生巨大的财务激励,使得许多组织在未来几年无法忽视,AI 系统将变得无处不在。

何时选择人工智能以及何时选择经典算法编程方法来解决问题

虽然对于何时使用哪种方法没有硬性规定,但作为一般规则,需要近似解并涉及面向目标的长期规划、复杂模式识别以及处理大量变量的问题更适合 AI。经典算法方法更适合涉及大量逻辑和计算的精确或近优解。

选择正确的方法可以为您的组织带来显著的收益,而选择次优的方法可能会导致巨额资本损失,因为技术项目非常昂贵。通常,采用经过验证且可演示的系统(如 Telemus AI™)可以帮助组织确保其人工智能数字化转型取得成功。

立即联系我们,免费咨询 Telemus AI™ 如何集成到您的组织中。