深層学習を使って良い結果を出すためにはいくつか重要な要素があります。
- タスクにあった学習アルゴリズム(ここでは、ネットワークの構造、初期化法、最適化手法などざっくり含んで学習アルゴリズムと呼ぶことにします。)
- 学習・評価を手っ取り早く行うための計算機資源
- データ
深層学習を使って開発するぞ!となったとき、1と2にまず目が行くことが多い気がします。特に研究色が強い場合はほぼ1が興味の対象で、2と3は後回しになりがちです。しかし、少し先のことを考えてみると、1と2はお金でどうにかなる(ということは長期的には価格が低下してコモディティ化する可能性が高い)ところだという気がしています。
もちろん、学習アルゴリズムと計算資源の分野でも最先端の研究は続いていくと思います。また、安全性や高速性などの要求水準が高い分野では、そう簡単に価格は下がらないかもしれません。しかし、一般的な利用に十分なレベルな精度でそれなりの速度で処理すればよい、ということであれば、パッケージ化された「商品」として提供される学習アルゴリズムや計算資源で問題なくなるだろうと個人的には思っています。(逆にそうならないと技術として成熟したとはいえません。)
しかし、これらに比べて軽視されがちな3番目の要素、すなわちデータについては状況がまったく違います。
まず、大抵の場合、自分が解きたい問題のデータというのは存在しません。現在、誰でも使える形で提供されている大規模なデータというのは、研究者が技術開発のベンチマークとして収集・公開したものなので、それが自分のやりたいこととピッタリ一致することはまずありません。また、誰でも使えるデータを使うだけでは他者と差別するのは非常に困難です。研究者は既存研究を少しでも上回れば嬉しいものですが、往々にしてビジネスで重要になるのは誰が見てもわかるぐらいの差です。同じデータを使う限り、そのような差を出すことは困難です。
次に、高品質なデータを作るためにはそのタスクやドメインの知識が必要となるため、計算資源や学習アルゴリズムのように商品化するのが難しいという事情があります。
一般に深層学習にかぎらず機械学習においては、ラベルの間違いや入力ノイズなどが存在すると精度が低下します。ですが、個人的な経験から言うと、深層学習はその低下度合いが他の手法よりも著しい気がしています。裏を返すと、きれいなデータを使えば精度が高くなる可能性が高いということです。データ中の間違いにたいして頑健に学習できるようにする研究も多く存在しますが、タスクによっては、そもそも間違っているのか例外的だけれども正しいのか判定することが難しいものもあり、学習アルゴリズムだけで解決できる問題ではないと思います。(ちなみに私が専門とする自然言語処理の分野では、間違いと例外の境目は人間でもわからないことがよくあります。)
学習アルゴリズムの進歩やそれを支える計算環境の改善ももちろん重要ですが、それらを追いかけるのは(少しだけ長い目で見れば)それほど難しいことではありません。費用対効果で考えると良いデータを揃えることが一番効果的だと思います。(データ「作り」の重要さ・大変さは過小評価されがちなので、また稿を改めて書きたいと思います。)
“深層学習で勝負するなら” への1件のフィードバック