为什么在简短的 AI 入门课程中只教授搜索算法?

人工智能 哲学 搜索 教育
2021-10-25 21:24:53

我明白搜索的概念在人工智能中很重要。这个网站上有一个关于这个主题的问题,但人们也可以直观地理解为什么。我有一个关于人工智能的入门课程,持续了半个学期,所以当然没有足够的时间来涵盖人工智能的所有主题,但我期待学习一些人工智能理论(我听说过“代理” "),但我实际上学到的基本上是一些搜索算法,比如:

  • BFS
  • 统一成本搜索
  • DFS
  • 迭代深化搜索
  • 双向搜索

这些搜索算法通常被归类为“盲目的”(或“不知情的”),因为它们不考虑有关目标剩余路径的任何信息。

或算法,如:

  • 启发式搜索
  • 最佳优先搜索
  • 一个
  • 一个*
  • 国际开发协会*

这通常属于“知情”搜索算法的范畴,因为它们使用一些关于目标剩余路径的信息(即“启发式”或“估计”)。

然后我们还学习了“高级”搜索算法(专门应用于 TSP 问题)。这些算法要么是建设性的(例如,最近邻)、局部搜索(例如,2-opt)算法,要么是元启发式算法(例如,蚁群系统或模拟退火)。

我们还简要研究了应用于游戏的最小-最大算法和最小-最大的“改进”版本,即 alpha-beta 修剪。

学完这门课,我有一种感觉,人工智能就是搜索,要么“愚蠢”,要么“更聪明”。

我的问题是:

  • 为什么一位教授只会在 AI 课程中教授搜索算法?有什么优点/缺点?下一个问题与此非常相关。

  • 除了可以在入门课程中教授的 AI 中的“搜索”之外,还有什么?这个问题可能会导致主观答案,但我实际上是在一个人试图理解人工智能到底是什么以及它真正涵盖哪些主题的背景下提出的。显然,不幸的是,在阅读之后,这似乎仍然是主观的。

  • 有没有可以在这种课程中教授的人工智能理论?

3个回答

关于人工智能有很多误解,特别是关于让计算机像人类一样“思考”、模拟大脑、科幻机器人接管世界、围绕大脑作为机器的所有哲学讨论等想法。实践/现实人工智能是关于“使用计算解决问题”,这基本上意味着您将任何问题表示为计算问题,然后设计算法来解决导致解决原始问题的计算问题。这些搜索算法是通用计算问题的通用算法,即任何现实世界的问题都可以用这些通用计算问题来表示,然后这些算法可以用来解决它们。

请记住,它是关于解决问题的,它是关于可以代表任何现实世界问题的通用计算问题。

归根结底,大多数人工智能问题都可以归结为搜索问题。让我们看一些例子:

  • 对象识别和场景构建(例如,获取周围环境的视听输入并在 3D 和上下文意义上理解它的过程)可以被视为在输入中搜索已知对象。
  • 数学问题的解决可以被视为寻找解决方案。
  • 玩视频游戏可以被视为搜索对给定游戏状态的正确响应。

即使是基本的聊天机器人也可以被描述为找到对给定输入短语的“正确”响应以模仿人类语言!

由于搜索的这种概括,搜索算法是最早被认为是“人工智能”的算法之一,并且通常构成许多人工智能教学课程的基础。最重要的是,搜索算法是直观且非数学的,这使得人工智能这个有点可怕的领域变得容易理解。这听起来可能有点夸张,但我保证,如果你的讲师以 Manifold Learning Techniques 开场,那么当他们提到“协方差矩阵的特征值”时,你班上的一半学生会跑到门外。

现在搜索算法并不是解决这些问题的唯一方法。我建议每个 AI 从业者都熟悉数据科学和机器学习算法的概念。ML 通常与搜索算法有关,但它们使用的技术可能与分类器/回归的迭代构建(例如 C4.5 构建决策树)、您提到的元启发式算法以及静态生成的分类器/回归有很大不同训练数据的分析(例如,朴素贝叶斯实际上是一个基于给定数据的贝叶斯分析的分类器,假设输入字段是独立的——这是它得名的“朴素”)。ML 算法通常是在 AI 研究小组中开发的,有时可以针对特定问题进行设计,而不是通用形式的算法。

为什么一位教授只会在 AI 课程中教授搜索算法?有什么优点/缺点?

我对这个问题的回答是,有很多问题可以通过搜索找到解决方案。以井字游戏为例。如果你正在为此设计一个智能电脑播放器,那么你要做的就是形成一个搜索空间,然后你将搜索可以做出的最优化的移动来结束游戏。在这些情况下,您必须了解最佳搜索策略。让我们再举一个例子,假设您正在开车并想去一个陌生人的房子。它离你的地方很远,你决定使用 GPS。您的 GPS 将使用搜索算法找到您可以到达目的地的最佳路线(当然会有很多因素需要考虑,例如交通等,但这是基本思想)。

缺点仅在于处理和存储方面。对于慢速算法,您也会浪费大量 CPU 时间和存储空间,但对于良好高效的算法,您可以节省大量空间并快速执行任务。当然,仅仅学习搜索并不是人工智能。还有很多。

除了可以在入门课程中教授的 AI 中的“搜索”之外,还有什么?

除了搜索之外,人工智能还有很多东西。例如,学习技术(有监督的、无监督的、强化的),当一个人想要设计一个能够独立和智能地执行某些操作的系统时进行规划,知识的表示(已知和未知)和代理中的推理,包括命题逻辑和一阶逻辑等

人工智能背后是否有可以在此类课程中教授的理论?

可以教授一些主题,例如不同类型的代理(简单反射、基于模型、基于目标、基于效用和学习代理)、代理工作的不同类型环境、代理评估。可能会有一些额外的介绍性主题,如自然语言处理、专家系统等。