看可口可乐如何玩转TensorFlow

随着人工智能的高速发展,开发者们对于能够应对产品多样化挑战的学习框架TensorFlow,也有着很高的热情。除了各类科技产品,零售行业也同样将TensorFlow运用于大规模的深度学习中。

在这篇文章中,来自可口可乐公司数据侠Patrick Brandt,就将为我们介绍如何使用AI和TensorFlow实现无缝式购买凭证。

可口可乐的核心忠诚度计划于2006年以MyCokeRewards.com形式启动。

“MCR.com”平台包含为每一瓶以20盎司规格销售的可口可乐、雪碧、芬达和动乐产品,以及可以在杂货店和其他零售商店购买的纸箱包装产品创建唯一的产品编码。用户可以在MyCokeRewards.com上输入这些产品编码来参加推广活动。

几年后的2016年:可口可乐的忠诚度计划仍然大受欢迎,用户已经输入了数以百万计的产品编码来参加促销和抽奖。

不过,移动浏览在2006年还不存在,而到 2016年底已占据超过50%的份额。为了响应这些浏览行为变化,Coke.com作为一项移动优先网络体验启动,替代了原来的 MCR.com。

将14字符编码手动输入到移动设备中着实是一种非常糟糕的用户体验,会影响我们的计划取得成功。我们希望为移动受众提供尽可能最好的体验,人工智能的最新进展带来了全新的机遇。

▍实现无缝式购买凭证的任务

多年来,可口可乐一直尝试使用现成的光学字符识别 (OCR) 库和服务读取产品编码,但收效甚微。我们的印刷工艺一般使用低分辨率点阵字体,瓶盖或纸箱媒介在打印头下面以非常快的速度运转。这就产生了低保真字符串,让现成的 OCR 软件无法读取这些字符(有时人眼也很难阅读)。

OCR对简化移动用户的编码输入过程至关重要:用户应当能够为编码拍照,然后自动进行购买注册来参加促销。我们需要一个用途特定的OCR系统来识别我们的产品编码。

(图片说明:瓶盖和纸箱示例)

我们的研究将我们引向了一种前景无限的解决方案:卷积神经网络。卷积神经网络是一系列“深度学习”神经网络中的一种,这些神经网络是现代人工智能产品的核心。

Google已使用卷积神经网络从街景图像中提取出街道地址门牌号。卷积神经网络在识别手写数字方面的表现也相当不错。

这些数字识别用例完美代表了我们一直尝试解决的问题类型:从包含小字符集并且小字符集中所含字符的外观千差万别的图像中提取字符串。

▍通过 TensorFlow 实现的卷积神经网络

过去,由于可用的训练和推理库极其复杂,开发像卷积神经网络一样的深度神经网络一直都是一项巨大的挑战。TensorFlow(Google于2015年开放源代码的一种机器学习框架)旨在简化深度神经网络的开发。

TensorFlow 为不同种类的神经元层和热门损失函数提供了高级接口,简化了实现不同卷积神经网络模型架构的工作。快速迭代不同模型架构的能力大大缩短了我们公司构建自定义OCR解决方案所需的时间,因为我们可以在短短几天的时间内开发、训练和测试不同的模型。

TensorFlow模型也非常便携:框架以原生方式支持在移动设备上(“边缘上的 AI”)或在远程托管于云端的服务器中执行模型。这就为许多不同平台(包括网络和移动设备)之间的模型执行带来了一种“一劳永逸”的方式。

▍机器学习:熟能生巧

任何神经网络的智慧都不会超过用于训练它的数据。我们知道自己需要大量带标签的产品编码图像来训练一个卷积神经网络,从而帮助我们实现性能目标。我们的训练集分三个阶段构建:

启动前模拟图像

启动前真实图像

我们的用户在生产中标记的图像

启动前训练阶段的第一项工作是以编程方式生成数以百万计的模拟产品编码图像。这些模拟图像包括倾斜、光照、阴影和模糊强度变化。在模型仅使用模拟图像进行训练时,它对真实图像的预测准确率(即可信度最高的10个预测中准确预测全部14个字符的频率)为50%。

