我叫Alexandra Tsareva。我和我的同事正在Jet信息系统的机器学习中心从事计算机视觉领域的项目。我想分享我们在计算机视觉领域的项目开发和实施中的经验。
在本文中,我将讨论数据专家在项目上的工作过程看起来是如何,而不是从“精神上”,实际上是从数据专家的观点上,而是从组织的角度来看。我希望这篇文章后面能有更多内容,并且能够撰写一些小文章。
我将立即提出两点要点:
- 这些步骤几乎适用于所有数据集项目。但是,某些时刻是由于CV周围的炒作效应,计算机视觉中“银子弹”的荣耀以及客户“将其与神经网络结合”的愿望所致。
- , , — , - . , , ( , ..) , — - .
: ?
当客户决定需要数据学家和某种可以帮助他的人工智能时,首先,他需要了解他要解决的问题。在此阶段,数据签名者充当数据“心理分析家”,并从业务角度详细询问数据,外部约束以及人们希望在理想世界中解决的问题。客户通常已经对未来的任务了如指掌-您只需要帮助他理解并正式化这些知识(了解他的内部数据世界,有时-了解它的特殊性)即可。
当然,计算机视觉是一个非常有趣的领域,总有一些事情需要您动手做。但是,所有这一切都是相当昂贵的-无论是在开发时间,专家成本还是在所需设备方面。我们不禁要问,解决问题的最佳方案是否真的需要简历。也许还有其他更合适的机器学习工具,可以用更短的开发时间和更高的精度更好地解决问题?
我将通过一个简单的示例向您展示这个想法。一家零售商希望实施CCTV图像识别,以跟踪结帐时排队的人数。这似乎是一项显而易见的任务-有一个视频档案,甚至有预训练的神经网络-“计数器”。签署时间表,执行此操作。
但是,通过与零售商的对话,数据烧结专家了解到该任务与特定时间收银员的负担无关。全局任务不是要呼叫不必要的员工来替换,而是同时避免排队。零售商拥有一个庞大的数据库,该数据库可以显示访问商店的买家数量(如果您看到卖家在商店出口处弯腰的框架,则看到了这种计数器的最简单实现),结帐中的购买数据……实际上,任务并非排队人数,并预测收银员的负担并优化他们的工作时间表。
当然,您可以通过计算已存档视频中的人数来解决此问题。但是表格数据通常存储得更深,更易于处理。提供替代方案是很公平的-也许客户只听说过CV很棒。
因此,在第一阶段,我们确保客户要解决的问题确实是机器视觉问题,并且该技术最适合解决该问题。
第二步:我们将如何解决简历问题并评估解决方案的成功性?
第二阶段是制定数学问题,选择指标。
是否有已知的解决方案(神经网络)可以解决此问题?甚至盒装产品?如果任务是新的-也许我们可以依靠出版物并初步评估可达到的质量?
在此阶段,我们将以数据科学家的身份从工作的角度,以及从客户的角度出发,讨论解决业务问题的解决方案。
有时,在就解决方案和指标达成一致的同时开始处理数据,但为方便起见,我们将在一个单独的步骤中将其选中。
第三步:探索并了解我们的数据
评估我们是否有足够的数据来解决当前的任务非常重要。显然,即使在设置阶段,小型数据集也会被拒绝,但是在了解业务问题的过程中,可能会出现新的细微差别。情况有所不同:我们可以拥有1000张图像,其中只有10张属于要求的类别,并且没有秘密的机器视觉技术可以帮助我们。
也许我们会立即理解,使现有数据集变得更好并不困难-要求员工拍摄比常规拍摄的对象更多的对象,通过外包或开放数据集收集一些其他数据。
在同一阶段,在将来的模型学习方面会注意到缺点,当我们重新讨论问题的基本可解决性时,许多缺点可以使我们回到这一步骤。最常见的例子是数据的多样性低,或其中一种类别的代表性不足。可以使用各种增强技术竞争增加多样性,但这并不总是允许我们为现实世界准备模型。但是,如果在我们看来我们可以应付数据中的困难,那么第四步便可以解救。
第四步:开发原型模型
在现阶段,我们不是在讨论要准备实施的模型,而是要在原型上解决我们和客户的问题,即是否值得继续朝这个方向努力,可能的结果是否符合期望(我们以及最重要的是客户的期望)。处理完数据后,我们开始开发试验模型并评估其质量。一些显而易见的事情:在此阶段,针对延迟的数据集验证模型。两个主要选项是我们放在一边的图像,或者是我们在项目上工作时客户键入的图像。
在原型开发的试点阶段,该项目的工作期限至少为一个月。在此期间,大多数情况下,客户可以累积数据进行测试。对于数据烧结者来说,这是一个很好的测试,以查看他们对解决问题的重视程度:如果我们获取从未见过的数据,则将检查模型如何泛化,以及模型是否适合验证数据集的答案(当然也要推迟验证数据集的答案)。但是现在发现现实世界中的一切都发生了变化,为时已晚,这真是太遗憾了。
另一方面,在接收到延期的数据集时,我们可以发现落入项目客户利益范围(也涉及内部客户)的对象在多大程度上稳定并与用于训练和验证模型的样本相对应。毕竟,这种情况是完全有可能的:将计算机视觉作为一个大型项目实施以使所有人和所有人都数字化,并且在同一阶段数据源发生重大变化(例如,主输送机已经完全重建,并且来自其的图像已经发生了根本变化)。
对试点结果的分析有助于决定项目的未来。事实证明,客户对准确性水平有很高的要求:例如,99%的答案必须正确,而在前面的步骤中,对我们来说,这似乎是可以实现的。但是在飞行员身上,我们达到了93%的准确度,当然,我们不能保证有6%的增益。与客户讨论可提供的试验结果的项目开发选项是合乎逻辑的-关于收集其他数据,减少所需的度量标准,甚至冻结项目直到CV领域取得新突破。
下图可以显示前四个步骤:
他们花费的时间比实际开发少得多。尽管如此,该项目的未来成功还是有待确定的-它能满足客户的期望并真正解决他的问题的程度。
第五步:休息;)
整个项目,从概念确认到已实施的解决方案,将如下所示:
项目开发的计划和期限是近似的。在实际项目中,总是会出现各种细微差别,因为每个人的数据都不同,它们以不同的速度收集,并且根据集成计划的对象,执行者等,将公司内部引入计算机视觉的阶段可能会非常不同。 .P。毕竟,要为长时间进入办公室的员工安装一个身份识别系统是一回事,该系统基于监视摄像机的记录:我们可以立即开始与他们合作。如果我们有不多的示例图像来证明概念,那是另一回事-我们将检查该问题原则上是否可以解决,以及收集一个完整的数据集将花费多长时间,我们不知道。
因此,幻灯片在真空中显示了一个抽象项目的非常近似的时间范围,但是我认为了解从概念证明到实施和实施的整个周期大约需要一年是有用的。对于“复杂任务”,这些术语可能会增加,如果“开箱即用”的解决方案更可取,或者该问题是众所周知的并且不需要研究工作,则这些术语会减少。