最近工作中,发现不少人对AI中的算法和模型的概念分不清楚,导致思考沟通表达问题不准确,其实这两个概念还是有很大差别的。
AI中的算法,是指在已知样本数据基础上,按照预先设定的架构,由机器运行创建学习“模型”的过程。机器学习算法有以下特性:
- 可以用数学和伪代码来描述。
- 可以对算法的效率进行分析和描述。
- 可以用任何一种现代编程语言来实现。
常见的算法有很多。比如,非常基础和入门的算法:线性回归,K- 近邻算法,K- 均值算法,决策树等。
AI模型是指基于已有的数据集,运行机器学习算法,所得到的输出,可简单理解为通过算法学到的东西。比如说前面提到的线性回归算法的结果是一个由具有特定值的稀疏向量组成的模型。
可以把模型类比为程序,它能像人类编写的一般程序一样,输入数据后,经过一系列内部处理,给出结果,区别是它是机器生成(由人工编写的训练程序生成的)而非人类直接编写的程序。
人类在理解算法的基础上,编写训练模型的程序(简称训练程序),然后基于已有的数据集,训练学习生成模型,模型再根据输入的数据,预测产生结果。
训练程序一般情况下是实现了某一种训练算法,这个算法接受输入的数据,进行某些运算,运算的结果就形成了模型。训练程序运行的过程就叫做训练(学习),模型是训练程序的输出,是训练的结果。
![](/i/l/?n=22&i=blog/150046/202211/150046-20221119231831018-1981725614.png)
和普通程序一样,模型对输入输出的处理是静态的,给它们一个特定的输入,它们就会给出一个特定的输出,不会因之前已经处理了其他的数据而产生不同的输出。而训练程序对输入输出的处理是动态的,比如,用某个训练程序训练了包含2M样本的数据集Dataset_1,生成了一个模型b1之后,又获得了1M样本的数据集Dataset_2,可以有两种训练方式:
方式 i)用Dataset_2从头开始训练,可以获得模型b2;
方式 ii)将b1作为预训练模型,在它的基础上,用Dataset_2继续训练,获得模型b1’。
训练程序同样是处理Dataset_1+ Dataset_2共3M的样本数据,但因为具体的训练方式不同,输出的结果不同。b2仅具备从Dataset_2中学习到的知识;而b1’ 除了Dataset_2,还学习了Dataset_1中的知识——这一部分不是通过直接的训练,而是通过已经训练出来的b1间接得到的。相当于b1先学习了Dataset_1中蕴含的知识,再移交(transfer)给了b1’ ,这叫做迁移学习(Transfer Learning)。现在有很多开源模型库,如魔搭社区的开源模型库,就是方便AI应用者在解决自己特定场景问题时迁移学习,快速实现并优化应用的效果。
标签:2022.47,训练,AI,模型,程序,Dataset,算法,b1 From: https://www.cnblogs.com/doit8791/p/16907519.html