如何讓機器向「時尚達人」學習?阿里做了個「實用」的圖像數據集

如何讓機器向“時尚達人”學習?阿里做了個“實用”的圖像數據集

阿里妹導讀:阿里資深算法專家雷音帶領的團隊,有個非常特別的名字,叫做“圖像與美”。雷音希望,未來AI產品對衣服的理解不只限於照片和文字,還可以理解衣服本身,進而理解時尚穿搭之道、理解流行風向。

當AI遇見時尚,會擦出什麼火花?一起來看看雷音的分享。

引言

近年來AI受到各界關注,公司、政府及民眾對於AI落地都充滿期待。在媒體的描述中,各種AI落地的場景呼之欲出。不過在我們看來,目前AI算法在很多數據集上的成功多是學術意義上的,距離商業落地還有一段較長的路要走。如今眾多科研人員從學術界走向工業界,大量在校學生投入AI領域。當前正是時候和大家探討AI落地中的數據挑戰。本文的目的在於分享經驗與同行探討。

我們在阿里巴巴圖像和美團隊探索將AI用於時尚領域,已經有七個年頭。我們希望開發的AI產品對衣服的理解不只限於照片和文字,而是可以理解衣服本身,進而理解時尚穿搭之道、理解流行風向;我們希望這樣的理解可以作用在阿里巴巴數以億計的商品上,從而影響大眾、改變行業。

讓AI懂得時尚,且不說商業落地,僅從技術上聽起來,就有點天方夜譚:時尚是如此主觀,人都很難理解,何況機器?其實,做時尚AI的魅力也就在此——“如何客觀地看待主觀世界”——需要我們把嚴謹的科研態度和行業洞察力、想象力結合在一起,才能為機器打造一顆“時尚之心”。

讓機器理解衣服,核心是製作服飾圖像數據集。我們在本文分享“時尚之心”項目中最基礎也最有挑戰的部分:如何製作一個“實用”的圖像數據集?這裡的“實用”指的是能夠達到商業落地的程度。構建一個圖像數據集,即是在一定的“用途”目的下,將“知識”與“圖像”做關聯,並給出評價算法的“指標”。

文章結構也是按照以上四個關鍵詞來組織的:文章第一部分是對“用途”的探討,第二、三、四部分圍繞著“知識”、“數據”和“指標”來展開,最後是總結。

一、探究數據的“用途”

十幾年前我讀研究生時,方向是機器人。有朋友問起:“你做的機器人是幹什麼用的?”我一時語塞,還有點氣憤。那時我做機器人,硬件從零做起,用於研究探路算法、發表學術論文。零基礎、缺經費、加上學生的目標是純粹做研究,我壓根沒想過自己的機器人真能派什麼用。做學問嘛,怎麼能圖“有用”呢?

一方面覺得被拷問“用途”是受辱,一方面又覺得朋友問得對。後來我常拿“做什麼用”來問自己,提醒自己這個世界另有期待。畢業後我從事計算機視覺的工作。做圖像算法比研究機器人探路更接近現實應用。要讓算法走向實用,首先要讓數據集走向實用。圖像數據集在計算機視覺研究中的的作用,好比實驗對象在科研工作中的作用。實驗對象的採製是否嚴謹合理、距離實際有多遠,直接決定了科研成果是否可靠、是否能用於實際。可以說,實驗對象在相當程度上決定了科研活動的水平。

計算機視覺發展的時間還不長,人們像呵護孩子一樣,鼓勵新想法、包容不完美。過去學術界對圖像數據集的要求實際是比較低的,數據量大一些大家就滿意了。如果按一個成熟的科研方向來要求的話,過去二十年業界所出現的數據集,遠不能讓人滿意。絕大部分數據集,內在結構鬆散,外在用途不明,距離指導算法落地還比較遠。

在過去的幾年,深度學習的興起使得計算機視覺的工具有了長足進步。隨著媒體熱炒、資本湧入、政府重視,人們對於AI落地有了熱切的期望。AI算法要落地實用,首先是要數據集能達到落地實用。目前學術界的論文和競賽所依賴的數據集,距離其所宣稱的作用和意義相去甚遠。這點也是業界心照不宣的共識。

中國古代用“性、相、用”來分析一個事物,即通過“性質、顯現、用途”來認識一個事物。套用在數據集上:“性”是製作數據集的方法和原則,“相”是數據集的具體內容,“用”是數據集的用途。

在過去,論文往往著重介紹數據集的“性”和“相”,即製作方法和具體內容,而對數據集的“用”描述過於簡略。也難怪,過去的數據集基本用來驗證方法本身(如分類方法、檢測方法),是從學者的視角出發,而不是從實際問題出發。業界衡量一個數據集是否成功,往往只用被引用次數、影響力大小,而忽略數據集的內在邏輯結構和外在實用價值,有點像自說自話。

我們關心AI算法的落地,就必須關心數據集的用途。圖像中的內容,可分為兩大類:“自然的”和“人造的”。自然的如風景、動物,人造的如汽車、文字。內容為自然事物的圖像,例如人臉照片,是證件照還是監控攝像頭拍照,差異巨大,這是由其使用場景——用途——直接決定的。而對於人造事物,“用途”的重要性更甚:事物的形態往往是其功能的體現,人們是通過“用途”去認識這類東西的。

