模型、算法、数据模型、模型结构是什么?它们之间有什么关联和区别?
参考:大数据与人工智能
导读
我们在看一些机器学习、人工智能、数据仓库方面的资料时,经常会出现“神经网络
”、“深度学习算法
”、“非监督学习
”、“大模型
”、“逻辑模型
”等高频词汇。这些词语有时会在同一篇文章中交叉出现,看似描述的是同一件事情,但所要表达的意思似乎又不尽相同,很容易就被绕晕了。
这里先给出“模型 、算法、模型结构、数据模型、训练”5个概念的精简定义:
-
模型:现实世界的数学表示或模拟,它是指一种结果。
-
算法:执行特定任务的明确步骤序列。
-
模型结构:模型的特定框架或架构。
-
数据模型:描述数据对象、其关系及与其相关的操作的抽象结构。
-
训练:使用数据调整模型参数以改进模型性能的过程。
很抽象,这里先提个问题:“支持向量机到底是指什么?模型、算法亦或其它?”答案会在最后揭晓。
一、算法
1、算法定义
算法的定义有许多版本,但其核心思想是一致的。算法可以被定义为:一个明确的、有序的、有限的步骤集合,用于解决一个特定的问题或执行一个特定的任务。这个定义是非常通用的,适用于从最简单的日常生活任务(例如烹饪食谱)到复杂的计算机科学问题的算法。
让我们详细分析这个定义:
-
明确 (Clear):算法的每一步都应该是清晰、无歧义的,这样任何人都可以理解并按照算法的指示进行。
-
有序 (Ordered):步骤的顺序是固定的,这确保了每次运行算法时,它都会产生相同的结果(如果输入和初始条件保持不变)。、
-
有限 (Finite):算法的执行不能无限期地进行;经过一定数量的步骤后,它应该结束。
-
解决问题或执行任务:算法的目的是解决某个特定的问题或执行某个特定的任务,无论是计算数字、排序列表,还是其他更复杂的任务。
事实上,我们可以把任何使计算机能够按照我们预定目标运行的方法称为“算法”,不仅仅包括上面的举例,在计算机领域常见的“冒泡排序”等基础算法都可以算作“算法”的范畴,以下是冒泡算法的步骤流程:
2、机器学习算法定义
在机器学习和人工智能领域,"算法"这一词语通常具有特定的含义和上下文。在这些领域,算法通常指的是:一种通过数据或经验自动改进性能或逐渐适应某一任务的方法。这个算法定义相对于传统算法的特殊之处在于"学习
"和"适应
"。让我们详细分析这个定义:
-
通过数据或经验:机器学习算法通常需要数据集来进行训练。这些数据允许算法识别模式、做出预测或完成其他任务。
-
自动改进性能:随着时间的推移和更多的数据输入,机器学习算法旨在提高其任务的完成质量,无论是分类准确率、预测精度还是其他度量标准。
-
逐渐适应某一任务:这一点突出了机器学习算法的"学习"能力,即它们随着时间的推移会变得更加擅长于特定的任务。
在机器学习和AI的上下文中,算法可能包括决策树算法、神经网络算法、遗传算法等。每种算法都有其特定的学习方法和适用的任务类型。下面示例了决策树ID3算法的实现步骤:
为了更快更好地实现自己的算法,很多时候,人们喜欢把已经实现的、效果良好的算法做一些封装,这样,下次编写算法的时候就可以直接拿来用了。我们常用的TensorFlow
、PyTorch
、MindSpore
都是。
现在大模型中很热的Transformer
可以被认为是一种算法,因为Transformer
描述了如何执行自注意力计算、如何结合输入数据、如何通过神经网络层传递数据等等,这个意义上的 “算法” 是描述模型在前向传播和反向传播期间所采取的计算步骤