近日,何愷明團隊所在的Facebook AI推出ResNeXt-101模型,利用Instagram上的用戶標記圖片作為預訓練數(shù)據(jù)集,省去了人工標記數(shù)據(jù)的巨額成本,而且使用中只需微調,性能即超越了ImageNet任務的SOTA水平。
目前,幾乎所有最先進的視覺感知算法都依賴于相同的范式:(1)在手動注釋的大型圖像分類數(shù)據(jù)集上預訓練卷積網(wǎng)絡,(2)在較小的特定任務的數(shù)據(jù)集上微調網(wǎng)絡。這個模式已經(jīng)廣泛使用了好多年,并取得了明顯的進展。比如:物體檢測,語義分割,人體姿勢估計,視頻識別,單眼深度估計等。
事實上,如果沒有有監(jiān)督式預訓練,很多方法現(xiàn)在還被認為是一種蠻干 ImageNet數(shù)據(jù)集實際上是預訓練數(shù)據(jù)集。我們現(xiàn)在實際上對數(shù)據(jù)集的預訓練了解相對較少。其原因很多:比如現(xiàn)存的預訓練數(shù)據(jù)集數(shù)量很少,構建新數(shù)據(jù)集是勞動密集型的工作,需要大量的計算資源來進行實驗。然而,鑒于預訓練過程在機器學習相關領域的核心作用,擴大我們在這一領域的科學知識是非常重要的。
本文試圖通過研究一個未開發(fā)的數(shù)據(jù)體系來解決這個復雜的問題:使用外部社交媒體上數(shù)十億的帶有標簽的圖像作為數(shù)據(jù)源。該數(shù)據(jù)源具有大而且不斷增長的優(yōu)點,而且是“免費”注釋的,因為數(shù)據(jù)不需要手動標記。顯而易見,對這些數(shù)據(jù)的訓練將產生良好的遷移學習結果。
本文的主要成果是,在不使用手動數(shù)據(jù)集管理或復雜的數(shù)據(jù)清理的情況下,利用數(shù)千個不同主題標簽作為標記的數(shù)十億幅Instagram圖像進行訓練的模型,表現(xiàn)出了優(yōu)異的傳輸學習性能。在目標檢測和圖像分類任務上實現(xiàn)了對當前SOTA性能的提升。在ImageNet-1k圖像分類數(shù)據(jù)集上獲得single-crop 最高準確率達到了85.4%,AP達到了45.2%。當在ImageNet-1k上訓練(或預訓練)相同模型時,分數(shù)分別為79.8%和43.7%。然而,我們的主要目標是提供關于此前未開發(fā)的制度的新實驗數(shù)據(jù)。為此,我們進行了大量實驗,揭示了一些有趣的趨勢。
表1:圖像分類數(shù)據(jù)集的摘要。每個數(shù)據(jù)集標明數(shù)據(jù)來源和功能(訓練集,驗證集,測試集),圖像數(shù)量I和標簽數(shù)量L。
ImageNet數(shù)據(jù)集和模型
除了標準的IN-1k數(shù)據(jù)集之外,我們還嘗試了包含1420萬幅圖像和22000標簽的完整ImageNet2011完整版本的更大子集。我們構建了包含5k和9k標簽的訓練集和驗證集。
對于5k標簽集組,我們使用現(xiàn)在標準的IN-5k(6.6M訓練圖像)。對于9k標簽集,我們遵循用于構建IN-5k數(shù)據(jù)集的相同協(xié)議,采用下一個最頻繁的4k標簽和所有相關圖像(10.5M訓練圖像)。在兩種情況下,均使用50個圖像進行驗證。
我們使用具有分組卷積層的殘差網(wǎng)絡ResNeXt 。實驗中使用ResNeXt-101 32×Cd,它有101層,32組,組寬分別為:4(8B乘加FLOPs,43M參數(shù)),8(16B,88M),16(36B,193M), 32(87B,466M)和48(153B,829M)。我們認為實驗結果可以推廣到其他架構。
與ImageNet相比,我們使用的Instagram數(shù)據(jù)集可能包含每個圖像的多個標簽(因為用戶指定了多個主題標簽)。每個圖像的平均標簽數(shù)量因數(shù)據(jù)集而異;例如,train-IG-1B-17k每個圖像最多包含2個主題標簽。
實驗結果與性能
表2:使用不同規(guī)模、不同參數(shù)配置的ResNeXt-101模型獲得的不同性能結果比較
圖1:使用不同規(guī)模和參數(shù)配置的ResNeXt-101模型在ImageNet和Instagram標記數(shù)據(jù)集的分類性能的比較
運行實例及相關代碼
# Download an example image from the pytorch websiteimport urlliburl, filename = ("https://github.com/pytorch/hub/raw/master/dog.jpg", "dog.jpg")try: urllib.URLopener().retrieve(url, filename)except: urllib.request.urlretrieve(url, filename)
# sample execution (requires torchvision)from PIL import Imagefrom torchvision import transformsinput_image = Image.open(filename)preprocess = transforms.Compose([ transforms.Resize(256), transforms.CenterCrop(224), transforms.ToTensor(), transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),])input_tensor = preprocess(input_image)input_batch = input_tensor.unsqueeze(0) # create a mini-batch as expected by the model# move the input and model to GPU for speed if availableif torch.cuda.is_available(): input_batch = input_batch.to('cuda') model.to('cuda')with torch.no_grad(): output = model(input_batch)# Tensor of shape 1000, with confidence scores over Imagenet's 1000 classesprint(output[0])# The output has unnormalized scores. To get probabilities, you can run a softmax on it.print(torch.nn.functional.softmax(output[0], dim=0))
-
圖像分類
+關注
關注
0文章
90瀏覽量
11907 -
機器學習
+關注
關注
66文章
8377瀏覽量
132409 -
數(shù)據(jù)集
+關注
關注
4文章
1205瀏覽量
24644
原文標題:何愷明團隊新作ResNext:Instagram圖片預訓練,挑戰(zhàn)ImageNet新精度
文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論