2017年我去UCLA拜訪朱松純老師時,聊起當年蓮花山項目在圖像標註上遇到的困難。朱老師舉例說,比如標註“杯子”,杯子形態各異、難以窮舉,甚至聚攏手掌也可以是杯子:人是通過“盛水”這一功能去認識杯子的,而不是具體形象——“用途”先於“表相”;而同一個杯子,也可以有不同用途,在使用者眼中有不同的理解方式。 因此標註再多圖像,識別效果也未必好。稱“用途”,是從工具角度來看;從使用者的角度來看,則稱為“任務”。人總是在一定任務背景下去理解事物、操作工具。用途和任務,屬於人的認知領域,這啟發他,要解決視覺問題,先要去研究綜合各種感官、心理、記憶在一起的認知問題。

可見,強調“用”不僅是出於實用價值,也是加深對研究對象的理解的內在需要。在製作數據集的過程中,“用途”作為製作者做取捨的依據,其作用會體現在各個環節、不同層面上。接下來我們首先看到的,就是重視“用途”對於數據集中“知識”的影響。

二、梳理專業的“知識”

2.1忽視專業知識,無法做出有用的數據集

我們把一個特定場景下的經驗和規則,稱為專業知識。製作一個實用的圖像數據集,即是將特定場景下的知識與該場景下的圖像做關聯。如同製作一個工具,製作人員事先對於工具的典型使用場景必須有所瞭解,設計上有對該場景的考慮。如果缺乏特定場景的經驗,數據集就無法指導實踐。

例如,LFW Face Database[1]是一個知名的數據集,包括13000張標註好的人臉圖像。作者的目的是製作一個“非限制條件下”的數據集,用來評價模型的人臉識別能力。實際上,這批圖像主要是採集自網絡的歐美名人的正面照片,與攝像頭監控、證件識別等實際場景中的照片相去甚遠。很多技術團隊在此數據集上做激烈的競爭,但這些數字指標對於揭示他們的模型是否能在實際場景中發揮作用,並無太大的參考價值。要評價模型在實際場景中的能力,需要使用特定場景的數據和知識。

有的製作者雖然使用了特定領域的數據,但缺乏專業人士的指導,只是沿用學術界慣有的方法,想當然地把一些專有名詞與圖像做了關聯。這樣製作出的數據集可能與實際情況有很大偏差。

例如,ChestX-ray8[2]是2017年發佈的一個胸部X光數據集。製作者使用自然語言處理的一些手段對X光圖像的報告單進行了文本挖掘,得到一系列疾病標籤,把這些標籤和對應的圖像關聯起來。專業人士LukeOakden-Rayner醫生[3]指出:部分疾病標籤並非通過觀察醫療影像得出的,而是結合其他診斷信息綜合得出的……實際上(報告單的內容是),觀察影像的醫生在通過影像回答另一位醫生的問題,對同一張圖像的不同提問,可能有不同、甚至相反的回答。因此,疾病標籤和圖像的關聯很可能不符合實際情況。當然,數據集的製作者也充分認識到了這個侷限性。他們基於900張報告單做了一個專家對比實驗,實驗表明文本挖掘得到的疾病標籤準確率遠未達到100%。

再舉一例。DeepFashion[4]是2016年發佈的一個服飾圖像數據集,包括了超過80萬張時裝照片,被歸到50個類別裡。這50個類別標籤來自制作者從兩個服飾網站的查詢詞中抽取的名詞,這些標籤被聲明是互斥的,但實際情況並非如此。例如毛衣(Sweater)和龜領(Turtleneck)這兩個標籤,毛衣屬於“材質”的範疇,而龜領屬於“領子設計”的範疇,兩個標籤在概念上並非平行對等,不能並列作為服飾的兩個類別。如圖1,“龜領”類別的衣服,同時也是“毛衣”。這類錯誤在DeepFashion數據集中並不少見。

如何讓機器向“時尚達人”學習?阿里做了個“實用”的圖像數據集

圖1.DeepFashion中的“龜領”標籤下服裝

顯而易見,如果用於指導標註的知識沒有被很好的梳理,那麼數據集必然質量不佳,很難期望能產出好的模型;即使模型在評測中表現良好,在實際中使用也會很糟糕。

2.2 原有知識體系往往有侷限

即使能獲取到專門的數據,有專業人士的幫助,數據集製作者在“知識構建”上仍需付出巨大的努力。這是因為,知識的“用途”發生了變化。

一個領域的專業知識,原本只在該領域的專業人士之間流通,是為了人和人的溝通的;而製作數據集的目的是把人的經驗傳遞給機器。直接把原有知識體系照搬到機器學習中來,往往行不通,主要問題就是“不完備”和“二義性”問題。

這裡的“完備”,指的是上層概念所覆蓋的範圍,要能被下層概念完全覆蓋。例如“中國人”可以被“南方人”和“北方人”覆蓋。如果無法完全覆蓋則稱為“不完備”。這裡的“二義性”,指的是同層級的兩個概念,覆蓋的範圍有一定的重合,例如會有一部分“中國人”歸屬到“南方人”或“北方人”都說得通,是模稜兩可的。專業知識往往來自於人的日常經驗,天然具有一定的不完備和二義性。例如醫療影像中的疾病種類,是無法完全枚舉的。