这为迁移学习提供了一个基线:最初使用模拟图像训练的模型是将要使用真实图像训练的更准确模型的基础。

挑战现在就成了使用充足的真实图像丰富模拟图像以实现我们的性能目标。我们为iOS和Android设备构建了一款用途特定的训练应用,“训练人员”可以使用这款应用为编码拍照并添加标签;这些带标签的图像随后迁移到云存储中进行训练。

我们对瓶盖和纸箱上的数千个产品编码进行了生产测试,并将代码分配给多个供应商,他们使用这款应用创建初始的真实训练集。

即使是一个经过增强和丰富的训练集,也无法替代最终用户在各种环境条件下创建的图像。我们知道扫描可能导致编码预测不准确,因此我们需要提供一种能让用户迅速纠正这些预测的用户体验。

两个组件对提供这种体验至关重要:产品编码验证服务,它从我们最初的忠诚度平台于 2006年启动以来就一直在使用(用于验证预测的编码是否是真实编码);预测算法,用于执行回归来确定14个字符位置上每个字符的可信度。

如果预测的编码无效,置信度最高的预测和每个字符的可信度水平将返回到界面。低置信度字符将突出显示,指导用户更新需要注意的字符。

(图片说明:错误纠正界面让用户可以纠正无效预测并生成有用的训练数据)

这个界面创新实现了一个主动学习过程:反馈循环让模型可以将纠正的预测返回训练管道,逐步改进。我们的用户可以通过这种方式随着时间有组织地提高字符识别模型的准确率。

(图片说明:产品编码识别管道)

▍针对实现最大性能进行优化

为了满足用户对性能的期望,我们为产品编码OCR管道建立了一些严格的要求:

1. 快速:我们在产品编码图像发送到OCR管道后需要平均一秒的处理时间。

2. 准确:我们启动时的目标是实现95%的字符串识别准确率,并保证模型可以通过主动学习随着时间不断改进。

3. 小型:OCR管道需要足够小,以便直接分发到移动应用上,并在模型随着时间不断改进时能够适应无线更新。

4. OCR管道需要处理不同的产品编码介质:数十种不同的字体类型、瓶盖与纸箱包装介质组合

最初,我们探索了一种为所有产品编码介质使用一个卷积神经网络的架构。这种方式创建的模型过大,无法分发至移动应用,并且执行时间也比所需的时间长。我们在Quantiphi, Inc.的应用 AI 合作伙伴开始迭代不同的模型架构,并最终确定了一种使用多个卷积神经网络的架构。

这种新架构在不牺牲准确率的前提下显著减小了模型大小,不过仍然无法满足我们为移动应用提供无线更新支持的需要。

我们随后使用了TensorFlow的预构建量化模块,它可以通过减小相连神经元之间的权重保真度来减小模型大小。量化模块将模型大小减小了4系数,但是当Quantiphi使用一种名称为SqueezeNet的新方式取得突破后,模型大小显著减小。

SqueezeNet模型由加州大学伯克利分校和斯坦福大学的一组研究人员于 2016 年 11 月发布。它采用小型但高度复杂的设计,根据 Imagenet等热门基准的数据,它可以实现与大得多的模型相当的准确率水平。

在重新设计我们的字符识别模型架构以使用SqueezeNet卷积神经网络后,Quantiphi将特定介质类型的模型大小减小了100系数。

由于SqueezeNet模型本质上就比较小,可以构建更丰富的功能检测架构,凭借比我们第一批并非使用SqueezeNet训练的模型显著减小的大小实现明显提高的准确率。

我们现在拥有一个可以在远程设备上轻松更新的高度准确模型;我们在主动学习之前的最终模型的识别成功率接近96%,可以带来 99.7%的字符识别准确率(每1000个字符预测中仅有3个出错)。

(图片说明:具有不同类型遮挡、平移和照相机焦点问题的有效产品编码识别示例)

▍通过 AI 跨越边界

人工智能的发展和TensorFlow的成熟让我们最终可以实现梦寐以求的购买凭证能力。自从 2017 年 2 月底启动以来,我们的产品编码识别平台已经为十多个促销活动提供帮助并生成了超过18万个扫描代码;它现在已成为可口可乐北美地区所有网络促销活动的核心组件。

迁移到由AI提供支撑的产品编码识别平台对我们非常有价值,两个主要原因包括:

1. 及时实现无缝式购买凭证,与我们向移动优先营销平台的整体转变保持一致。

2. 可口可乐避免了更新生产线中的印刷机以支持更高保真度字体(适合现有的现成OCR软件)的要求,节省了数百万美元的资金。

我们的产品编码识别平台是以AI为支撑的新能力在可口可乐公司内的首次大规模执行。我们目前正在多个业务领域探索AI应用,从产品开发到电子商务零售优化,不一而足。

作者 | Patrick Brandt

▍数据侠门派

本文数据侠Patrick Brandt,可口可乐公司架构师、产品开发者。毕业于佛罗里达州立大学。

▍加入数据侠

本文来自企鹅号 - DT数据侠媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏量子位

“深度学习已死,可微编程万岁!”LeCun老师为何又语出惊人?

夏乙 编译整理 量子位 出品 | 公众号 QbitAI ? Deep Learning est mort. Vive Differentiable Progra...

3425
来自专栏数据派THU

吴恩达新书《Machine Learning Yearning》中7个实用建议(附论文)

《Machine Learning Yearning》是人工智能和深度学习界的专家吴恩达写的一本书,这本书致力于讲明白机器学习算法是怎样工作的,以及如何构建一个...

1294
来自专栏鸿的学习笔记

The Quora Topic Network(下)

为我们的网络确定的最简单的度量之一是每个节点的indegree。这只是指向节点的链接的权重的总和。在我们的例子中,这对应于我们在上一节中定义的入站链路权重的总和...

921
来自专栏机器之心

哪款安卓手机适合跑AI?移动端芯片性能评测论文出炉

论文:AI Benchmark: Running Deep Neural Networks on Android Smartphones

4254
来自专栏新智元

9大Python深度学习库,选出最适合你的那个

如果你对深度学习和卷积神经网络感兴趣,但是并不知道从哪里开始,也不知道使用哪种库,那么这里就为你提供了许多帮助。 在这篇文章里,我详细解读了9个我最喜欢的Pyt...

3804
来自专栏DT数据侠

看可口可乐如何玩转TensorFlow

随着人工智能的高速发展,开发者们对于能够应对产品多样化挑战的学习框架TensorFlow,也有着很高的热情。除了各类科技产品,零售行业也同样将TensorFlo...

670
来自专栏Vamei实验室

数据可视化的秘密

研究数据的方法有很多,比如利用统计方法,计算数据的平均值和标准差;再比如使用模型,拟合数据。数据通常是大量的,人脑难以直接把握其中的信息。研究数据的最终目的是减...

1857
来自专栏IT派

回顾 | Facebook开源产业级深度学习框架 Caffe2

AI 模型的训练和部署通常与大量数据中心或超级计算机相关联,原因很简单。从大规模的图像、视频、文本和语音等各种信息中持续处理、创建和改进模型的能力不是小型计算擅...

3967
来自专栏QQ会员技术团队的专栏

人人都可以做深度学习应用:入门篇(上)

如果这一轮AI浪潮真的会带来新的一轮科技革命,那么我们相信,它也会遵循类似的发展轨迹,逐步发展和走向普及。如果基于这个理解,或许,我们可以通过积极学习,争取成为...

9K6
来自专栏数说工作室

手机里跑个 AI 模型 | 谷歌 Federated Learning 联盟学习

各位数据大咖,还记得自己的跑模型的心路历程么?我想大家都在经历着下面的一个或多个阶段: 论文答辩前夕,把自己敲进去的三千多条数据放进SAS中,哗的一下模型出来了...

4536

扫码关注云+社区

领取腾讯云代金券