什么是算法?AI中的算法有什么特点?

陽一 和也
陽一 和也
PhD student in Robotics and Computer Vision. 机器人与计算机视觉博士生。ロボット工学・CV博士課程学生。Étudiante doctorante en robotique et vision.

好的,我们来聊聊算法这个话题,尤其是在AI领域里它有什么不一样。


什么是算法?先从做一道菜说起

你可以把算法想象成一份菜谱

比如你想做一道“番茄炒蛋”。菜谱会告诉你:

  1. 准备材料(输入):2个番茄、3个鸡蛋、盐、油。
  2. 具体步骤(处理过程)
    • 先把番茄洗干净切块。
    • 再把鸡蛋打散。
    • 开火、倒油、炒鸡蛋,盛出来。
    • 再倒油、炒番茄,加盐。
    • 最后把鸡蛋放回去一起翻炒几下。
  3. 完成(输出):一盘香喷喷的番茄炒蛋就做好了。

你看,这个菜谱非常明确,只要你按照步骤一步一步来,不管你是谁,最后做出来的东西基本都八九不离十。

所以,算法就是这么个东西:它是一套清晰的、一步一步的指令,用来解决一个特定的问题或完成一个特定的任务。

我们电脑和手机里几乎所有的程序,背后都是由无数个这样的“菜谱”(算法)组成的。比如你用计算器算1+1,它执行的就是一个加法算法;你用地图导航,它执行的就是一个路径规划算法(比如找最短路线)。这些都是非常经典的、指令明确的算法。

AI里的算法有什么不一样?

好,现在我们来说AI里的算法。如果说传统算法是“手把手教”,那AI算法更像是“让它自己学”。

我们还用做菜来打比方。

传统算法是给你一份固定菜谱。而AI算法,更像是在培养一个小厨师。你不会给他一份精确到克数的菜谱,而是会:

  1. 海量训练(喂数据):你让他尝遍成千上万盘顶尖大厨做的“番茄炒蛋”,并且告诉他哪些是好吃的,哪些是不好吃的。
  2. 自己领悟(学习与调整):这个小厨师非常聪明,他会自己琢磨:“哦,原来好吃的番茄炒蛋,番茄都比较软烂,鸡蛋不能太老,盐要放得恰到好处……” 他在脑子里慢慢形成了一套自己的、非常复杂的“做菜心得”。
  3. 举一反三(预测与泛化):下次,你给他一堆全新的食材,他就能根据自己学到的“心得”,做出一盘很棒的番茄炒蛋。甚至你给他一种他没见过的番茄,他也能处理得很好,因为他学到的是“精髓”,而不是死板的步骤。

所以,AI算法(特别是机器学习算法)有这么几个很酷的特点:

  • 数据驱动(Data-Driven) 它不是靠人写的硬性规则驱动,而是靠大量的数据来“喂养”。数据越多、越好,这个“小厨师”学到的手艺就越高明。没有数据,再牛的AI算法也只是个空壳子。

  • 自我学习和优化(Self-Learning & Optimization) AI算法的核心是“学习”。它会在训练中不断犯错,然后根据错误(比如做出来的菜不好吃)反过来调整自己的内部参数(“做菜心得”),争取下次做得更好。这个过程就像我们人类学习一样,是一个不断试错和改进的过程。

  • 处理模糊和复杂问题的能力(Handling Ambiguity & Complexity) 传统算法最怕“意外情况”。比如菜谱说用“中火”,到底多大是中火?传统算法就懵了。但AI算法很擅长处理这种模糊的信息。就像我们识别人脸,每个人的脸都有细微差别,光线、角度也不同,想写一个“规则”来识别所有人脸几乎不可能。但AI算法可以通过看无数张人脸照片,自己“悟”出什么是“人脸”,识别率非常高。

  • 有时候像个“黑箱”(Black Box) 因为AI算法是自己学习的,它的内部决策逻辑可能极其复杂,有时候连创造它的工程师都很难完全解释清楚它为什么会做出某个特定的决定。就像你问那个小厨师为什么这么放盐,他可能会说“感觉”,是一种综合了成千上万次经验后的直觉。这也是目前AI领域一个重要的研究方向——如何让AI的决策过程更透明、更可解释。

总结一下

  • 传统算法:像一份死菜谱,严格按照指令执行,结果稳定可预测。适用于规则明确的问题。
  • AI 算法:像一个会自我学习的厨师,通过大量经验(数据)来掌握技能,擅长处理复杂、模糊、没有固定公式的问题。

希望这个比喻能让你对算法,特别是AI里的算法,有一个更直观的理解!