人去處理溝通中的“不完備”和“二義性”,問題不大,因為人既有生活常識、也經過一定的背景訓練,可以根據經驗來糾錯。而機器不行,機器就如同白紙一張的嬰幼兒,接收到的往往只有標註數據,告訴他什麼就是什麼,辨別能力或者說容錯能力非常低。當然我們可以像訓練嬰幼兒一樣,用多種數據訓練一個有一定推理糾錯能力的模型,這屬於探索性的嘗試,對於當下絕大部分的商業應用來說並不現實。因此,有必要對原有知識體系做出修正,減少不完備性和二義性,以適應機器當下的學習能力。

若觀察原有知識體系,可以看出它們多是從一個個實例出發、自底向上構建的,因此難以避免不完備和二義性的缺陷。如果換個方式,一開始就注意避免不完備和二義性,自頂向下構建知識體系,這可行嗎?答案是否定的。我們雖然可以從邏輯上規避二義性,但實際層面的二義性一點不少。例如,我們把“商品圖”分為“模特圖”和“非模特圖”,簡單理解,就是有人的圖,和沒有人只有商品的圖。這在邏輯上沒有二義性,但實際情況例如圖2,圖中是穿在腳上的一雙鞋,這算是模特圖還是非模特圖呢?

如何讓機器向“時尚達人”學習?阿里做了個“實用”的圖像數據集

圖2.穿在腳上的一雙鞋

遇到這種情況,需要拆分概念,將“模特圖”拆分為“手模圖、腿模圖、假模圖、半身模特圖、全身模特圖”等等,如圖3所示,而拆分又必然導致不完備:這些分類能窮盡模特圖的所有情況嗎?顯然不能。但為了在實際中讓標註人員容易理解,又不得不拆分。我們只能根據實際情況,做一個權衡。

如何讓機器向“時尚達人”學習?阿里做了個“實用”的圖像數據集

圖3. 依次為:平鋪圖、假模圖、手模圖、腿模圖、全身模特圖

對於“不完備”,還有一類普遍情況,值得重視。如圖4所示,我們要標註裙長,但圖中無法展現裙子的全長,這屬於“無法判別”的情況。

如何讓機器向“時尚達人”學習?阿里做了個“實用”的圖像數據集

圖4. 裙子被截斷的圖片

學術界的通常做法是拋棄這類樣本,數據集裡只保留可以清晰判別的樣本。這種減少二義性的措施可以理解,不過,在實用中,這種例子是不能拋棄的。因為在實際中模型必然會碰到這種不可判別情況,沒有人會為你擋駕,模型需要具備對這類情況“說不”的能力,準確的說,是打上“無法判別”標籤。因此,製作數據集時,我們要保留這部分數據、設立為“無法判別”的分類,這個措施也可看作是為了知識的“完備性”而做的努力。

以上還是專業知識來自單一人群的情況,如果是多類人群對於同一知識點有不同理解,就更復雜了,需要做跨角色的知識重建。

2.3跨越多種角色的知識重建

在實際中,“專業人士”可能並非單一的人群,而是在一件事的不同環節上的多種角色,他們視角不同,使用的知識體系也不同。

例如,服裝的“顏色”屬性,就有“計算機的顏色空間”、“潘通色卡”、“服裝營銷色彩”等不同知識體系。在計算機的顏色空間中,一個點可以代表一種顏色,如在“RGB空間”中,一個(R,G,B)三元組就對應一種顏色,這可被計算機理解,但無法用於日常溝通。“潘通色卡”是國際上通用的紡織、印刷、塑膠、繪圖等領域的色彩標準語言,其中國際紡織服裝的版本包括2310種顏色。這麼細的劃分,很難被消費者理解,服裝商通常會建立一套大眾可以理解的顏色標籤,即“服裝營銷色彩”,粗分有8到10種色系,細分有上百種顏色。以“紅色”為例,如圖5所示。要將算法模型付諸實用,我們就要打通這三套顏色體系、做知識連接。

如何讓機器向“時尚達人”學習?阿里做了個“實用”的圖像數據集

圖5. 紅色在不同顏色體系中的值

以上是簡單的例子,更復雜的例子是服飾的“風格”屬性。在電商服飾的生產流通中,有“生產商”、“電商平臺”、“零售商”三個角色,三者各自有一套“女裝風格”體系:

  • 生產商的風格體系,是設計師和服飾企劃人員用的,用的是工業設計語言,這個體系相對完備和穩定。
  • 電商平臺的風格體系,是平臺運營人員用的,用的是運營語言,用於管理貨品、組織賣場,體系的穩定性介於生產商和零售商之間,是二者的橋樑。
  • 零售商面對消費者,用的是營銷語言,風格體系要根據時尚趨勢和消費熱點而變化,特點是靈活發散,易於消費者理解和聯想。

我們可以通過圖6獲取三者的直觀印象。

如何讓機器向“時尚達人”學習?阿里做了個“實用”的圖像數據集

圖6. 三種角色各自的風格體系

