加入收藏 | 设为首页 | 会员中心 | 我要投稿 宿州站长网 (https://www.0557zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

AI项目的开发流程概述

发布时间:2021-09-08 18:46:59 所属栏目:大数据 来源:互联网
导读:根据江门站长网 Www.0750Zz.Com报道 人工智能作为当下最热门的行业之一,不管是高考的专业选择中,还是各行各业的工作中,基本都会听到人工智能这个词,主要原因就是社会上各行各业对人工智能的需求越来越大了。在国内,从2015年开始,人工智能技术就已经逐渐
根据江门站长网  Www.0750Zz.Com报道
人工智能作为当下最热门的行业之一,不管是高考的专业选择中,还是各行各业的工作中,基本都会听到人工智能这个词,主要原因就是社会上各行各业对人工智能的需求越来越大了。在国内,从2015年开始,人工智能技术就已经逐渐渗透到了各行各业了。那么实现人工智能的过程是怎么样的呢?我们所看到的人工智能产品到底是怎么一步步走到我们眼前的呢?接下来我们就以人工智能领域最为火热的深度学习为例,详细分析一下人工智能项目的研发流程。
人工智能项目的开发流程概述
1、数据处理-AI的粮食加工
人工智能项目研发的首要阶段就是数据处理,既然是数据处理,那么需要有数据才能处理。数据作为人工智能项目的首要材料之一,是不可或缺的,怎么获得良好的数据,是处理好数据的第一步,没有质量保证的数据,无论如何处理,也很难达到数据处理结果的要求。
数据的要求一般是根据项目最终的要求而定的,比如拿图像视觉方向的项目来说,模型所需要的当然就是图像数据了,那么什么样的图像数据才算是比较好的数据,有利于模型的学习呢?一般来说图像数据对于现实物体的还原度越高越好,一般可以从图像的色彩三要素和图像像素的值来判断。
人工智能项目的开发流程概述
数据的还原度从根本上影响了模型最终输出的效果,但是如果拿到的原始数据质量就不是很好的时候,就只能想办法对原始数据做一些处理,以期望数据的质量更好一些。但是话说回来,数据处理只是治标不治本,也就是说如果数据的质量真的不怎么好,那么无论如何处理也是很难达到使用的效果的。
所以最好的办法就是采集和使用场景匹配度最高的数据,比如让工作人员到现场实地采集数据。这个做法是非常有必要的,不要光看现在顶会论文上的哪些指标,人家是在做学术研究的,大家使用的数据集都是一样的,比如coco,voc等等,只有使用同样的数据集才能分出大家谁的模型比较好,比如最近比较火热的YOLOX也是在COCO数据集做的测试,和以前各版本的YOLO做的比较。
人工智能项目的开发流程概述
比如说最近的某某模型增加了Attention后,发现accuracy、flops、mAp都提升了不少,又一次SOTA了,等过了一段时间作者针对不同的任务对模型又做了一些Fine tune,结果比以前还更好。但实际上这些学术界看似超越之前的研究成果在实际工程应用中却没有想象中的那么美好,因为时间工程中,不可能出现两个不同的项目使用同样的数据集的情况。
在实际工程中,在采集数据的过程中,稍微不注意的一些细节就将模型的优势抵消了。比如采集数据的时候,是从互联网上爬下来的数据,那么数据的质量可能就不会太好,如果实际工作环境是室内或室外固定的场景,那么最好是到实地去采集不同时间、日期、天气情况下的数据,如果采集到好的数据资源,那么就算使用一个一般的模型,也能得到较好的结果。反之,如果训练数据和实际应用场景的数据差异过大,那么就算使用当前的SOTA模型,也很难达到预期的效果。
人工智能项目的开发流程概述
当然,再好的数据,采集回来后还是要做处理的,最直接的就是打标签,标签的设置确定了模型最终要学习的目标是什么。如果采集的数据数量不够,那么还需要做一些相应的数据增强来扩充数据量。
2、模型设计-AI的灵魂熔炉
如果数据是材料,那么模型就是容器,好的材料配上好的丹炉,才有产出好的丹药的可能。模型的发展是深度学习技术发展中较为重要的一环,无论是早期的卷积神经网络模型LeNet,还是后来的AlexNet,以及后面陆续出现的VggNet、GoogLeNet、SqueezeNet、ResNet、DenseNet、DarkNet、MobileNet、ShuffleNet、EfficientNet,又或者是这两年异军突起的Transformer模型,以及CNN和Transformer的结合体,都有一个共同特点,那就是这些模型的发展都朝着一个共同的目标前进,这个目标就是更高的mAp值、更高的训练效率、更快的推理速度、更大的平台适应性。
人工智能项目的开发流程概述
可以从模型的发展历程中看出,深度学习的知识体系更新迭代非常之快,想要保持在技术知识上的前沿性,就需要不断的学习新知识。如果在企业工作,那么还需要将这些新的知识融入到工程应用当中,产生一定的实际价值。
如果单从神经网络模型的发展来看,似乎想要在行业中出头,只能依靠不断的学习新知识,但是很明显,这样的成本太高,一般的企业从业人员不可能每天都有很充裕的时间来学习的,所以工程界和学术界对于新技术的关注度还是有些差异的,毕竟一个纯粹的学术研究,一个是落地的实际应用。
在学术界,模型的轻微提升,就可以发表一篇论文,甚至可以发表在顶会期刊上面,因为学术研究的就是在固定条件下的模型性能和效率。而工程界的条件不可能像学术界那样固定,每个具体的项目要求都不一样的,而且不同项目的数据也是大相径庭,这样就会造成同样的模型,在不同条件下会出现不同的结果,由于工程界实际项目的变量太多,将学术界影响结果的不确定性条件扩大了,需要解决的问题自然也就增加了。
人工智能项目的开发流程概述
在学术界做研究的时候,有部分条件是人为固定的,只需要在模型的设计训练上提高效果即可,而到了工程界就变成了所有的条件都具有了不确定性,比如设备、数据、平台、外部环境等这些变量对于最终结果的影响,一点都不亚于模型对于结果的影响。所以在工程界,当影响结果的这些变量在发生变化的时候,会出现使用较弱的模型效果却超出较好模型效果的情况,其原因就是模型上提升不足以抵消其他变量带来的负面影响。
好的丹炉虽具有炼出好丹药的可能,但是如果丹炉放置的位置不好,经常刮风下雨、伴随地震海啸,那么这个丹炉的优势就不如放在一个稳定地面上的丹炉的效果了,更不用说所使用的材料出了问题了。当然学术界和工程界是互相促进发展的,学术界的技术研究为工程界实际应用做技术方向指导,而工程界反过来监督验证学术界的研究成果是否有效。
人工智能项目的开发流程概述
3、训练优化-AI的学习成长
模型训练是最考验算法工程师的实战经验的,比如选择什么样的主干模型,进行怎么样的微调,以及选择什么样的损失函数和优化方法,是否进行多阶段训练,或者对图像数据进行多尺度训练等。此外还包括进行多大batch的采样,如何提高训练的速度,而这些都和具体的设备类型相关。
一般来说,有经验的训练人员,在训练模型的时候,不会一开始就输入大量的数据,而是做小批量的数据的训练,目的是先通过小批量数据来检验模型的好坏,然后再根据检验情况进行下一步的操作。很少会出现直接一上来就使用大批量的数据训练模型的情况,因为这样的做法有点像豪赌,一旦模型出现了问题,那么前面辛辛苦苦花费的大量时间将会毫无成果,一切都要重新再来,这种大量的试错时间成本在真实项目开发当中是有可能造成项目延期的。
人工智能项目的开发流程概述
一般模型训练开始之前先使用少量的数据快速的训练出一个过拟合的结果,用来验证模型是否合适。在实际工作中过拟合往往是不好的表现,但是我们可以使用它来做一些有意义的事情,比如用过拟合来验证模型是否合理,过拟合往往意味着参数过大,或者数据过少,导致模型测试的时候泛化能力太差,但是却能够告诉我们,模型本身是没有问题的,问题就在于训练过度,或者数据集过少。既然都过拟合了,说明模型的参数是足够多的,而且也得到了正确的结果,这正是我们想要的,至于过拟合,可以通过增加更多的数据来解决。
人工智能项目的开发流程概述
如果模型有问题,那么想要得到一个过拟合的结果都是不可能的。如果在前期先训练一个过拟合模型,那么将能够大大的加强我们工程当中的容错率,哪怕训练出了问题,再调整模型也不会浪费太多的时间,甚至可以再来一次,训练一个新的模型,因为过拟合模型的训练本来就花不了太长时间。
人工智能项目的开发流程概述
如果太过自信,模型训练一开始就把全部数据加载进去,那么模型的训练有可能会是几个星期甚至更长的时间,然而一旦出现错误,那么浪费的时间就太长了,有可能会导致项目的工期延误。最好的办法就是使用少量数据训练过拟合的结果来不断测测试模型的正确性,当确定模型没有问题了,再加载大批量的数据训练。
4、评估验证-AI的监理指导
模型评估是和模型训练伴随而行的,可以说训练一开始,评估也随之开始。训练和评估如同部队上的司令员和政委,一个负责攻城掠地,一个负责监督指导。可以对比一下电视剧《亮剑》里的李云龙和赵刚,李云龙的职务是团长,负责指挥前线士兵冲锋陷阵,赵刚的职务是政委,负责后勤和监督政策的执行。在剧里李云龙和赵刚经常吵架,因为李云龙的目标是如何打胜仗,而赵刚的目标不光要打胜仗,还要负责部队整体的思想工作,监督政策的执行,防止一些冒险的做法。
人工智能项目的开发流程概述
对比模型训练和模型评估,两者的关系也是如此。模型训练只负责如何把模型训练好,至于要训练到什么程度才算合适,需要模型评估说了算。所以在开始一项任务的时候,模型训练和模型评估是同时进行的,正常情况下,模型训练一次,则评估一次,但是我们认为模型训练的前几次是不需要评估的,因为模型训练的前期,参数还没有学习到正确的数值。
根据经验,一般模型在训练到一定的次数之后,再启动模型验证部分,相比模型训练一开始就启动模型评估,这样的操作可以在保证模型有效评估的前提下加快模型训练速度,因为模型在训练到后期的时候,只凭经验是很难确定模型是否已经训练到合适的程度的。有了评估验证的过程,就可以根据验证的结果来判断模型是否需要继续训练了。
人工智能项目的开发流程概述

(编辑:宿州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读