睡不着的iris、小七、云舟编译

七张照片鉴别真假AJ?这家公司想教机器认识潮鞋

潮鞋交易正成为一门潜力巨大的生意,而这门生意的关键,是识别真伪。

一家名为GOAT的潮鞋交易平台正尝试用机器学习,从七张照片中识别出一双鞋子是否是真的。

每双鞋的卖家会向平台发送七张标准照片:从鞋子的不同角度拍摄标准化照片,即鞋跟,鞋底和侧面,然后进行处理。

GOAT将基于这些图片使用机器学习验证它们是否真实,并将它们与真实和假冒版本的图像数据库进行比较。

一旦上市,买家就会对鞋子出价,类似于eBay。

这家主打小众市场的交易平台希望“为买家和卖家提供最大的、安全的潮鞋交换市场”,建立和完善认证流程,以打击在线运动鞋市场的欺诈行为。

成立3年以来,该应用程序目前已经拥有700万用户,囊括超过400,000个潮鞋品牌,包括Yeezy Boosts,Nike Air Max's和Chanel X Pharrell等。

“这是图像识别与机器学习的结合,因为我们每天都会在工作中获得如此多的相同类型的鞋子,”GOAT创始人表示。

大量的用户积累也让GOAT构建了一个真实潮鞋模型的数据库。这一高质量的“潮鞋图像”数据库成为了GOAT的巨大宝藏。

除了辨别真伪,GOAT数据团队的首要任务是给这些风格迥异的潮鞋归类,进而引导用户在这个app上展示自己独特的风格,引导潮鞋潮流。

这不是一项简单的任务。GOAT的产品目录中由超过30,000双的潮鞋(并且还在不断增长),它们都有独特的风格、轮廓、材质、颜色等,手动将整个产品目录归类是个棘手的问题。

另外每有鞋上新都可能改变谈论潮鞋的方式,这意味着GOAT需要对这一归类方式时有更新。

解决这个问题的一个方法是应用机器学习。为了跟上不断变化的潮鞋市场,GOAT使用可以找到对象之间的关系的模型,而无需明确指出我们要找的是什么。在实践中,这些模型像人一样去学习特征。

在本篇文章中,GOAT的一位机器学习工程师Emmanuel Fuentes

详细介绍了GOAT如何使用机器学习构建视觉属性作为通用潮鞋语言的基础。

隐变量模型

我们在GOAT使用人工神经网络近似估算产品目录中最明显的视觉特性,即隐变异因子(latent factors of variation)。机器学习中,这属于流形学习(manifold learning)的范畴。

流形学习是基于假设数据分布(例如潮鞋的图像)通常可以在局部欧式空间表示成较低纬特征,同时保留了大部分的有用信息。结果将成千上万的图像像素转换成可解释的具有细微差别的特征,并压缩成一些数字的列表。

流形是什么?

想象下你如何告诉你朋友去你家的路线。你永远不会用一系列原生GPS坐标来描述如何从他们家里到你家。在这个比喻里面中,GPS代表的是高纬度、宽域随机变量。相反,你可能会以一系列的街道名称和转向作为坐标的近似值指导他们驾驶,这就是我们的流形(manifold)。

建模

由于没有昂贵的基础真值标签,我们使用诸如变分自编码器(VAE)、生成对抗网络(GAN)以及各种混合的非监督学习模型来学习流形。模型将主要的潮鞋照片转换为审美的隐因子,这也被称为嵌入(embeddings)。

许多情况下,这些模型利用某种形式或形状的自动编码框架来推断隐空间(latent space)。模型的编码器将图像分解成隐向量,然后通过解码器重构图像。遵循这个步骤,我们会衡量模型重构输入和计算正确性的能力,称为损失。模型利用损失作为改进标准,不断迭代压缩和解压缩越来越多的图像。重构任务推动“领结长相”模型来学习对任务最有用的嵌入。与主成分分析(PCA)等其他降维技术类似,这项技术用来对数据集的变异性进行编码。原型自动编码器

注意事项和设计选型

仅仅能重构图像通常是不够的。传统自动编码器可以将数据集转换成规整的查询表,但泛化能力较弱。这会导致学习得到的流形不佳,样本间呈现“裂缝”或“悬崖”状的空间。现代模型通过各种方式解决这个问题。

有些,例如著名的变分自编码模型(VAE),为损失函数增加一个散度归一化项,将隐空间约束至一些理论支持。更详细地说,这类模型大部分惩罚与某种高斯分布或均匀分布的先验分布不匹配的隐空间,并通过选取散度指标来估算误差。