生產商的風格體系,有四個相對獨立的維度,每個維度用代表該維度兩極的詞彙來表示,例如“男性化,女性化”是其中一個維度,其他三個維度是“經典,前衛”、“民族,現代”、“活潑,優雅”,這構成一個四維的設計空間,在服裝企劃人員的眼裡,每件衣服都對應著這個空間中的一個位置。例如圖6中的連衣裙將落在“女性化、現代、前衛、活潑”這個象限裡,服裝企劃人員會給出一個具體的位置。

而在電商平臺風格體系,是由“歐美”、“復古”等12種標籤組成的一個平鋪結構,我們依此訓練了模型,來給任意一件女裝打標。當一件衣服來的時候,模型會判斷衣服與這些標籤的匹配程度,按概率大小取前三名(一件衣服可能兼容多種風格)。例如圖6中的連衣裙被判為“甜美”的概率為79.38%,其次是“田園”和“歐美”。

零售商的風格體系是在日積月累中形成的,主要出於營銷目的。假設最近市場上流行“波西米亞”風,營銷人員就找一部分有相似理念的衣服,打上“波西米亞”的標籤;過一段“小清新”風盛行,就給相似理念的衣服打上“小清新”標籤。這是一種打補丁的標籤積累方式,不太注重標籤之間的內在邏輯。例如圖6中的連衣裙,按營銷知識體系會有“鄉村”、“日系”、“小清新”等標籤。

做一個實用的風格體系,意味著要能貫穿從生產到營銷的全過程,我們要建立一個“層次式”的知識體系,如圖7所示:以穩定的工業設計知識為基底、平臺運營知識為橋樑、大眾營銷知識為上層,用技術將其打通,使得上層的任一概念可以在下層有投影。這樣的體系,對下連接到海量商品,對上承接消費者需求,把以前分散在各個環節的、主觀的、零散的行為,轉化為一件系統性的工作。這是理想化的結構,我們也在探索中。

如何讓機器向“時尚達人”學習?阿里做了個“實用”的圖像數據集

圖7. 層次式的風格體系

綜上所述,要製作一個實用的數據集,需要製作者在專業人士的指導下做知識重建,這是一個需要製作者親力親為、勇於付出的過程,難以討巧、無法迴避。從更大的視角來看,AI落地的過程,實際是一個促使生產的各個環節加強溝通、重建知識體系的過程,是知識從各自的孤島走向整體的過程。這個過程需要所有環節的人一起努力,而當中AI從業者應肩負起主要責任。

三、數據與知識“迭代”

3.1 數據製作的流程

如上一章介紹,知識需要被重建,因為知識的用途發生了變化:從專業人士之間的溝通到人和機器的溝通。同時,知識的載體——數據——也發生了變化:從日常經驗的數據到有組織採集的大量數據。例如,以前服裝陳列師對風格的認識,是經年累月從門店、雜誌的商品中得來的,而今天算法人員會通過搜索引擎定向收集成千上萬的相關圖片,這是服裝陳列師所沒見到過的。

將採集來的大量圖像與知識做關聯,就是圖像數據標註。知識和數據的關係是一體兩面:知識是數據的抽象,數據是知識的載體。這個關係反映在數據集製作過程中,就是:知識會指導數據的採集和標註,而在數據的採集和標註過程中,知識又會被修正,這是一個彼此影響、反覆迭代的過程。這個過程按次序可以大致分為四個步驟:

A. 算法人員和專業人士探討學習,做知識的轉譯和重整。

B. 算法人員根據知識點採集圖像。

C. 標註人員學習標註規則,對圖像做標註。

D. 將標註好的圖像輸入機器,做訓練和評測。

下面按順序介紹每個步驟中的挑戰和應對,我們將看到數據和知識是如何反覆迭代的。

3.2 第一步:知識的轉譯和重整

首先,算法人員要消化專業知識,在專業人士指導下整理出可以標註的規則和圖例解釋。在這個階段,挑戰主要是:如何對知識點做取捨。

以“領型”為例,圓領的“頸線設計”分為四類,如圖8所示。

如何讓機器向“時尚達人”學習?阿里做了個“實用”的圖像數據集

圖8. 四類領線設計

在專業人士眼中,這四類頸線區分很大,但是對算法人員以及標註人員(有時這兩種角色是同一個人)來說,很難把握其間的差別。在實際圖片中,衣服頸線的圓弧形依照深度和寬度的不同有各種形態,我們看過大量圖片也很難選出符合標準定義的樣本。考慮到這四類頸線設計對於衣服的整體設計風格影響不大,我們合併這四類頸線為“圓領”。

又如女裝的“西裝領”,如圖9。

如何讓機器向“時尚達人”學習?阿里做了個“實用”的圖像數據集

圖9. 西裝領的分類

“西裝領”的子類從視覺上難以區分,標註人員即使努力學習,標註準確率也達不到50%。同時9個子類也意味著,投給機器的訓練樣本量要增加9倍,一方面是標註成本會高很多,另一方面知識粒度過細還會導致採集不到足夠多的圖像樣本。由於女裝樣式豐富,視覺刺激點較多,“西裝領”子類的差別不太影響整體效果,我們取消子類的劃分,都歸到“西裝領”。

3.3 第二步:根據知識點來收集圖像

