天天看點

幹貨|如何讓機器向“時尚達人”學習?阿裡做了個“實用”的圖像資料集

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

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

2018FashionAI全球挑戰賽将在7月5号(周四)舉行,點選文末“閱讀原文”,可直達直播連結。

引言

近年來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/

繼續閱讀