在很多情况下,选取合适的模型取决于散度测量、重构误差函数和施加先验的设计选型。例如,β-VAE和Wasserstein自动编码模型分别利用KL散度(又称相对熵,Kullback-Leibler divergence)和对抗损失。通常需要在输出质量和多样性之间进行权衡,根据你学习的嵌入用例,你会更偏爱某一种设计选型。

β-VAE损失函数重构权重散度项

当潮鞋的审美编码成我们视觉潮鞋语言,我们更希望得到一个健壮和多样化的隐因子空间,足以覆盖我们大部分的产品目录。换言之,我们希望模型可以最大范围地表示潮鞋,而非牺牲代价去表示JS Wings那样独特的款式。

“看起来像”案例

我们训练一个VAE去学习主要产品照片的隐空间。保持隐向量固定,我们直观看到模型如何一步步训练,构建复杂和抽象的层。

通过解码器生成照片,在逐步增加的训练迭代时,每张图像是一个固定的隐向量

该模型倾向于在每个维度创建更多独立的人类可解释因子,这称之为解纠缠(disentanglement)。首先,模型着重对比鞋底和鞋面差别来重新构建最合适的轮廓。然后,重构整个轮廓的灰色梯度,再开始学习基础颜色。在了解了轮廓类型之后,例如,靴子还是潮鞋,高帮还是低帮,网络开始处理复杂的设计款式和颜色,这些都是最终的差异性因素。

为了展示学习后的流形并检查学习曲面的“平滑度”,我们通过插值法进一步可视化。选择看似不同的潮鞋作为锚点(anchors),然后判断它们在隐空间中的过渡。每个隐向量的插值被解码成图像空间的视觉检验,并与整个目录里最接近的实际产品相匹配。动图说明了映射学习特征的概念。

锚定球鞋之间的插值

为了进一步探索隐空间,我们使用单双潮鞋,每次在每个方向修改一个隐因子,观察它是如何变化的。因子表示“中帮“或“靴子”的属性和鞋底颜色只是网络学习到的一小部分可感知的视觉特征。不同模型的隐因子数量和彼此间独立性各有差异。解纠缠的特性是我们研究的一个活跃领域,期望借此改善模型的嵌入。

隐因子探索,每行使用相同的锚定潮鞋,每列是重构的隐向量的修正值,先验是标准正太分布

此外,我们可以通过将隐含向量压缩成2D或3D图来查看整个产品目录的大趋势。我们使用诸如t-SNE这类工具来映射隐空间,可视化点抽样和大规模标注。

t-SNE隐空间探索

逻辑上讲,如果每双潮鞋只是隐因子的集合,那么这些因子之间是可以相加或相减的。举个例子将两双球鞋相加在一起。注意看结果如何保留第一双潮鞋的宽踝环设计和品牌标志,同时保留第二双潮鞋的鞋底、整体轮廓和材质。

潮鞋图像隐空间算法

小贴士

嵌入是创建可重用值的绝佳工具,其固有的属性与人类理解物体的方式相似。它们可以免去持续维护目录和依据变化改变归类的工作,并且嵌入的隐因子能被广泛应用。利用嵌入,你可以找到集群来执行批量标注、计算推荐和搜索的最相邻近、缺失数据插补以及重用网络以热启动其他机器学习问题。

大数据文摘
大数据文摘

秉承“普及数据思维,传播数据文化,助⼒产业发展”的企业⽂化,我们专注于数据领域的资讯、案例、技术,形成了“媒体+教育+⼈才服务”的良性⽣态,致⼒于打造精准数据科学社区。

产业机器学习
2
相关数据
自动编码器技术

自动编码器是用于无监督学习高效编码的人工神经网络。 自动编码器的目的是学习一组数据的表示(编码),通常用于降维。 最近,自动编码器已经越来越广泛地用于生成模型的训练。

非监督学习技术

非监督式学习是一种机器学习的方式,并不需要人力来输入标签。它是监督式学习和强化学习等策略之外的一种选择。在监督式学习中,典型的任务是分类和回归分析,且需要使用到人工预先准备好的范例(base)。一个常见的非监督式学习是数据聚类。在人工神经网络中,自组织映射(SOM)和适应性共振理论(ART)则是最常用的非监督式学习。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

感知技术

知觉或感知是外界刺激作用于感官时,脑对外界的整体的看法和理解,为我们对外界的感官信息进行组织和解释。在认知科学中,也可看作一组程序,包括获取信息、理解信息、筛选信息、组织信息。与感觉不同,知觉反映的是由对象的各样属性及关系构成的整体。

高斯分布技术