在上一步“確認知識點”的過程中,會先採集少量圖像;當知識點確認後,就進入大規模的圖像採集。由算法人員採集到的大量圖像,將用於第三步的標註。標註好的圖像將用於模型訓練和評測。要讓模型達到識別效果,對每個標籤都需要一個最少的訓練樣本量,例如2000張,這個量同任務和數據都有關係,可以由經驗或實驗來確定。第二步圖像採集的主要挑戰是:樣本稀缺,即某個標籤下的圖像過少。

圖10是我們的採集流程。以“深V領”為例,我們用初始查詢詞“深V領”搜索圖片,再由人工篩選出符合標籤描述的圖像,即“深V領的衣服圖片”。如果經人工篩選後,樣本充足,就完成“深V領”的採樣。如果樣本不足,就使用同義詞、近義詞如“低V領”、“大V領”、“雞心領”,繼續搜索,直到樣本充足,或者始終仍無法獲取足夠多的樣本。

如何讓機器向“時尚達人”學習?阿里做了個“實用”的圖像數據集

圖10. 數據採集流程

在無法獲取足夠多樣本的情況中,有一類是由於標籤用語過於專業,不會出現在在圖片的日常描述中,對這種情況我們使用“類似描述”來擴充查詢詞。例如“鼓肩袖”是一個專業術語,在圖片描述中很少見,我們會用“肩部摺疊”、“袖子褶皺”、“肩部褶皺”、“肩部蓬鬆”等來發起查詢。

如果始終採不到足夠多的樣本,可以考慮知識點合併或拋棄。例如,淘寶後臺的風格標籤中曾有“宮廷風”一項,在實際中“宮廷風”的衣服極少;又如在設計師語言中,袖型有“鬱金香袖”一項,實際商品過少,對這些情況我們都做了拋棄。這即是對知識體系的略微修正。

如果某標籤很重要,但專家認為不能拋棄,比如某些前瞻性的設計要素,我們還可以為該標籤做“懸賞”:在眾包平臺發佈付費任務,由大眾來收集圖像。使用眾包平臺來完成數據標註和採集任務,近年來發展迅速,已逐步進入實用。

當引入各種手段來獲取數據時,要警惕一種情況:結構化噪聲。

什麼是“結構化噪聲”呢?要從數據採集說起。數據採集都是“有組織”的獲取數據,從信息論來說,“有組織”意味著系統性的引入了新的信號,這種信號可能是噪聲。例如某些網站的每張圖片都有該網站的Logo,網站Logo對於數據集就是一種“結構化噪聲”——稱其為“噪聲”,是因為這類信號與想要的知識無關;稱其“結構化”,是因為噪聲信號是由採樣方式引入的,是一種帶有結構的系統化引入。將帶有結構化噪聲的數據投給機器,模型會學到錯誤的相關性,是我們要努力避免的。

例如,斯坦福大學的Novoa博士討論過一個“腫瘤”和“尺子”的例子[5],當皮膚科醫生在懷疑一種病變是腫瘤時,會藉助尺子來準確的測量大小,尺子會留在照片裡,見圖11;模型會學習到“尺子”和“腫瘤”具有相關性,而這種相關性在實際情況中顯然是不存在的。

如何讓機器向“時尚達人”學習?阿里做了個“實用”的圖像數據集

圖11. 包含有尺子的皮膚病變照片(圖片來自網絡)

結構化噪聲的引入並非都顯而易見。例如,在購物引擎裡搜索“圓領”的衣服,夏天搜到的可能多是T恤,而在冬天搜索得到的多是毛衣,不留意的話,“圓領”標籤下就都是同一季的衣服;又如,在使用眾包收集圖像時,貢獻者可能偏向某個特定的網站,該網站圖片的特定樣式就被帶進了數據庫。

因此每當引入一種採集數據的手段時,都要小心觀察所獲取的圖像的共性,分析這個共性部分與標籤的相關性。如果相關性很強,則不是噪聲,例如採集“翻領”時使用“外套”做擴展,因為翻領是在衣服的開襟上設計的,而開襟的衣服一般都是外套,“翻領”和“外套”有強相關性,所以不是噪聲。如果相關性很小,例如網站Logo,則顯然是噪聲,我們可以對圖像做處理,去掉Logo區域。如果實在無法去除,可以考慮放棄這種採集方式。

此外,我們還會在第四步建模環節利用模型來檢測結構化噪聲,將在下文介紹。

樣本稀缺還有一種典型的情況,例如文字識別領域的生僻字。全體漢字超過一萬個,常用字有3500個,其餘的稱為生僻字。生僻字在普通語料中極少出現,如果對語料做均勻採樣或隨機採樣,將出現樣本量越大、生僻字比例越低的情況,用來訓練模型,生僻字的識別能力反而下降。在這種情況下,“採集”的方式已經失效,需要用“生成”的方式:用機器製作生僻字的“人工合成”圖像。我們用“生成”方式來製作樣本始於三年多前,最初用規則式的生成,即把生僻字的各種形變寫成規則由機器來模擬;後來在一年多前開始嘗試“對抗生成”[6]。這個方向稱為“少樣本學習”或“小數據學習”,最近一兩年開始被普遍關注,這裡不展開討論。

3.4 第三步:採集好的圖像與知識點做關聯

在第三步,標註人員學習規則,對採集好的數據進行標註。如果資源有限,算法人員也往往就是標註人員。對一些簡單任務,上一步中圖10裡的“人工篩選”就已經完成了實質的標註工作。

