学習データ自作のすすめ

深層学習で勝負するなら」で、深層学習でよい結果を出すには良質のデータを作るのが一番よいと述べました。とはいえ実際問題として、深層学習で必要とされるぐらいのデータ量を確保するにはそれなりのコストがかかるため、データ作りはなかなか手を出しにくいのも事実です。そこで本記事では、自分でデータを作ることにはよい学習結果を得る以上のご利益があることを説明したいと思います。

データを作るためには、(当然ですが)どういうデータが必要なのか明確にしないといけません。ある程度の量のデータを作るためには(クラウドソーシングなどを使って)多数の作業者に作成を委託することが普通ですが、そのためにはどういうデータをどう作って欲しいのか他人もわかるように説明できないといけません。仮にそれができないとすると、そもそも深層学習を使って何をしたいのかが怪しくなってきます。データを作る第一歩として何を作るのか説明することで、自分が深層学習を使って何をしたいのかを整理することができます。

とはいえ、いくら説明されても、作業に特殊なスキルを要求したり(たとえばひよこの性別を判定できるなど)、膨大な量のルールを理解しないといけなかったりすると、作業をできる人が限られてしまいコストが跳ね上がります。そうしないとどうしても作れないデータであれば仕方ありませんが、多くの場合、一部の作業を簡略化したり、ある程度の誤りを許容することで、本質的な部分は妥協しないままコストを下げることが可能です。そしてコストを下げる方法(注)を考えること(裏を返すとこれ以上削れない部分を見極めること)は、深層学習を使って本当に実現したいことは何なのか見極めるために有効な方法です。

(注)コストを下げるというと人件費単価を下げることを考えがちですが、クラウドソーシングの分野ではコストを下げすぎると品質も著しく悪くなると言われています。複雑な難しい作業をへてできた質の悪いデータは、往々にして使い物になりません。コストを下げることを考えるときは、まず作業の簡素化を考えるべきだと思います。

作業を簡素化してやっとデータを作成し始めると、判断に迷ったり、人によって判断が食い違う例がすぐに見つかります。作業の説明に不明確な部分がある可能性もありますが、現実世界のデータを扱う以上はこういう「詰めきれない」部分が残ってしまうのは致し方ありません。重要なのはそういう「詰めきれない部分」がどこにあるのか把握することです。そうすれば、できあがったデータの中に自分が思っていたものと違うものがあったときに、それが「誤り」なのか「ノイズ」なのかして、データの品質を検証することができるようになります。

現実の学習データというのは、教科書に書いてある理想的な学習データとは異なり、解きたい問題の背後にある真の確率分布からランダムにサンプルされてきたものではありません。解きたい問題に似通った(場合によってはあまり似ていない)事例のうち入手可能なものから、その筋の専門家とは限らない人たちが、時間と費用の制限のもとで様々なトレードオフをした結果できあがったナニカです。

限られたリソースの中で深層学習の力を最大限に発揮するためには、データの入手方法や作成作業のトレードオフについて細かなコントロールをすることが鍵になる場合もあります。そして、そのようなコントロールは自分でデータを作らない限り望むべくもないものだと思います。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中