训练AI模型,要多少数据?拆解企业人工智能项目为何难落地

企业的AI项目在厘清问题本质、找到命题之后,首先会面临到一个问题:收集数据(Data Collection)和创建AI模型(Model Establishing),该以什么作为评估基准?

训练一个AI数据模型,需要多少数据?

训练AI数据模型时,其实有三个要素,彼此互相影响。分别是:商业问题的复杂度AI模型复杂度(Model Complexity),以及数据复杂度(Data Complexity)。

因此,如果想知道需要多少训练数据(Training Data),建议先厘清:这个AI项目到底要处理什么问题,以及这个问题有多复杂?确定之后,再来判断应该选用哪种程度的模型来做训练。根据不同的商业命题复杂度,用不同复杂度的模型和精准数据彼此搭配,找出最佳平衡,才能让AI项目顺利落地。

但光凭想象,很难评估实际的AI数据量和成效,所以开始AI的第一步,需要先通过POC概念验证(Proof of Concept)实验来找答案。

AI模型的

POC概念验证实验怎么做?

简单来说,就是针对不同复杂程度的商业问题,尝试选用不同复杂度的模型搭配测试,直到模型跑出来的曲线,符合理想目标。

一般状态下,假设商业问题本身的复杂度很高,我们会预期要选择复杂度较高的模型。但是如果数据量不足,那么选择复杂度较高的AI模型,反而会比用简单的AI模型效果还差。(上图左上、右上,分别代表复杂度10和复杂度50的问题,可以明显看出复杂的模型曲线比较接近学习数据集(Dataset),但是在测试数据集上的误差Eout,反而比简单模型还差了许多。)

上图的左下和右下,是以不同复杂度的模型去做POC,跑出来的结果曲线图。蓝色线代表的是学习数据(Training Data)成效,红色线代表的是测试数据(Testing Data)成效。最理想的POC目标,应该是两条曲线很贴近彼此,而且位置越低越好。

我们会发现,左下这张图的两条曲线虽然彼此贴近,但是就算增加数据,也无法降低误差。这表示模型偏误(Bias)高,效果不佳,应该要增加模型复杂度(Model Complexity)。

增加模型复杂度之后,就会像右下这张图,蓝色曲线(学习数据)虽然数值很低,但在学习数据不足的情况下(灰色区块),红色曲线(测试数据)却“飘”得太高。这表示模型变异误差(Variance)高,应该要增加学习数据。最后在慢慢增加模型复杂度以及学习数据之后,我们就可以达到理想的结果(两条曲线很贴近彼此,而且位置越低越好)。

数据哪里来?发展AI人工智能之前,先创建数据流

先前我在文章里提到,很多企业会急着开发AI模型,但AI项目落地经验的三大关键之一,其实是先确认:是否已经准备好数据了?如果没有这样的能力,谈AI落地其实有点好高骛远。

AI数据收集(Data Collection)最大的挑战,在于针对不同形态的命题,会产生不同的AI数据需求,因此需要创建的“数据流”(Data Pipeline),AI数据处理(Data Processing)和数据标注(Data Annotation)的模式及流程也会有所不同。

发展AI之前,如果能创建起从数据收集(Data Collection)、数据处理(Data Processing)到AI模型学习的数据流(Data Pipeline),并确保可以顺畅运行,实际训练AI模型时才会省力很多。

数据不够或太多怎么办?

Google开设的机器学习(Machine Learning)课程中,第一项原则就开宗明义地指出:“Don’t be afraid to launch a product without machine learning”。

如果你的产品或业务不一定需要用到机器学习(Machine Learning),那就别用,除非你有AI数据。有数据,再来谈机器学习(Machine Learning)。但在业界的实际状况,大家不是没有数据,而是只有一些些,这时候该怎么办?我会建议,先从小地方开始做起,也就是从POC项目着手。

POC项目要有具体成效,除了要注意设计项目、实验模型的指标(Metrics),企业最重要的是要先定义清楚:AI项目要达到什么样的指标,才算是成功?这样最后做出来的成果,才会真正符合商业目标。

如果今天不是没有AI数据,而是数据很多,又该从何下手呢?

我建议,尝试减少训练AI人工智能时的“数据大小”和“数据笔数”。

过去曾经处理过一个AI项目,数据多达2亿笔。第一次实验,把数据全部喂进AI模型,取得结果。第二次,只拿其中有代表性的500万笔出来训练人工智能。

猜猜结果如何?两次实验的表现,只差异不到1%。

所以,如果企业对于AI数据的品质和数量有一定程度的自信根据,其实不用把数据全部喂进AI模型训练(Model Training),只用有代表性的AI数据来训练就可以了。市面上很多常见的AI工具(Cluster),可以做到这点,帮助省时省力。

AI模型训练,记得校准商业目标

企业发展AI人工智能的最终目的,还是希望能达到商业目标,创造价值

所以,训练AI模型时,团队如果不知道如何判断哪个指标,对AI模型学习来说比较重要,建议回归初心,重新厘清“这个项目想达到的商业目标是什么”。

比方,趋势科技(Trend Micro)要开发一个能够判断计算机病毒的AI,但是勒索病毒(denial-of-access attack)和广告病毒对客户的伤害程度大不相同。这时候,工程师就会针对这个命题,喂给AI模型不同病毒种类的数据,让它学会判断不同病毒的重要性,分辨出哪些病毒比较严重不能有判断错误,而哪些病毒比较无害,不一定要做到一百分。

最常见的训练方法,是用成本函数(Cost Function)的方式,训练完再回去调整AI模型的评分(Rating),用加扣分的方式,告诉机器它的学习表现是好是坏,做对就加分,做错就扣分。

上述评分原则的制定,和企业的商业价值考量息息相关,所以一般在组织分工,会由PM项目团队负责判断哪些项目重要,请资料科学家设计在上述Cost Function里面。

很多人以为,AI人工智能开发要做到很完美才行,但其实根据我们的经验,只要AI开发成本符合预算、AI模型表现可接受(大约做到60–70分),而且结果有助于降低成本,就可以算是达到商业目标。反过来,即使AI模型表现非常好(高达90分),但成本却远超出预算,就不建议执行。

另外,因为POC阶段会做很多的实验,需要拿两个稳定且可以互相比较的基准做A/B Test,所以做好基础建设非常重要。

如果一个团队里面有三位工程师,但三个人做出来的结果都无法互相比较,那么这个实验就会变得雾里看花,导致AI项目难以落地。