這一步主要要考慮標註人員的學習成本和標註效率。通過標註人員的反饋,算法人員一方面改進規則、補充圖例,對標註人員反覆出現疑問的地方,考慮知識修正;另一方面,改進標註工具,包括流程、交互、預處理等,以提高標註效率。

經過第一步和第二步,知識體系中不合理的地方已經大部分得到解決。如果在第三步中標註人員仍有困擾,往往困擾的地方可以引發我們深入思考、產生對數據更深的理解。

例如,我們需要判別圖12中這件毛衣是“七分袖”、“九分袖”還是“長袖”。僅看最左的平鋪圖的話,只能得出衣長和袖子的比例,無法判斷確切的袖長;而如果單看最右這張模特圖,袖子是擼起來的(這在針織衫中常見),我們也無法判斷袖長;直到看到中間這幅圖的上身效果,我們才能判斷是“長袖”。

如何讓機器向“時尚達人”學習?阿里做了個“實用”的圖像數據集

圖12. 毛衣的三種照片

這啟發我們思考商家做如此拍攝的用意:拍攝平鋪圖是用來展示衣服的物理屬性,而拍攝模特圖是用來展示穿著方式和穿搭理念——這兩方面的知識對於理解衣服都是必要的,模型都要學習到。

我們再審視袖長的命名方式:“七分”、“九分”都是相對胳膊說的,人體是天然的尺子,在人體上才能得到準確測量。我們要給出成對模特圖和平鋪圖,標註人員才能做準確標註。回想上一節中“結構化噪聲”的例子,活檢照片中的尺子,在那裡是噪聲,而在這裡是合理的:因為衣服是為人服務的。

再舉一個例子,見圖13,我們要標註這件衣服的“下襬左右端點”和“衣長”。可這是“一件棕色針織衫內搭一件白色襯衣”呢,還是“一件有白色襯衣下襬的棕色針織衫”?

如何讓機器向“時尚達人”學習?阿里做了個“實用”的圖像數據集

圖13. 一件“假兩件”的上衣

這種“假兩件”衣服並不少見,一度是標註人員的困擾。如上文所述,我們認識到衣服展示有“物理屬性”和“穿搭理念”的差別,就“假兩件”來說,經過仔細討論,我們認為這類圖片意在表現穿搭理念,應從整體視覺效果考慮,把“假兩件”判為一件,衣服下襬的左右點在白色部分,而衣長是“正常”。

經過第三步,我們對知識和數據的理解更深了。

3.5 第四步:利用模型做迭代

好消息是終於走到了最後一步,壞消息是還要走回頭路。

在第四步,算法人員把標註好的數據投給機器,做模型的訓練和評測。假設算法人員的建模調參的手藝沒問題,那模型就該在一定程度上反映數據集的質量好壞、哪裡有缺陷,如同一面能隱約成像的鏡子。以模型為鑑,就可以迭代改進數據集。如下圖所示。

如何讓機器向“時尚達人”學習?阿里做了個“實用”的圖像數據集

圖14.四個步驟的迭代示意圖

(1)從D到C的迭代,關鍵詞是“校驗”,校驗的是標註人員的標註質量。通常我們不會把所有數據都標註完才投給機器去訓練,而是分批次標註。假設有10000個樣本,我們會分2000、3000、5000三個批次。前一個批次的樣本投入訓練,如果模型的訓練準確率達到滿意,說明標註質量合格,才進行下一個批次的標註;否則要總結經驗、重新標註。這樣可以減少標註的試錯成本。

(2)如果標註質量始終不過關,要檢查數據採集中的問題。實際上,我們正是利用從D到C再到B的迭代,來應對數據採集中的“樣本稀缺”和“結構化噪聲”問題。如下圖所示。

如何讓機器向“時尚達人”學習?阿里做了個“實用”的圖像數據集

圖15. 利用建模來採集稀缺樣本的流程圖

我們會模擬真實使用場景,進行隨機採樣,這樣得到的樣本於環節A和B無關,我們稱之為“真實場景採樣”。我們把“真實場景採樣”放到訓練好的模型中去運行一遍,這個過程稱為“預測”。預測結果經過人工審核後,如果效果達到滿意,就說明模型被訓練得不錯(即訓練數據不錯),數據集的“結構化噪聲”得到了較好的抑制;如果預測效果不佳,說明數據集中欠缺某方面的訓練樣本,那把錯例補充回數據集,繼續訓練,並更新真實採樣後再做預測,直到效果滿意為止

這個過程既是克服“結構化噪聲”的過程,實際上也是一種補充稀缺樣本的方法,已成為我們採集數據的常規手段之一。

(3)如果需要回溯到環節A,說明知識體系中的問題跨過了第二步“採集”和第三步“標註”,直到第四步“建模”才暴露出來,這即是人的隱藏很深的認知缺陷,由機器映照出來。這種例子很少,我們在女裝“風格”數據集的建設中遇到過。

“風格”是最重要的女裝屬性維度之一。如上一章介紹,生產商、電商平臺、零售商各有其風格體系。我們最初拿到的是平臺運營的風格體系,當時就認識到這套體系有諸多不合理、受主觀因素和個人影響很大。

