深層学習の認識タスクにおいて、データ量を増やすと精度がどの程度向上するか

データを増やすとどうなるか

(a)モデルサイズや(b)計算力は向上しているが、(c)データセットサイズの変化は小さい。

f:id:yusuke_ujitoko:20170715003003p:plain:w400

データセットが大きくなれば、はたして精度は向上するだろうか。 訓練データ数を10倍にしたら、精度は倍くらいになる? 訓練データ数を100倍や1000倍にしたらどうなる?

Googleは巨大なデータセットを自動で集め、 300Mの画像からなるデータセットとしてJFT-300Mを構築した。 ラベルは自動でつけており、計375Mのラベルがある。(1画像につき複数のラベルがつく)。

実験

以下のタスクに対してデータセットを変化させて精度の変化を調べた。

  • image classification
  • object detection
  • semantic segmentation
  • human pose estimation

実験の結果、タスクによらず,精度はデータセットのlog-scaleに比例することがわかった。

f:id:yusuke_ujitoko:20170715003851p:plain

ただし、実験の中ではハイパーパラメータは最適値にしていない。

redditの反応

実験では50KのGPUを2ヶ月使ったと書いてある。 そしてそれでも101層のResNetが収束しなかった様子。 またハイパーパラメータも最適値を求めていない。 Googleの連中でもその調子なら、せいぜいTitan 5,6個しか使えない一般人はどうすればよいのか。