正态分布是一个非常常见的连续概率分布。由于中心极限定理(Central Limit Theorem)的广泛应用,正态分布在统计学上非常重要。中心极限定理表明,由一组独立同分布,并且具有有限的数学期望和方差的随机变量X1,X2,X3,...Xn构成的平均随机变量Y近似的服从正态分布当n趋近于无穷。另外众多物理计量是由许多独立随机过程的和构成,因而往往也具有正态分布。

重构技术

代码重构(英语:Code refactoring)指对软件代码做任何更动以增加可读性或者简化结构而不影响输出结果。 软件重构需要借助工具完成,重构工具能够修改代码同时修改所有引用该代码的地方。在极限编程的方法学中,重构需要单元测试来支持。

变分自编码器技术

变分自编码器可用于对先验数据分布进行建模。从名字上就可以看出,它包括两部分:编码器和解码器。编码器将数据分布的高级特征映射到数据的低级表征,低级表征叫作本征向量(latent vector)。解码器吸收数据的低级表征,然后输出同样数据的高级表征。变分编码器是自动编码器的升级版本,其结构跟自动编码器是类似的,也由编码器和解码器构成。在自动编码器中,需要输入一张图片,然后将一张图片编码之后得到一个隐含向量,这比原始方法的随机取一个随机噪声更好,因为这包含着原图片的信息,然后隐含向量解码得到与原图片对应的照片。但是这样其实并不能任意生成图片,因为没有办法自己去构造隐藏向量,所以它需要通过一张图片输入编码才知道得到的隐含向量是什么,这时就可以通过变分自动编码器来解决这个问题。解决办法就是在编码过程给它增加一些限制,迫使其生成的隐含向量能够粗略的遵循一个标准正态分布,这就是其与一般的自动编码器最大的不同。这样生成一张新图片就比较容易,只需要给它一个标准正态分布的随机隐含向量,这样通过解码器就能够生成想要的图片,而不需要给它一张原始图片先编码。

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

逻辑技术

人工智能领域用逻辑来理解智能推理问题;它可以提供用于分析编程语言的技术,也可用作分析、表征知识或编程的工具。目前人们常用的逻辑分支有命题逻辑(Propositional Logic )以及一阶逻辑(FOL)等谓词逻辑。

t分布随机邻嵌入技术

t分布随机邻嵌入(t-SNE)是由Geoffrey Hinton和Laurens van der Maaten 开发的一种降维的机器学习算法。 这是一种非线性降维技术,特别适合将高维数据嵌入到二维或三维空间,然后可以在散点图中将其可视化。 具体来说,它通过二维或三维点对每个高维对象进行建模,使得类似的对象由附近的点建模,不相似的对象由远点建模。

流形学习技术

流形学习(manifold learning)是机器学习、模式识别中的一种方法,在维数约简方面具有广泛的应用。它的主要思想是将高维的数据映射到低维,使该低维的数据能够反映原高维数据的某些本质结构特征。流形学习的前提是有一种假设,即某些高维数据,实际是一种低维的流形结构嵌入在高维空间中。流形学习的目的是将其映射回低维空间中,揭示其本质。

降维技术

降维算法是将 p+1 个系数的问题简化为 M+1 个系数的问题,其中 M<p。算法执行包括计算变量的 M 个不同线性组合或投射(projection)。然后这 M 个投射作为预测器通过最小二乘法拟合一个线性回归模型。两个主要的方法是主成分回归(principal component regression)和偏最小二乘法(partial least squares)。

查询技术

一般来说,查询是询问的一种形式。它在不同的学科里涵义有所不同。在信息检索领域,查询指的是数据库和信息系统对信息检索的精确要求

主成分分析技术

在多元统计分析中,主成分分析(Principal components analysis,PCA)是一种分析、简化数据集的技术。主成分分析经常用于减少数据集的维数,同时保持数据集中的对方差贡献最大的特征。这是通过保留低阶主成分,忽略高阶主成分做到的。这样低阶成分往往能够保留住数据的最重要方面。但是,这也不是一定的,要视具体应用而定。由于主成分分析依赖所给数据,所以数据的准确性对分析结果影响很大。

生成对抗网络技术

生成对抗网络是一种无监督学习方法,是一种通过用对抗网络来训练生成模型的架构。它由两个网络组成:用来拟合数据分布的生成网络G,和用来判断输入是否“真实”的判别网络D。在训练过程中,生成网络-G通过接受一个随机的噪声来尽量模仿训练集中的真实图片去“欺骗”D,而D则尽可能的分辨真实数据和生成网络的输出,从而形成两个网络的博弈过程。理想的情况下,博弈的结果会得到一个可以“以假乱真”的生成模型。

暂无评论
暂无评论~