當前位置:
首頁 > 新聞 > 學界|CIFAR-10+ImageNet=?CINIC-10!

學界|CIFAR-10+ImageNet=?CINIC-10!

選自GitHub,作者:Luke Darlow、Amos、Elliot J. Crowley,機器之心編譯,參與:李詩萌、王淑婷。


就神經網路方面而言,ImageNet 過於龐大,在計算資源不足的情況下,耗費的運行時間過長,而 CIFAR-10 又太小,有時候無法滿足需求。於是,本文提出一種方法,將從 CIFAR-10 中選出的圖像與 ImageNet 中下採樣得到的圖像相結合,編譯出了 CINIC-10,可以替代 CIFAR-10。

CINIC-10 可以直接替代 CIFAR-10。由於 CIFAR-10 太小(太簡單),而 ImageNet 又太大(太難),所以我們將 CINIC-10 編譯為基準數據集。雖然 ImageNet32 和 ImageNet 64 比 ImageNet 小,但是它們卻更難。CINIC-10 填補了基準數據集的這一空隙。

學界|CIFAR-10+ImageNet=?CINIC-10!

動機

「我們可以看到近些年來在深度學習領域取得的巨大進步(LeCun 等人,2015)」

可能許多讀者都很熟悉這一推論。在許多深度學習方面的論文開頭都有類似的話。我們要怎麼評估這樣的陳述呢?通過基準數據集。在 ImageNet 上,AlexNet(Krizhevsky 等人,2012)比傳統的計算機視覺方法表現得更加出色,後來 VGG 網路(Simonyan&Zisserman,2015)超越了 AlexNet,然後又被 ResNet(He 等人,2016)等網路超越。

但 ImageNet 也有缺陷。這是一個龐大的數據集。數據集中的圖像很大,至少有關神經網路方面的圖像如此,而這個數據集中有超過一百萬張這樣的圖像。在計算資源不充足的情況下,運行一次訓練要花好幾天的時間(Goyal 等人,2017)。也許是出於這個原因,CIFAR-10 和 CIFAR-100(Krizhevsky,2009)已經成為許多人在現實圖像背景下對神經網路進行基準測試的首選數據集。實際上,這正是幾個流行的架構展示其能力之處(Huang 等人,2017;Gastaldi,2017)。

在 CIFAR-10 中,10 類里每一類都有 6,000 個樣本,而 CIFAR-100 中,100 類里每一類只有 600 個樣本。這導致了這些任務間巨大的難度差異;CIFAR-100 可能比 ImageNet 更難。如果有能提供關於任務難度的另一個里程碑的數據集,那這個數據集就會很有用。ImageNet-32 是 CIFAR 的替代品,但這實際上引出了一個比 ImageNet 更具挑戰性的問題,因為下採樣圖像的信息容量顯著更低。此外,大部分基準數據集會不均勻地分割訓練集、驗證集和測試集(CIFAR 中不存在驗證集)。而我們需要大小相同的分割,因為它們才可以提供更有原則的泛化性能。

為了克服現有基準數據集的缺點,我們提出了 CINIC-10:CINIC-10 既不是 ImageNet 也不是 CIFAR-10。CINIC-10 是 CIFAR-10 通過添加下採樣的 ImageNet 圖像擴展得到的。CINIC-10 具有以下幾個理想特質:

  • CINIC-10 有 270,000 張圖像,是 CIFAR 的 4.5 倍。
  • 圖像大小與 CIFAR 中的一樣,也就是說可以用 CINIC-10 替代 CIFAR-10
  • 它具有大小相同的訓練、驗證和測試分割。在一些實驗設置中,可能需要一個以上的訓練數據集。儘管如此,通過大小相同的數據集分割,可以公正地評估泛化性能。
  • 可以將訓練子集和驗證子集結合在一起得到更大的訓練集
  • CINIC-10 中的圖像來源於 CIFAR 和 ImageNet。這些圖像的分布不一定相同,這就呈現出了新的挑戰:分布轉移。換言之,我們可以在類別相同的情況下,了解在 CIFAR 圖像上訓練得到的模型比在 ImageNet 圖像上訓練得到的模型好多少。

細節

  • CINIC-10 中共有 270,000 張圖像,將這些圖像平均分割為三個子集:訓練集、驗證集和測試集。
  • 在每個子集(90,000 張圖像)中有十類(與 CIFAR-10 中的類別相同)。每個子集的每個類別中有 9,000 張圖像。使用推薦的數據分割(平均分為三等份)的情況下,CINIC-10 的訓練樣本數量是 CIFAR-10 的 1.8 倍。CINIC-10 被設計為可以直接和 CIFAR-10 交換。
  • 還可以將訓練集和驗證集結合在一起,組成更大的訓練集。在這種情況下,CINIC-10 的訓練樣本量是 CIFAR-10 的 3.6 倍。
  • 可以根據下列代碼計算(r,g,b)通道的平均值和標準差:

cinic_mean_RGB = [0.47889522, 0.47227842, 0.43047404]
cinic_std_RGB = [0.24205776, 0.23828046, 0.25874835]

將 CINIC-10 保存下來,以便和 PyTorch 數據載入器一起使用。文件夾結構如下所示:

train/

train/airplane

train/automobile

train/...

valid/

valid/...

test/

test/...

基準

用兩種方式對 CINIC-10 進行基準測試:(1)建議的三等份分割法,在訓練子集上訓練,在測試子集上測試;(2)將訓練集和驗證集結合,在結合的數據集上訓練,然後在測試集上測試。

我們從以下地址複製了模型定義。將 epoch 設定為 300,初始學習率為 0.1,動量乘數為 0.9,權值衰減乘數為 0.0001,batch size 為 64。學習率按餘弦方式降到 0。

定義地址:https://github.com/kuangliu/pytorch-cifar/

在訓練子集上訓練的結果

學界|CIFAR-10+ImageNet=?CINIC-10!

在訓練子集和驗證子集結合得到的新數據集上訓練得到的結果

與 CIFAR-10 模型進行比較,用不同種子訓練 5 次。列出這些運行結果的誤差,包括標準差:

學界|CIFAR-10+ImageNet=?CINIC-10!

樣本

下圖是從 CINIC-10 和 CIFAR-10 中隨機挑選的樣本,將其進行比較。顯而易見,CINIC-10 雜訊更大,因為 Imagenet 中的樣本沒有審查過。

飛機

CIFAR-10

學界|CIFAR-10+ImageNet=?CINIC-10!

CINIC-10

學界|CIFAR-10+ImageNet=?CINIC-10!

CIFAR-10

學界|CIFAR-10+ImageNet=?CINIC-10!



CINIC-10


學界|CIFAR-10+ImageNet=?CINIC-10!



論文:CINIC-10 Is Not ImageNet or CIFAR-10



學界|CIFAR-10+ImageNet=?CINIC-10!


論文鏈接:https://arxiv.org/abs/1810.03505

摘要:在這篇簡短的技術報告中介紹了 CINIC-10 數據集,這個數據集可以作為 CIFAR-10 的擴展替代方案。將 從 CIFAR-10 中挑選的圖像以及從 ImageNet 資料庫下採樣得到的圖像結合在一起,編譯出了 CINIC-10。我們提出了編譯數據集的方法,說明了類別不同的樣本圖像,給出了庫中每一部分的像素分布,還為那些眾所周知的模型給出了一些標準基準。關於下載、使用和編譯的一些細節可以從相關的 github 庫中找到。

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

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


請您繼續閱讀更多來自 機器之心 的精彩文章:

EMNLP 2018 | 為什麼使用自注意力機制?
AMD的GPU現在可以加速TensorFlow深度學習了

TAG:機器之心 |