本篇计划介绍一下机器学习的实际训练过程,来进一步的理解AI产品在日常工作中需要关注的内容。现简单的将训练流程划分为:定位要解决的任务类型 -> 选择合适的算法模型 -> 准备数据集 -> 训练模型 -> 调整参数 -> 模型评估及验收。
1
根据场景定位要解决的任务类型
结合不同的应用场景,机器学习核心解决的任务类型可以简单归纳为分类问题、回归问题、聚类问题、时间序列问题。
分类问题
回归问题
- 原理: 通过历史数据的表现,拟合成一个目标函数,利用误差分析方法去确定拟合后表现最好的函数。
- 特点: 数据是相互独立的点,且有对应标签
- 应用场景: 预估业务增量、房价增长、股票增长…
聚类问题
- 原理: 不需要提前去定义期望的数据需要怎样划分,根据样本特征的距离去决定分类,保持最小的组内相似。
- 特点: 数据样本无标签,不需要提前去定义期望的数据需要怎样划分,根据样本特征的距离去决定分类,保持最小的组内相似。
- 应用场景: 用户分群、商品聚类…
时间序列问题
- 原理: 与回归的逻辑相似,但对数据的要求不一样,数据按照时间顺序排列,根据相等间隔的时间段的数据表现规律去预估未来的表现。
- 特点: 数据点之间彼此相关
- 应用场景: 需要进行周期性预测类的场景。
2
选择合适的算法模型
根据不同任务类型选择合适的算法模型,如果要解决的是分类问题,即对应的要选择擅长处理分类问题的算法模型,选择合适的模型可以提高数据训练的效率。通常选择什么样的算法是由算法工程师主导的,产品经理只需要简单理解所解决的问题范围即可。scikit-learn上支持的分类算法:
- 朴素贝叶斯分类器(Naive Bayes)
- K近邻分类器(KNeighbors Classifier)
- 决策树(Decision Tree)
- 支持向量机(SVC)
- 线性支持向量机(Linear SVC)
- 随机梯度下降分类器(SGD Classifier)
- 核估计(kernel approximation)
- 集成分类器(EnsembleClassifiers)
要解决聚类的问题,如用户分群,可以选择聚类的算法模型。scikit-learn上支持的聚类算法:
- K均值(KMeans)
- 谱聚类(Spectral Clustering)
- GMM - 高斯混合模型
- MeanShift
- VBGMM
- MiniBatch KMeans
如果要依赖趋势做数值预测,如业务量增长,可以选择回归算法模型。scikit-learn上支持的回归算法:
- 贝叶斯岭回归
- Logistic回归
- 支持向量机回归
- 决策树回归
- LASSO
- 随机梯度下降回归(SGD Regressor)
3
准备数据集
准备数据集包含了数据处理、特征提取、训练集、测试集的分割。
数据预处理
通常来说,我们收集上来的数据来源比较多,可能会存在一些问题,例如数据缺失、数据格式不一致、数据集分布不均匀、数据重复等问题,因此需要进行数据的预处理。
不同问题的处理方式:
- 数据缺失: 如果数据缺失占比不大,可以把有缺失的数据进行删除,若本身数据量级就不是很多,可以进行人工填补,通常经过经验填补或者均值填补。
- 数据格式不统一/量纲不统一: 进行格式转化,数据归一化处理。
- 数据分布不均匀: 可以根据样本分布特点进行随机重复采样,以补充数据量少的分布,但容易丢失重要特征。
特征提取
在机器学习的训练中,需要将业务维度相关的数据进行向量转化,解决部分复杂问题时,如果维度较多在转化过程中很容易造成大量的计算资源的消耗,一般会先进行特征的提取,也就是常说的特征工程,来进行维度的简化。
常用的方法是主成分分析,原理是将两个或几个独立的特征组合到一起形成一个特征。利用这种方式进行降维,使训练的维度减少,提高训练效率。
训练集、测试集的分割
在机器学习模型训练之前,通常要进行数据的分割,常用的有1/4分割、1/10分割,具体需要根据自己的数据样本量去拆分。
4
训练模型 & 调整参数
准备好数据集,确定了要使用的算法,下一步要进行具体的模型训练。上一篇文章中我们提到机器学习模型训练中经常遇到的两个问题,过拟合和欠拟合。
过拟合
- 特点: 在训练集上表现非常好,但是在测试数据或者验证数据上表现很差,说明模型缺失泛化能力。
- 原因: 训练数据太少或者学习后的模型过于复杂。
- 解决方法:增加训练样本,或者减少数据维度,或者为模型添加一个正则项来扩大模型在训练上的误差。
欠拟合
- 特点: 在训练集上表现不好,在测试数据上表现也不好。
- 原因: 维度较少拟合的函数不足以表达数据规律。
- 解决方法:补充维度增加模型的复杂程度。
图上是线性回归模型表现出的三种状态,中间图为模型训练好后该具备的样子。紫色线为模型训练好后拟合出的函数,绿色线为真实数据该拟合出的函数,点代表样本数据。
参数调整
针对调参的环节,一般会通过交叉验证来确定最优参数。当然,一些对模型训练做的比较多的算法大牛,也会根据自己的经验去指定参数进行算法调优。
以KNN算法为例:
- 最简单的方式: K=1、2、3,然后分别进行实验,对比结果,选择最优参数。
- 交叉验证:将一部分数据从训练集上分割出来,从这小部分数据集中进行验证。例如下图,把训练集划分为5份,分别采用每一小份当作交叉实验的测试集,对比每一次实验的结果,去分别记录预估的准确率,最后选择准确率最高的参数作为模型最优参数。
这里需要注意分组实验只是为了确定最优参数,在参数确认后,还是需要将全部数据合并到一起进行模型训练,得到目标函数。很多人在调参的环节容易忽视此步骤。
5
模型评估及验收
最常见的方法是看模型的准确率,但模型整体准确率高,不代表模型表现就好。因为在某些任务场景下,更多关注的是某个类别或者某个分布下的准确率,而非整体的准确率。例如在图像识别的场景下,首先会去关注模型对于图像内容识别的召回率,所谓召回率就是在所有要检测的图片样本中,被预测正确的个数,也叫做查全率。然后在去看模型的精准度,也就是所有预测出的结果中,预估正确的个数。二者的区别在于,前者关注的是在所有真实样本中被正确检测的情况,后者关注的是预测结果中被正确检测的情况。下表是分类问题的混淆矩阵。
举例:数据样本中有猫和狗的图片,我们用图像识别来检测是猫的图片。
- 真正例(TP): 图片预测结果是猫,真实图片结果是猫;
- 假正例(FP): 图片预测结果是猫,真实图片结果是狗;
- 真反例(TN): 图片预测结果是狗,真实图片结果是狗;
- 假返例(FN),图片预测结果是狗,真实图片结果是猫;
本次任务是“检测出猫”的图片,即使模型正确检测出狗,也不满足于我们当前的分析任务,因此基于任务而言,正确预测出是狗的情况为真返例。真返利的数据在“检测出猫”的任务中不会被算到准确率中,基于“检测出猫”这个任务的召回率和准确率的计算为:
- 召回率TP/(TP+FP)
- 准确率TP/(TP+FN)
另外一种评估模型准确率的方法是观察ROC、AUC和EER数据,并进行对比评估。ROC曲线图如下:
- 绿线为ROC曲线
- AUC代表了蓝色面积,蓝色面积越大,说明模型预估越准确。
- EER为绿色线上的原点,值越小代表了模型的误差越小。
如何系统的去学习大模型LLM ?
作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。
但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的 AI大模型资料
包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
😝有需要的小伙伴,可以V扫描下方二维码免费领取🆓
一、全套AGI大模型学习路线
AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!
二、640套AI大模型报告合集
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
三、AI大模型经典PDF籍
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。
四、AI大模型商业化落地方案
阶段1:AI大模型时代的基础理解
- 目标:了解AI大模型的基本概念、发展历程和核心原理。
- 内容:
- L1.1 人工智能简述与大模型起源
- L1.2 大模型与通用人工智能
- L1.3 GPT模型的发展历程
- L1.4 模型工程
- L1.4.1 知识大模型
- L1.4.2 生产大模型
- L1.4.3 模型工程方法论
- L1.4.4 模型工程实践 - L1.5 GPT应用案例
阶段2:AI大模型API应用开发工程
- 目标:掌握AI大模型API的使用和开发,以及相关的编程技能。
- 内容:
- L2.1 API接口
- L2.1.1 OpenAI API接口
- L2.1.2 Python接口接入
- L2.1.3 BOT工具类框架
- L2.1.4 代码示例 - L2.2 Prompt框架
- L2.2.1 什么是Prompt
- L2.2.2 Prompt框架应用现状
- L2.2.3 基于GPTAS的Prompt框架
- L2.2.4 Prompt框架与Thought
- L2.2.5 Prompt框架与提示词 - L2.3 流水线工程
- L2.3.1 流水线工程的概念
- L2.3.2 流水线工程的优点
- L2.3.3 流水线工程的应用 - L2.4 总结与展望
- L2.1 API接口
阶段3:AI大模型应用架构实践
- 目标:深入理解AI大模型的应用架构,并能够进行私有化部署。
- 内容:
- L3.1 Agent模型框架
- L3.1.1 Agent模型框架的设计理念
- L3.1.2 Agent模型框架的核心组件
- L3.1.3 Agent模型框架的实现细节 - L3.2 MetaGPT
- L3.2.1 MetaGPT的基本概念
- L3.2.2 MetaGPT的工作原理
- L3.2.3 MetaGPT的应用场景 - L3.3 ChatGLM
- L3.3.1 ChatGLM的特点
- L3.3.2 ChatGLM的开发环境
- L3.3.3 ChatGLM的使用示例 - L3.4 LLAMA
- L3.4.1 LLAMA的特点
- L3.4.2 LLAMA的开发环境
- L3.4.3 LLAMA的使用示例 - L3.5 其他大模型介绍
- L3.1 Agent模型框架
阶段4:AI大模型私有化部署
- 目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。
- 内容:
- L4.1 模型私有化部署概述
- L4.2 模型私有化部署的关键技术
- L4.3 模型私有化部署的实施步骤
- L4.4 模型私有化部署的应用场景
学习计划:
- 阶段1:1-2个月,建立AI大模型的基础知识体系。
- 阶段2:2-3个月,专注于API应用开发能力的提升。
- 阶段3:3-4个月,深入实践AI大模型的应用架构和私有化部署。
- 阶段4:4-5个月,专注于高级模型的应用和部署。
这份完整版的大模型 LLM 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
😝有需要的小伙伴,可以Vx扫描下方二维码免费领取🆓