人工智能项目开发验收维护及机器学习开发框架介绍
人工智能项目开发验收与维护
模型性能评估与测试调优
分类任务的评价指标
评价指标:使用不同的性能度量,往往会产生不同的评判结果,评价指标的选择,影响性能、算法选择、特征重要性的评判的结果。
模型的泛化性:机器学习的目标是从训练领域的训练数据到任意其他数据上的性能良好,可以在未来对模型没有见过的数据进行预测,可能会产生过拟合和欠拟合的情况。
准确率:正确分类的样本数占总样本数的比例,但是对于不均衡数据而言,模型会调入“高准确率陷阱”,为避免该陷阱,引入混淆矩阵。
混淆矩阵:把样本的真实分类值作为一个维度,把预测分类值作为一个维度。
精准率和召回率,精确率取决于模型准不准,召回率看数据全不全,不可兼得,要取舍。
模型调优,过拟合与欠拟合。
调参过程类似,先找出若干模型,然后基于某种模型进行评估。算法参数一般人工设置。模型的参数一般由学习确定。参数对性能会有终身影响。拟合就是调整参数和模型,让结果无线接近真实值的过程。
偏差—方差窘境,一般而言,偏差与方差存在冲突,训练不足,徐吸气你和能力不强,偏差主导。训练加深,拟合能力增强,方差主导,训练充足后,学习器拟合能力很强,方差主导。
泛化性能是由学习算法的能力,数据的充分性,以及学习任务共同难度决定。
比较检验:机器学习恩物——>概率近似正确。测试性能不等于泛化性能,且随着测试数据集的变化而变化,很多机器学习算法本身有一定的随机性。
模型泛化性的评价,过拟合,即在训练数据上表现良好,在未知数据上表现差。欠拟合,即在训练数据和未知数据上表现都很差。解决方法是重新选数据,重新选模型。
模型的部署与维护
环境部署的选择,
生成VS开发,生产环境是软件持续运行的环境,是用户最终使用的环境。开发环境,是程序员用于编码、测试和优化代码的环境。
单机VS分布式,单机,是一台可以响应用户所有请求的机器。分布式,多台机器通过协调和通信实现共同的目标,计算机集群。
模型部署,机器模型的挑战
数据科学语言管理,python和R是最流行的语言,生产环境,转化为C++或者Java,使用容器化技术。涉及算力和GPU的分配,包括可移植性和可扩展性,批处理扩展到流处理的能力和弹性的管理。
线路图需要模型引擎、工具库、数据转换器、模型库等,需要支持常用编程脚本语言,及相关的工具库,比如docker,spark等。
模型的维护,在工业环境中开发和部署机器学习模型的流程。
流程,数据管理、模型学习、模型验证、模型部署。
模型学习包括模型选择和模型训练。
模型验证,要求:能够满足未知数据,泛化,合理处理,鲁棒性,满足需求。
步骤:
需求编码,定义:需求是测试活动的前提,性能的提升并不能转换为商业价值的增益。
形式验证:数学证明,误差范围的数值估计,现实中通过监督框架等实现。
以及测试的验证,搜集未验证的数据集。
模型部署包括:
模型集成,构建模型基础架构,实现模型,系统工程,机器学习,交叉。
模型监测,社区理解待监测数据,如何启动警报,预测偏差。
模型更新,始终反应数据的更新。
机器学习开发框架
什么事机器学习开发框架?
机器学习开发框架本质上是一种编程库或工具,目的是能够让开发人员更容易、更快速地构建机器学习模型。机器学习开发框架封装了大量的可重用代码,可以直接调用,目的是避免“重复造轮子’大幅降低开发人员的开发难度,提高开发效率。机器学习开发框架是涵盖用于分类,回归,聚类,异常检测和数据准备的各种学习方法,并且可以包含神经网络方法。
机器学习框架和深度学习框架的区别和联系。
广义上,机器学习框架包含了深度学习框架。本质上,机器学习框架涵盖分类、回归、聚类、异常检测和数据准备等各种学习方法。深度学习框架涵盖很多多隐藏层的深度神经网络拓扑。
机器学习框架:Caffe,CNTK,PyTorch,Keras,MXNet,TensorFlow。深度学习框架:深度学习框架专注于神经网络,常用的是PyTorch和TensorFlow。
TensorFlow:人数多,社区庞大,工作流程简单,api稳定,兼容性好,能在各类型机器上运行,google持续提供支持,快速迭代和完善。
PyTorch:支持GPU和动态神经网络,面向对象设计最优雅。简洁、高效、快速,追求最小的封装,符合人类思维,让用户聚焦自己的想法。
如何使用开源代码仓库
什么是开源?即源代码公开,任何人都可以获取源码,查看,修改。依托同行评审的社区生成,旨在分散、协作的方式开发。
协议包括:GPL、LGPL、BSD、MIT、APACHE、MPL。
好处:更多控制权、学习更容易、真正的安全。
发展情况:
地域性,美国66%,中国13%,其他21%。
维护者特性,企业、高校研究机构、组织和个人,各占三分之一。
时间特性,2007年后开原机器学习框架推动机器学习进步,深度学习框架开始繁荣。
编程语言特性,Python、C++、Java
框架特性,TensorFlow用户居多。
常见的开源代码托管平
Github,世界上最大的代码托管平台,面向开源和私有项目托管,5000万开发者,只支持git。
Gitlab,用于仓库管理系统的开源项目,适合团队对仓库的访问。
Bitbucket,采用Mercurial作为分布式版本控制系统,采用Mercurial作为分布式版本控制系统,无限制磁盘空间的使用。
Coding,面向开发者的云端开发平台,2014年,发布腾讯云为基础的国内第一款全云端IDE,CloudStudio。
Gitee,码云,代码托管协作开发平台,企业级代码托管服务。
对GPU和CPU的云计算的依赖
AI算力芯片
CPU,中央处理器,擅长复杂的逻辑运算和数据格式。
GPU,图形处理器,运行绘画运算,擅长图像运算和矩阵运算,加速人工智能的运算速度。
无法单独工作,必须由CPU进行控制和调用。
将在数据中心长足发展,表现为高运算性能迅速占领AI数据中心市场,浮点运算能力不断直线上升。
NPU,为物联网人工智能而设计,用于加速神经网络的运算,多用于视频和多媒体数据。
TPU,为机器学习定制的芯片,张量处理单元,30~80倍的效率提升。
AI与云计算服务
AI项目开发为何需要云计算服务?AI模型训练过程中,出现算力突增,云计算成本低,云平台提供一站式解决方案,创业公司的选择。
AI在云端和终端的算力依赖,云端AI算力提升,智能数据分析任务、训练模型任务、带宽要求不高的推理服务。
边缘+终端的AI算力,本地实时响应的推理服务、数据收集、环境感知、人机交互、不分推理决策控制任务。