我是人工智能领域的新手。在我们的第一章中,有一个主题叫做“通过搜索解决问题”。在网上搜索后,我找到了深度优先搜索算法。该算法很容易理解,但没有人解释为什么该算法会被纳入人工智能研究。
我们在哪里使用它?是什么让它成为人工智能算法?每个搜索算法都是人工智能算法吗?
我是人工智能领域的新手。在我们的第一章中,有一个主题叫做“通过搜索解决问题”。在网上搜索后,我找到了深度优先搜索算法。该算法很容易理解,但没有人解释为什么该算法会被纳入人工智能研究。
我们在哪里使用它?是什么让它成为人工智能算法?每个搜索算法都是人工智能算法吗?
这是一个根本的哲学问题。是什么让人工智能成为人工智能?但首先,为什么 DFS 会被认为是一种 AI 算法?
在其最基本的形式中,DFS 是一种非常通用的算法,适用于各种不同类别的问题:拓扑排序、查找图中的所有连通分量等。它也可用于搜索。例如,您可以使用 DFS 在 2D 迷宫中查找路径(尽管不一定是最短路径)。或者您可以使用它来导航更抽象的状态空间(例如在国际象棋配置之间或在河内的塔中)。这就是与人工智能的联系出现的地方。DFS 可以单独用于导航这些空间,也可以作为更复杂算法的基本子程序。我相信在《人工智能:一种现代方法》一书中(您现在可能正在阅读)他们以这种方式介绍了 DFS 和广度优先搜索,这是在达到更复杂的算法(如 A*)之前的第一个里程碑。
现在,您可能想知道为什么应将此类搜索算法视为 AI。在这里,我在推测,但也许混乱的根源在于 DFS 没有学到任何东西。这是新人工智能从业者普遍存在的误解。并非每种人工智能技术都必须围绕学习展开。换句话说,人工智能!=机器学习。ML 是 AI 中的众多子领域之一。事实上,早期的人工智能(大约 50 到 60 年代)更多的是关于逻辑推理,而不是关于学习。
人工智能是关于让一个人工系统在给定的环境中“智能”地表现,无论它需要什么才能达到这种智能行为。如果需要应用 DFS 等计算机科学中的知名算法,那就这样吧。那么,智能意味着什么?这是我们进入更多哲学基础的地方。我的解释是,“智能”是一个广义术语,用于定义我们用来解决现实和某些类似谜题的问题所提供的巨大复杂性的大量技术。通常,“智能行为”围绕启发式和代理方法,远离计算机科学中其他地方工作的完美、可证明的算法。虽然如果可以将无限多的资源用于手头的任务,某些算法(如 DFS 或 A*)可能会被证明能够给出最佳答案,但只有在足够受限的环境中才能负担得起此类技术。幸运的是,我们可以使它们在许多情况下工作(例如 A* 用于国际象棋或机器人导航,或蒙特卡洛树搜索用于围棋),但前提是对状态空间施加合理的假设和约束。剩下的就是学习技术(如用于图像分割的马尔可夫随机场,或用于定位代理的与强化学习配对的神经网络)可能派上用场的地方。但前提是对状态空间施加合理的假设和约束。剩下的就是学习技术(如用于图像分割的马尔可夫随机场,或用于定位代理的与强化学习配对的神经网络)可能派上用场的地方。但前提是对状态空间施加合理的假设和约束。剩下的就是学习技术(如用于图像分割的马尔可夫随机场,或用于定位代理的与强化学习配对的神经网络)可能派上用场的地方。
有趣的是,即使智能通常被认为是一件好事,我的解释也可以概括为不完美的行为模式,以解决不存在已知完美解决方案的极其复杂的问题(在充分有限的问题中很少有例外). 如果我们有一个巨大的桌子,对于每个国际象棋位置,给出你能做出的最好的移动,然后把这张桌子放在一个程序中,这个程序会智能吗?也许你会这么认为,但无论如何,它似乎比一个进行实时推理并在一段合理时间后做出决定的程序更具争议性,即使它不是最好的。同样,您认为排序算法是智能的吗?再一次,答案是有争议的,但事实是算法具有最佳的时间和内存复杂性,我们知道我们不能比那些算法做得更好,我们不必求助于任何启发式或任何学习来做得更好(免责声明:我实际上并没有检查是否有一些疯子在野外应用学习来解决具有更好平均时间的排序)。
DFS
其本身通常不会被视为AI
imo。它是一种标准的计算机科学确定性算法。相反,智能代理可能会使用DFS
它作为 AI 包的一部分来通知其决策。