這體現在標註過程中,一位服飾專家在第一天標註1000張圖,第二天再標註同樣的1000張圖,結果就差異很大:同一件衣服第一天標“歐美風”,第二天就標“高貴風”。即使身為專家,她也從來沒有集中式看過這麼大規模有組織的數據;而前後結果的差異表明,當在數據的標註過程中,人的印象被重塑了。

但也沒人能告訴我們,合理的風格體系應該長什麼樣子,只有以這套充滿問題的風格體系為起點,採集、標註、建模,通過模型暴露問題,再反饋到專業人士,思考討論、加深理解,修正體系甚至推倒重建。

從環節D回溯到環節A,這個過程很長,要幾個月時間。我們經過了三次大的迭代,花了一年半的時間,才得到一個勉強可用的風格體系。而建設第二章中理想化的層次式風格體系,是大得多的挑戰,我們才剛剛開始。

我們的體會是:知識並非生來嚴謹,而是從混亂中走來。人的認知缺陷,可以通過機器映照出來、加以改正,人和機器在彼此學習,這是AI時代之前不曾見到過的。

四. 確定性能的“指標”

數據集是用來訓練和評測模型的。數據集標註好之後,還應有一套用來評測模型的方法,就是“指標”。知識、數據、加上指標,才是一個完整的數據集。好的指標也體現了對於“實用”數據集的追求。

最基礎的指標是準確率(P)和召回率(R),常用在搜索和分類任務中。假設模型找回的8個結果中有4個是正例,而數據集裡總共有10個正例,則準確率P=4/8=50%,召回率R=4/10=40%。P和R是一對相互制約的指標,共同刻畫模型的能力。

一對(P,R)值對應是模型在固定一組參數時的表現。通過調整模型參數,可以得到一系列的點,就連成一條“P-R曲線”,該曲線可以更全面的體現模型能力,人們用一個值“AveP”來表徵,可以把AveP簡單理解為“在一個縱軸為P,橫軸為R的座標系裡,P-R曲線下方的面積”,面積越大越好。目標檢測比賽VOC從2010年後採用的指標就是AveP。

在搜索和分類任務中,識別結果就是一個實例,正例就是識別的標籤與標註的標籤一致。在有些任務中,如目標檢測,識別對象是一個區域,這時要多一個指標IoU。IoU描繪了識別區域與標註區域的面積重合情況,數值上就是二者交集與並集的面積比。IoU高於一個閾值則是正例。業界通常選取IoU>0.5,例如ImageNet比賽[7]就使用IoU>0.5。在我們的一個商用的圖像搜索系統中,選擇的是IoU>0.7。

當識別對象是一個序列時,如字符串,由於次序本身也是信息的一部分,就需要更精巧的指標。在文字識別和語音識別中,普遍採用“編輯距離”作為指標,即一個字符串經過多少次“增”、“刪”、“改”的操作可以變化為另一個字符串。如,“aboc”和“obac”之間差距為2次“改”,編輯距離為2;“真圖像和美”和“圖像與美好棒”差距1次“刪”、1次“改”、2次“增”,編輯距離為4。如果簡單統計字符出現次數的話,“aboc”和“obac”的準確率和召回率都是100%,顯然和實際不符。

評測指標還有很多,例如搜索中的R@N,這裡不贅述。另一方面還要根據情況劃分難度,例如目標檢測中按照圖像背景複雜度分檔,文字識別按照拍照質量分檔等。業界在評測方法上有很多經驗,也在尋求越來越貼近實際情況的做法。在最近的比賽COCO[8]中,一方面會考察模型取不同IoU閾值時獲得的AveP值,另一方面也會根據檢測物體大小的不同而區別對待。這些做法使數據集被更合理的結構化了,也可視為數據集建設的一部分。

這裡補充一些我們的經驗。有的服飾屬性維度如“領型”,包括“圓領”、“方領”等標籤,識別結果的對和錯,就是1和0的關係;而有的屬性維度如“袖長”,從短到長有7個標籤,加上前文提過的“不可判別”,一共8個標籤:“不可見,杯袖,短袖,五分袖,七分袖,九分袖,長袖,超長袖”,如圖16所示。我們對“袖長”的評測方法做了兩步細化。

如何讓機器向“時尚達人”學習?阿里做了個“實用”的圖像數據集

圖16.袖長的標註標準示意圖

首先,在“是(Y)”和“否(N)”之外,還設立了“模糊(M)”。如果一件衣服出現在圖16中黑點的位置,那麼對應上面的8個標籤,標註結果會是(N,N,N,N,N,N,Y,M)。這使得對邊界點的判別更加合理。

進一步觀察,把“九分袖”錯判為“七分袖”,和錯判為“短袖”,錯誤程度是不同的,應區別對待,我們就引入了標籤距離,把標註結果細化為(0,0,0,3,5,7,10,8),這樣更貼近實際情況。

可以看出,指標體系的豐富和細化,其實是知識的一層更精細的表達,數據集要走向實用,要重視這些細節。

五、總結

綜上所述,我們介紹瞭如何做一個“實用”的圖像數據集。

我們首先強調了“用途”的重要性:用途是看待事物的視角,是取捨的依據。

