主流人工智能平台的架构及调优经验总结
人工智能(Artificial Intelligence)是一个大的概念,是让机器像人一样思考甚至超越人类;
机器学习(Mechine Learning)是实现人工智能的一种方法,机器学习最基本的做法,是使用算法来解析数据、从中学习,然后对真实世界中的事件做出决策和预测;
深度学习(Deep learning)又是机器学习的一种实现方式,他是模拟人神经网络的方式,用更多的层数,更多的神经元,然后给系统输入海量的数据,来训练网络;
统计学是机器学习和神经网络的一种基础知识,从传统分工来看,统计学一般是数学、统计等专业研究的方向,而机器学习是计算机科学的研究方向,但是目前大家的研究成果越来越殊途同归,有统计学的大师就认为统计实际上一直在从事机器学习的工作。
AI计算需要大量的数据,数据从前端传输到后端进行预处理,然后进行标注,获得训练数据集。对下一轮数据,需要对数据集进行调整,或者增加了新的数据集,生成更大的训练数据集;那么整个数据预处理过程是I/O非常密集的过程。数据整理好之后,进行模型训练,这是一个计算和通信非常密集的过程;模型训练完之后,我们进行推理预测,其主要是一个前向计算过程。其需要对批量样本的高吞吐高并发响应和单个样本的低延时响应。
数据分析过程:问题抽象-》数据域定义-》数据处理-》数据集成-》数据加工-》数据集(用于数据分析的集合)
离线分析:历史数据
实时分析:运行数据
调优方案:
•问题抽象:分类、聚类、推荐、关联规则
•特征获取:预处理
•特征选择-》专业知识(知识库)+算法(逻辑回归+PCA)
•数据模型建立:评价(敏感度、特异度)
•算法库:Weka/Spark/Python/Java/C++;TensorFlow/Torch/Pytorch
•数据特点:大数据4个V
•数据模型的实时更新:按天
•实时预测效率(秒级预测):Spark/Flink
•误差分析:训练集的数据排查
•算法调优
混淆矩阵
混淆矩阵包含四部分的信息:
True negative(TN),称为真阴率,表明实际是负样本预测成负样本的样本数
False positive(FP),称为假阳率,表明实际是负样本预测成正样本的样本数
False negative(FN),称为假阴率,表明实际是正样本预测成负样本的样本数
True positive(TP),称为真阳率,表明实际是正样本预测成正样本的样本数
对照着混淆矩阵,很容易就能把关系、概念理清楚,但是久而久之,也很容易忘记概念。不妨我们按照位置前后分为两部分记忆,前面的部分是True/False表示真假,即代表着预测的正确性,后面的部分是positive/negative表示正负样本,即代表着预测的结果,所以,混淆矩阵即可表示为正确性-预测结果的集合。现在我们再来看上述四个部分的概念(均代表样本数,下述省略):
TN,预测是负样本,预测对了
FP,预测是正样本,预测错了
FN,预测是负样本,预测错了
TP,预测是正样本,预测对了
召回率 / Recall / True positive rate / TPR / 灵敏度 / 敏感性 / sensitive/ 查全率
而召回率是针对我们原来的样本而言的,它表示的是样本中的正例有多少被预测正确了。那也有两种可能,一种是把原来的正类预测成正类(TP),另一种就是把原来的正类预测为负类(FN)。
R = TP/(TP+FN)
精确率 / precision / PPV / 查准率
精确率是针对我们预测结果而言的,它表示的是预测为正的样本中有多少是对的。那么预测为正就有两种可能了,一种就是把正类预测为正类(TP),另一种就是把负类预测为正类(FP)。
P = TP/(TP+FP)
特异性 / specificity
样本中的负类被预测为负类的比例
ROC曲线
事实上,要一下子弄清楚什么是AUC并不是那么容易,首先我们要从ROC曲线说起。对于某个二分类分类器来说,输出结果标签(0还是1)往往取决于输出的概率以及预定的概率阈值,比如常见的阈值就是0.5,大于0.5的认为是正样本,小于0.5的认为是负样本。如果增大这个阈值,预测错误(针对正样本而言,即指预测是正样本但是预测错误,下同)的概率就会降低但是随之而来的就是预测正确的概率也降低;如果减小这个阈值,那么预测正确的概率会升高但是同时预测错误的概率也会升高。实际上,这种阈值的选取也一定程度上反映了分类器的分类能力。我们当然希望无论选取多大的阈值,分类都能尽可能地正确,也就是希望该分类器的分类能力越强越好,一定程度上可以理解成一种鲁棒能力吧。
为了形象地衡量这种分类能力,ROC曲线横空出世!如下图所示,即为一条ROC曲线(该曲线的原始数据第三部分会介绍)。现在关心的是:
横轴:False Positive Rate(假阳率,FPR) / 1-特异性
纵轴:True Positive Rate(真阳率,TPR) / TPR / 灵敏度 / 敏感性 / sensitive / 召回率 / Recall
假阳率,简单通俗来理解就是预测为正样本但是预测错了的可能性,显然,我们不希望该指标太高。
FPR=FPTN+FP
真阳率,则是代表预测为正样本但是预测对了的可能性,当然,我们希望真阳率越高越好。
TPR=TPTP+FN
显然,ROC曲线的横纵坐标都在[0,1]之间,自然ROC曲线的面积不大于1。现在我们来分析几个特殊情况,从而更好地掌握ROC曲线的性质:
(0,0):假阳率和真阳率都为0,即分类器全部预测成负样本
(0,1):假阳率为0,真阳率为1,全部完美预测正确,happy
(1,0):假阳率为1,真阳率为0,全部完美预测错误,悲剧
(1,1):假阳率和真阳率都为1,即分类器全部预测成正样本
TPR=FPR,斜对角线,预测为正样本的结果一半是对的,一半是错的,代表随机分类器的预测效果
于是,我们可以得到基本的结论:ROC曲线在斜对角线以下,则表示该分类器效果差于随机分类器,反之,效果好于随机分类器,当然,我们希望ROC曲线尽量除于斜对角线以上,也就是向左上角(0,1)凸。
AUC(Area under the ROC curve)
ROC曲线一定程度上可以反映分类器的分类效果,但是不够直观,我们希望有这么一个指标,如果这个指标越大越好,越小越差,于是,就有了AUC。AUC实际上就是ROC曲线下的面积。AUC直观地反映了ROC曲线表达的分类能力。
AUC = 1,代表完美分类器
0.5 < AUC < 1,优于随机分类器
0 < AUC < 0.5,差于随机分类器
m0_74362852: 大家都接触过i吧额我了啊i在去
征途黯然.: The insights into 华为如何做成数字化转型 are very unique, and the article is excellent.
常耀斌: 认知是人与人的差距所在,提升认知力,是一切方法论的基础。
常耀斌: 深度好文!
常耀斌: 感谢关注![表情包](https://g.csdnimg.cn/static/face/emoji/062.png)
,后续是一个AI大模型系列