背景:
大家好,我是爱酱。前几天跟一个大四的师弟聊天的时候才发现,他好像对模型跟算法的概念有点模糊。他成绩算是不错的,也是打算专攻AI,我就在想,应该不少人会混淆这两个在机器学习中非常重要的概念吧。这期,我就为大家精简地釐清一下他们的区别吧。

一、定义与本质
算法(Algorithm)
算法是一组明确的步骤或规则,用来解决问题或完成某个特定任务。在机器学习中,算法就是用来「学习」的工具,指导如何从数据中寻找规律、调整参数,最终生成模型。

模型(Model)
模型则是算法运行在数据上后产生的「成品」。模型包含了已经学到的知识,如参数(Parameter)、结构(Structure)等,可以用来对新数据进行预测或分类。

定义一向都是偏抽象的,以下我会用例子进一步阐述。

二、比喻说明

在举例前,容许我先做一个简单的比喻。

  • 算法 = 食谱
  • 模型 = 按照食谱和食材做好的菜

注:模型是带有独特性的(uniqueness),意思就是:虽然我跟着食谱做菜,但实际情况,比如我想因应爱好多添加辣椒,少放盐等等,这些是会根据每个不同模型而拥有不同结构的。

所以我们实际上是根据【算法】来烹调自己专属的【模型】。

三、举例说明

算法:

相信对机器学习有一定认知的同学,应该都听过线性回归(Linear Regression)吧,比如 y = B * X + C。没听过也没关系,因为悟性较高的同学应该都能发现,他就是我们初高中学过的直线方程式(Equation Of Straight Line)。线性回归算法是一组公式,这个算法本身还没有具体的参数值,就是一条没有灵魂的公式罢了。

模型:

当你用数据去训练这个算法,得到一组具体的参数(比如 y = 0.24 * X + 10),这时你就得到了线性回归模型。这个模型可以用来预测新的X时对应的y。

例如当X是5,y就会是11.2。当X是3,y就会是10.72。由于y的数值是根据不同X而有变化的,所以y就是依赖变数(Dependent Variable),X相反就是独立变数(Independent Varibale)。

很多人把「算法」和「模型」混用,其实两者是不同层次的概念。算法是方法,模型是结果。

一种算法可以产生无数个模型(针对不同数据),但一个模型只对应一种算法和一组训练数据。

四、关系与实际流程

先声明,实际流程当然更加复杂,例如单单是准备阶段就要做数据收集,资料探勘,数据过滤等。这里我就只专注在包含算法和模型步骤上。其他部分我们可以以后再探讨。

1. 选择算法:根据问题类型(分类、回归、聚类等)选择合适的算法。至于如何选择不同类型的算法来处理对于的任务,如果大家感兴趣,我可以额外发布文章介绍。

2. 用数据训练算法:将数据餵给算法,算法学习数据中的模式。

3. 生成模型:算法根据学习结果产生模型。符合以上所述 - 先选择算法,再产生模型。

4. 模型预测:用训练好的模型对新数据做预测、分类或其他任务。模型在训练好后可以投入相关工作,例如上面提及的线性回归模型(Linear Regression Model)可以用于预测,逻辑回归模型(Logistic Regression Model)可以用于分类,比如分辨猫跟狗。

五、进阶补充

我们现在了解到:算法是动态的学习过程,模型是静态的知识载体。

但在实际应用中,模型并不一定是终点。为保持模型的稳健性(Robustness)以及实时性(Real-time)。模型还可以根据新数据持续调整(如线上学习、迁移学习),这时会再次用到算法来更新模型。

六、总结

算法是训练模型的方法和规则,模型是算法加上数据训练后的产物。

算法决定怎麽学,模型则是学会后用来预测和决策的工具。两者相辅相成,缺一不可。

如果大家有其他感兴趣的AI议题,不妨告诉我,我会尽可能更新为大家排忧解惑!

我是爱酱,我们下次再见,谢谢收看!

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