其次,我們討論了數據集建設的三個方面:

  • 知識:專業知識的引入是必要的;知識的用途發生了變化,製作者要和專業人士一起來重建知識。
  • 數據:從知識到數據,是反覆迭代的過程;知識重建貫穿到了採集、標註、建模等所有環節;機器參與到知識重建的過程中來,這是前所未有的新情況。
  • 指標:指標可以承載知識的一些更精細的層面,好的指標應在細節上更貼近實際。

製作實用的數據集,不僅是為了AI走向落地,也是計算機視覺自身發展的需要。以我曾接觸過的圖像技術領域,人們在很多有潛力的議題上淺嘗輒止,這其中有工具不得力的原因,另一大原因是研究的基礎——數據集——製作不嚴謹,基礎不牢靠,讓後來者難以為繼。也難怪,倒回去十年,從事計算機視覺的人,吃飯都困難,學生畢業後往往要轉行,何談做一個實用的數據集。

今天情況已經不同,工具發展了,資源豐富了,計算機視覺在走向一門成熟的學科。科研無外乎兩件事:1. 製備實驗對象、做觀測;2. 分析總結、抽象出理論。計算機科學從誕生始,不被視為“科學”,而是“工程”。今天計算機視覺火了,而工程的味道比過去更濃,因為現在正處於工具——深度學習——大發展的時代。長遠來看,學科要發展,製作數據集上必然走向更嚴謹,AI從業者應更有勇氣、承擔責任,才不負時代的期望。

如何讓機器向“時尚達人”學習?阿里做了個“實用”的圖像數據集

賈夢雷,1998年至2005年就讀於中國科學技術大學,取得本科及碩士學位。畢業後曾任職於微軟亞洲研究院和搜狗。於2008年加入淘寶,創立了阿里巴巴最早的圖像技術團隊,構建了阿里集團內部應用廣泛的圖像技術基礎設施,外部知曉的產品有圖片保護產品“八載”、文字識別產品“讀光”、以及時尚與AI結合的 “時尚之心”(FashionAI)。

鳴謝

感謝阿里巴巴“圖像和美”團隊的全體成員,尤其是“時尚之心”項目的同學,包括段曼妮、孔祥衡、曹陽、石克陽、王從德、王永攀等,都參與了寫作。此外,感謝香港理工大學的黃偉強教授及鄒星星同學,在時尚專業知識方面對項目及本文多有貢獻。

文獻:

[1] LFW人臉數據集:

http://vis-www.cs.umass.edu/lfw/

[2] ChestX-ray8醫療影像數據集:

https://arxiv.org/abs/1705.02315

[3] Luke Oakden-Rayner的博客:https://lukeoakdenrayner.wordpress.com/2017/12/18/the-chestxray14-dataset-problems/

[4] DeepFashion數據集:

http://mmlab.ie.cuhk.edu.hk/projects/DeepFashion.html

[5] “腫瘤”和“尺子”的例子:

https://amp.thedailybeast.com/why-doctors-arent-afraid-of-better-more-efficient-ai-diagnosing-cancer

[6] 對抗生成學習:

https://arxiv.org/abs/1511.06434

[7] ImageNet數據集:http://www.image-net.org/

[8] MS COCO數據集:http://cocodataset.org/


預告

如何讓機器向“時尚達人”學習?阿里做了個“實用”的圖像數據集

由阿里巴巴“圖像和美”團隊聯合香港理工大學紡織及製衣學系、英國紡織協會共同發起2018FashionAI全球挑戰賽將於北京時間7月5號(週四)9:00-16:30在香港理工大學進行決賽答辯。

本次2018FashionAI全球挑戰賽發佈業界首個同時滿足服飾專業性和機器學習要求的大規模高質量數據集,旨在推動業界解決機器讀懂時尚的兩個基礎問題:服飾關鍵點定位和基礎屬性識別,號召全世界的AI科研人才共同推動AI 技術在時尚產業的落地。

如何讓機器向“時尚達人”學習?阿里做了個“實用”的圖像數據集

據天池數據眾智平臺官方統計,從三月至今,來自中國、美國、印度、英國、澳大利亞等全球42個國家和地區的5272支隊伍共6594名選手在2018FashionAI全球挑戰賽的賽場上展開了激烈的角逐。選手中有來自美國斯坦福大學、伊利諾伊大學香檳分校、卡內基梅隆大學、日本早稻田大學,中科院、清華、北大、等全球知名高校的在校生(含本科生,研究生,博士生),也有來自微軟亞洲研究院、騰訊、華為、網易、訊飛、滴滴、小米、京東、唯品會等知名AI研究機構和企業的工程師。

而來自中科院計算所研究員山世光,中科院自動化所研究員王亮,華中科技大學教授白翔,阿里巴巴機器智能技術研究院、首席科學家兼副院長任小楓,北京服裝學院副院長詹炳宏等知名專家將會作為評審嘉賓,共同見證兩個賽道冠亞季軍等誕生。

2018FashionAI全球挑戰賽將於7月5日進行全天決賽答辯,

訪問:https://tianchi.aliyun.com/m.html#/live/postsId=5437可迅速抵達決賽答辯直播間哦。

如何讓機器向“時尚達人”學習?阿里做了個“實用”的圖像數據集

每天一篇技術文章,

看不過癮?

發現更多AI乾貨。


分享到:


相關文章: