2017-01-14 96 views
8

的keras平衡與keras圖像生成一個不平衡的數據集

ImageDataGenerator 

可用於「生成與實時數據增強張量的圖像數據的批」(https://keras.io/preprocessing/image/

該教程在

https://blog.keras.io/building-powerful-image-classification-models-using-very-little-data.html

演示瞭如何使用ImageDataGenerator增強小而平衡的數據集。是否有一種簡單的方法來使用這個生成器來增加嚴重不平衡的數據集,從而生成的生成的數據集是平衡的?

回答

11

這不是處理不平衡數據的標準方法。我也不認爲這樣做是合情合理的 - 你會顯着改變你的課程的分佈,而現在這個較小的課堂變得更加不穩定。較大的類將具有豐富的變化,較小的將會有許多具有小仿射變換的相似圖像。他們生活在比大多數階層小得多的圖像空間區域。

更標準的做法將是:

  • 的class_weights論點model.fit,你可以用它來使模型學習從少數類的更多。
  • 縮小多數班級的規模。
  • 接受不平衡。深度學習可以解決這個問題,它只需要更多的數據(真正的解決方案)。

前兩個選項確實是一種黑客攻擊,這可能會損害您處理真實世界(不平衡)數據的能力。它們都沒有真正解決低變化的問題,這是數據太少所固有的。如果在模型訓練之後應用到真實世界的數據集不是問題,並且您只需要獲得關於您的數據的良好結果,那麼這些選項就很好(並且比爲單個類生成生成器容易得多)。

如果您有足夠的數據(例如,recent paper from Google about detecting diabetic retinopathy在陽性病例在10%至30%之間的數據集中實現了高準確性),第三種選擇是正確的選擇。

如果您真的想爲一個類生成各種增強圖像而不是另一個類,那麼在預處理中可能最容易。拍攝少數族裔的圖像並生成一些增強版本,並將其全部稱爲數據的一部分。就像我說的,這是非常黑的。

+0

非常感謝您分享您的洞察力。我會研究谷歌紙。 – user1934212