白话大模型系列共六篇文章,将通俗易懂的解读大模型相关的专业术语。本文为第二篇:如何提升AI分析的准确性?
作者:星环科技 人工智能产品部
面对AI分析落地时的数量化、准确性、泛化性等问题,让我们稍微深入了解下当前的做法。
这里只做形式化的简要概述:
1.需求分解:将需求分解为若干个子问题,比如“人脸检索”可以分解为“人脸检测” 和“人脸识别”两个子问题;
2.技术手段:手工提取费时费力精度低,那么:
•建立映射关系:使用“数据驱动”的“深度学习”自动提取特征和建立人脸图像到人脸嵌入向量 的映射关系,再次提醒嵌入向量就是能描述人脸的一个多维度的向量;
•建立人脸卡片目录:使用这个映射关系,将人脸图像转化为 ID-人脸嵌入向量对;
•建立高效的查询方法:使用同样的映射关系,处理待查的图像,然后使用人脸卡片目录中的人脸嵌入向量,找到最相似的ID,然后再找到对应的人脸图像。
由此,我们构建出来了一个“人脸识别”的小工具的架子。但是问题在于:
1.怎么构建这样的映射关系?
答:用“数据驱动”的“机器学习”方法。
2.怎么建立人脸卡片目录和构建查询方法?
答:用各类“数据库”或者更广义的“信息检索技术”。加上引号的词汇,都是“术语”,我们不急于解释和类比,因为会产生更大的歧义。我们看看实际生产中,是怎么做的。
建立映射关系
• 数据采集 :采集大量的含有清晰可见的人脸数据,根据要求和“泛化性”不同,除了正脸,我们还需要侧脸、带口罩、大俯仰角、杂乱背景(比如人在花丛中)、多人脸(比如会议合影)等各种情况的数据;
• 数据清洗 :将明显不符合需求的数据剔除,比如:人脸不清晰、人脸不完整、人脸不在中心、人脸不是正脸、人脸不是人脸(比如是猫脸)等,再比如算法上有问题的:重复的(直接重复、有些位置移动/旋转的)、数据毒害的(故意数据投毒的、比如打印的人脸/面具而不是真实人脸的)等等,清洗出“高质量”数据实际工作远比看上去的复杂得多得多;
• 数据标注 :标注出 1. 人脸的位置(比如画一个框,将人头框入;但事实可能有更复杂的情况:比如准确绘制出一个多边形而不仅仅是长方形了,或者图像是 3D 的) 2. 其他信息(比如人的一些 ID/性别等属性)
• 特征提取 + 建立模型 :构建“人脸”(图像)到“人脸嵌入向量”(一串数字)的映射(构建方法我们叫“算法”):
• 这个映射是一个黑盒子,上面有很多旋钮,输入是“图像”,输出是“嵌入向量”;
• 我们只能调整旋钮来控制输出;
• 我们可以验证输出的结果是否符合我们的需求并作出:调整旋钮,考察我们预测出来的“人脸框”和其“ID”和标注的是否一样,不一样则调整,直到符合为止;
• 调整的过程我们叫“训练”,调整的方法我们叫“最优化方法”,使用的人力和组织形式可以理解成“算力”。不管是否符合普通人的认知:在使用了大量的数据后,我们可以得到一个“人脸嵌入向量” 的“映射关系”,也就是{黑盒子本身 + 旋钮的扭转档位},这个组合能够将“人脸图像” 转化为“人脸嵌入向量”,这个向量是一个多维度的数字,我们可以认为这个数字是“人脸”的“特征”。
• 模型提升:来了新情况,准确度等不够(比如识别不了带口罩的人脸),我们可以继续采集数据,然后重新训练模型,得到新的“映射关系”,做到提升。