當前位置:
首頁 > 知識 > 當機器學習遇上運動鞋:摩擦,在這光滑的地上摩擦

當機器學習遇上運動鞋:摩擦,在這光滑的地上摩擦

本文為 AI 研習社編譯的技術博客,原標題 How GOAT Taught a Machine to Love Sneakers,作者為 Emmanuel Fuentes。

翻譯 | Lamaric 校對 | 餘杭 整理 | MY


任務

在 GOAT(https://www.goat.com/),我們為買家和賣家創造了一個最大的運動鞋安全交易市場。幫助人們表達他們個人的風格和定位的運動鞋世界是 GOAT 的數據團隊的主要動力。數據團隊構建一系列工具和服務,利用數據科學和機器學習,儘可能減少該社區可能出現的問題。

當我加入 GOAT 時,我並不是一個運動鞋狂熱愛好者。每天在處理新款運動鞋的同時,我更傾向於使每一個都有獨一無二的視覺特徵。我開始疑惑那些剛接觸這種文化的人會以何種方式進入這個領域。我覺得,無論你對於運動鞋的審美水平如何,我們都可以傳達他們的視覺吸引力。受我的經驗啟發,我決定構建一個工具,希望其他人會覺得它有用。

首先要開發一種用於描述所有運動鞋的通用語言。但是,這不是一項簡單的任務。我們的產品目錄中有超過 30,000 款運動鞋(並且數量正在增長),其中每款鞋獨特的樣式、輪廓、材料、顏色等都包含於整個目錄,變得棘手。此外,每一款鞋子的版本都有可能改變我們談論運動鞋的方式,這意味著我們必須更新它們的通用語言。因此我們需要通過從一開始就將它們包含在我們的語言中來接受變化和創新,而不是試圖與現實作鬥爭。

解決方法之一是使用機器學習。為了跟上不斷變化的運動鞋外觀,我們使用可以找到對象之間關係的模型,而無需明確說明要查找的內容。在實踐中,這些模型傾向於學習與人類相似的特徵。我將在這篇文章中詳細介紹我們如何使用這種技術構建視覺屬性作為我們常見運動鞋語言的基礎。

潛在變數模型

在 GOAT,我們使用人工神經網路(https://en.wikipedia.org/wiki/Artificial_neural_network)來近似我們的產品目錄中最具說服力的視覺特徵,即潛在的變異因素。在機器學習中,這屬於流形學習的範疇。流形學習背後的假設通常是數據分布,例如:運動鞋的圖像可以在局部類似於歐幾里德空間的較低維度表示中表達,同時保留大部分有用信息。結果是將數百萬個圖像像素轉換為可解釋的細微差別特徵,並將其封裝為少量數字的列表。


流形是什麼?

想想你如何告訴你的朋友你家的路線。你永遠不會描述如何通過一系列原始 GPS 坐標從他們的房子到你的房子。在這個比喻中,GPS 表示高維,寬域隨機變數。相反,你很可能會以一系列街道名稱的形式來使用這些坐標的近似值,並加上轉向方向,即我們的流形,來編碼它們的驅動器。


建立模型

我們利用無監督模型,如變分自動編碼器(VAE),生成性對抗網路(GAN)和 Wasserstein 自動編碼器(WAE)來學習這種流形,且無需代價高昂的實體標籤。這些模型為我們提供了一種方法,可以將我們的主要運動鞋照片轉換為美學上的潛在因素,也可稱之為嵌入。

在許多情況下,這些模型利用某種形式的自動編碼器框架來推斷潛在空間。模型的編碼器將圖像分解為其潛在向量,然後通過模型的解碼器重建圖像。在此過程後,我們測試模型重建輸入的能力並計算其不正確性,即損失。該模型使用損失值迭代地壓縮和解壓縮更多圖像,作為提高精度的信號。重建任務即為推動這個 bowtie looking 模型來學習對任務最有幫助的嵌入。與其他降維技術(如 PCA)類似,此技術通常會導致對數據集中的可變性部分進行編碼。

原型自動編碼器

陷阱和設計的選擇

僅僅能夠重建圖像通常是不夠的。傳統的自動編碼器最終成泛化能力較弱的數據集 查找表。這是由於在樣本之間的空間中具有 chasms/cliffs 的學習不佳的流形的結果。現在的模型正以各種方式解決這個問題。例如著名的 VAE,為損失函數添加了一個發散正則化項,以便將潛在空間約束到一些理論上的支持。更具體地說,這些類型的模型中的大多數懲罰與一些高斯或均勻先驗不匹配的潛在空間,並試圖通過選擇發散度量來近似差異。在很多情況下,選擇合適的模型可歸結為發散測量,重建誤差函數和強加先驗的設計選擇。設計選擇的這些例子是 β-VAE 和 Wasserstein 自動編碼器,它們分別利用了 Kullback-Leibler 發散和對抗性損失。根據您學習嵌入的用例,您可能會偏愛另一個,因為通常需要在輸出質量和多樣性之間進行權衡。

β-VAE 損失函數,重建和加權散度

對於我們的視覺運動鞋語言的美學運動鞋嵌入,我們更喜歡潛在因素,鼓勵強大和多樣化的潛在空間覆蓋我們的大部分產品目錄。換句話說,我們希望能夠代表最廣泛的運動鞋,而不是像 JS Wings 那樣獨特的風格。


偽案例研究

我們訓練了一個 VAE 來學習我們的主要產品照片的潛在空間。固定潛在向量,我們可以看到模型是如何隨著時間的推移進行訓練,以類似人類的方式構建複雜性和抽象層。

通過解碼器生成的照片,每個圖像都是一個在訓練時期逐漸增加的固定潛在向量

該模型傾向於在每個維度中創建更多獨立的人類可解釋因子,稱為解構。首先,該模型著重於重新創建最合適的輪廓,同時注意鞋底和鞋面之間的對比。從那裡開始,它構建了整個輪廓的灰度漸變概念,直到它開始學習基本顏色。在了解輪廓類型後,例如啟動與運動,高與低後,網路開始解決更複雜的設計模式和顏色,這將是最終的差異化因素。

為了展示學習過的流形並檢查學習曲面的平滑度,我們可以通過插值進一步可視化。我們選擇兩個看似不同的運動鞋作為錨點,然後在潛在的空間中判斷它們之間的過渡。沿插值的每個潛在向量被解碼回圖像空間以進行視覺上的檢查,並與我們整個目錄中最接近的實際產品相匹配。下面的動畫說明了這些概念以映射模型怎樣學習。

錨點運動鞋之間的插值和匹配

進一步探索潛在空間,我們使用單個運動鞋,並在每個方向一次修改一個因素,以觀察它是如何變化的。表示中間到引導的因素和唯一的顏色只是網路學習的一些視覺上可感知的特徵。根據模型,潛在因素的數量和它們彼此的獨立性會有所不同。這種解構屬性是我們研究的一個活躍領域,我們希望能夠改進我們的嵌入。

潛在因素的探索,每一行使用相同的目標運動鞋改變一個因素,每列是修改量的重建潛在向量,先前是標準正態分布。

此外,我們可以在尺寸縮小的 2D / 3D 圖中查看潛在向量的整個產品目錄,以找到它們的宏觀趨勢。我們使用諸如 t-SNE 之類的工具將我們的潛在空間映射到用於檢查和批量注釋的可視化界面。

t-SNE 潛在空間探索

從邏輯上講,如果每個運動鞋只是潛在因素的集合,則可以相對於彼此相加或相減這些因子。這是一個將兩個運動鞋加在一起的例子。注意結果是如何保持第一個運動鞋的寬踝環和品牌標識,且唯一的整體輪廓和材料屬於第二個。

運動鞋潛在空間演算法


小貼士

嵌入是創建可重用價值的絕佳工具,其固有屬性類似於人類解釋對象的方式。它們可以消除對變化變數的持續目錄維護和歸因的需要,並且適用於各種各樣的應用程序。通過利用嵌入,可以找到群集來執行批量注釋,計算推薦和搜索的最近鄰居,執行缺失的數據插補,以及重用網路以熱啟動其他機器學習問題。


參考文獻

Auto-Encoding Variational Bayes

β -VAE: Learning Basic Visual Concepts with a Constrained Variational Framework

Understanding disentangling in β-VAE

Wasserstein Auto-Encoders

Visualizing Data using t-SNE

Sampling Generative Networks

Generative Adversarial Networks


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 AI研習社 的精彩文章:

瀏覽器中的姿態檢測:PoseNet 模型
損失函數的不同會對神經網路帶來什麼影響?

TAG:AI研習社 |