その機械学習、本当に必要ですか? 機械学習に向いているプロジェクト、向いていないプロジェクトの話
そのプロジェクトは、無理に機械学習を適用していないでしょうか。今日は機械学習に向いているプロジェクト、向いていないプロジェクトを論じてみましょう。以下の論点は、機械学習プロジェクトキャンバスから抜粋しています。5年前の2019年発表ですが、基本的な考え方は変わっていないと思っています。
機械学習の技術的な側面
まず機械学習は、人間に比べて速い。圧倒的に速く、安い。一方で基本的に確率モデルなので、間違いがゼロにならない。これらの特徴を考えたとき、向いている特徴が出てきます。
予測の速度が上がるとメリットが出る
速度がメリットになる典型的な例は、証券などの高速取引 (HFT) です。人間が判断するより圧倒的に速く、1秒に何回も取引を繰り返して利ザヤを稼ぎます。機械学習も同様に、複雑な予測を人間より高速に行うことができます。例えば異常値の検出やリアルタイムのプライシングなど、人間が目視・判断していては間に合わないようなケースで非常に有効です。
予測のコストが下がるとメリットが出る
コストが下がると、繰り返し判断することができます。超高速なサイクルを回したり、人間が毎回判断するとコスト的に見合わない小さな取引を行う、抜き取り検査から全品検査にするなど、予測や分類などが安価になることで、これまで見過ごされていたプロセスに知的な1ステップを入れることができるようになります。
システムに組み込む
機械学習はITなので、他のアプリケーションから呼び出したり、システムに組み込んだりすることができます。例えば人間に判断を仰ごうとしたら、画面に表示したり、操作方法を教えたり、不在の場合に呼び出したりと様々な工夫をこらす必要があります。しかし機械学習なら他のシステムと自然に連携したり統合したりできるのです。
予測に誤りがあっても許容できる
これは、向いているといってもネガティブな側面です。例えば医師向けの診断支援アルゴリズムの正解率が50%では話になりませんが、e-コマースサイトのお勧めの正解率が50%なら驚異的でしょう。機械学習は、誤ってもいいけれど当たると嬉しい用途に使う方が向いており、正解しないと許されないような用途には向いていません。
現場の専門家の数が足りない
そもそも専門家が足りている現場があるでしょうか。機械学習はパターンを学習する技術なので、専門家の挙動を模倣できます。確かに一流の専門家のパフォーマンスに比肩することは滅多にありませんが、経験の浅い担当者が困ったとき、専門家から学習した機械学習の出力はしばしば参考になります。機械学習を活用することで、チームのパフォーマンスを底上げすることができるのです。
人間と比較した相対的な側面
他の特徴として、人間が生来的に苦手な問題や、人によって判断が一致しない問題に適用できることがあります。
データが多すぎて人間では処理しきれない
人間は、当たり前ですが、ある程度以上のデータは扱えません。単純なデータ量としてもそうですし、ひとつひとつのデータに多くのパラメータがある場合もそうです。その点、機械学習は大きなデータ、複雑なデータを扱うのに向いています。特にサンプル数に関しては、人間と逆に、多ければ多いほど得意です。
専門家でも予測が難しい (正解が後で分かる等)
行動経済学の研究結果によると、専門家は極めて複雑なパターンでも何となく正解を導くことができます。ただしそれは、例えば家が崩れるか判断する消防士のように、予測した結果の正誤がすぐに分かるケースを繰り返した場合とされています。逆に、結果がすぐに分からないケース、例えば目の前の患者さんが数年後にどういう状態になるかに関し、医師は案外と見分けられないようです。
機械学習は、その時点での様子と何年後かの状態をペアで学習させることで、そのパターンの対応関係を見出すことができます。このような、人間が認知特性として苦手なケースでは、専門家の予測精度を正面から上回ることがあります。
属⼈性が高く、⼈によって予測が⼀致しない
ディープラーニングの画像分類の精度が、人間を上回ると耳にしたことはあるでしょうか。これは不思議なことです。というのも、どの画像に何が写っているかの正解データは人間が作っているからです。ではどうやって人間の精度を超えるのでしょうか? 最も簡単な仕掛けは、1枚の画像に複数人が判定をして、その多数決を正解とすることです。この場合には、ひとりひとりの人間はラベル付けに失敗することがありますが、機械学習は多数決のデータセットで学習しているために、人間の平均値を超える精度を示すことがあります。
よく、専門家でも意見が割れることなどがあるでしょう。機械学習は、こういった人間のあいだの誤差やゆらぎを集約したデータで学習することで、人間を上回ることがあるのです。
他の計算手法との比較
コンピュータを用いるとして、なにも機械学習だけが予測手法ではありません。ではどういった場合に機械学習が向いているのでしょう。
理論ベースの手法で行き詰った
コンピュータシミュレーションなどの理論を基にする手法は、計算機の高速化に伴い非常にパワフルです。しかし理論ベースだと、細部を詰め切れず、どうしても現実と合わないことがあります。そういうときに機械学習を試してみる価値が浮上します。
あるいは、系が複雑すぎて、理論が追い付かないこともあるでしょう。そういう場合にも機械学習が有効です。機械学習は、データさえあれば系の複雑さによらずモデリングが可能であって、深く考えず気楽に試すのが正解と思っています。
また、シミュレーションと機械学習を融合したり往復させたりする試みも多く、理論と機械学習の両方を理解することはしばしばブレイクスルーに繋がります。
目標設定や成功基準の問題
では逆に、機械学習に向いていないプロジェクトの特徴も考えてみましょう。ひとつは、目的や成功基準が曖昧なケースです。
“予測” ではなく “理解” をしたい
一般に科学的と目される機械論的な考え方では、理解することと予測することはきれいに繋がります。どういう仕組みか分かるからこそ、その先が予測できる。だから、理解と予測を明示的に分けて考えるという思考法にはなりません。
しかし、機械学習はパターン認識です。予測をする際に内部的なメカニズムを考慮する必要はなく、入力=状態のデータと、出力=結果のデータさえあればいいですし、逆にそれしか扱えないとも言えます。
ここはしばしばコミュニケーションが混乱するところです。機械論的な考えに慣れている人が「(どういう原因なのか理解することを通じて) 予測がしたい」と伝え、データサイエンティストが「(メカニズムは問わずブラックボックスで) 予測がしたいのですね、分かりました」と回答するケースは頻繁にあります。そして結果が出てからようやくコミュニケーションができていなかったことに気付くことになります。
成功のクライテリアが決められない
これは別に機械学習に限らないでしょう。ただ、機械学習の成功クライテリアである予測精度 (正解率、適合率など) に慣れ親しんでいる人はユーザには多くないため、事前に聞かれても困ることはよくあります。そのため、この機械学習モデルがうまく作れたとして、その結果を何に使うのか、結果を見てどうアクションするのかを事前によく話し合う必要があります。
機械学習を試したいだけで必要とはしていない
これはブームの最中には本当によくあるケースで、技術者としては最も困ります。ある技術を試すと次は別のものを指定され、何かを提案すると他の技術にも興味を示します。そしてさんざん試した後に、担当者の知的好奇心だけが満たされ、何もビジネスインパクトを生みません。
もしこれがITベンダーなら、こんなにありがたい顧客はないでしょう。もし社内のデータサイエンティストなら、こんなに虚しいプロジェクトはないでしょう。
本質的に機械学習に向かない
最後に別の観点を紹介しましょう。従来の技術で十分な場合や、機械学習に本質的に不向きなケースです。
シミュレーションで事足りている
基本的な統計解析で十分
データの可視化ができれば十分
これらいずれの場合も、機械学習に興味があるものの、要するに現状に困っていません。こういうときに、わざわざ用いるほど機械学習は万能ではありません。確率モデルなのでエラーは必ず含まれますし、中身がブラックボックスというマイナス面もあります。一方で、困っていないユーザには機械学習のプラス面を訴求することは難しいため、結局はお蔵入りする結果になります。
データがない
デジタルデータにできない
これは “データ” サイエンスにとって致命的です。何とかなりませんかと言われてスモールデータを解析してみるものの、簡単な統計解析以上のことはできず、ユーザを落胆させることになります。
同様に、デジタルデータにできないプロジェクトも無理筋です。人の心の動きをアンケートで書き出してもらったものの、その瞬間をうまくデータにできず、代替指標では役に立たなかったケースなど容易に想像できるでしょう。
予測の中身を完全に説明できないと適用できない
よくあるのは、意識の高い本社が機械学習の可能性に惚れ込んでプロジェクトが始まったものの、いざ適用しようとすると現場の反発を食らうケースです。これまでのやり方にプライドを持つ現場は、納得しない限り機械学習を使おうとしません。しかし機械学習はブラックボックスなので、説得材料は足りません。結果として現場が中身を完全に理解できるまでモデルを単純化せざるを得ず、最終的にルールベースの、機械学習は見る影もないような形で実装されたりします。役に立てば取り組まないよりいいのですが、大きく迂回した感は否めません。
精度100%でないと適⽤できない
これも同様で、精度100%を目指すと、結果的に機械学習は使えないと言う結論に達します。あるいは閾値をとんでもなく厳しいところに置いた結果、例えば検品時の目視数がほとんど減らないといったように、ビジネスインパクトがほぼゼロになってしまうことがあります。本当に精度100%を目指す必要のあるプロジェクトなら、機械学習は向いていません。
一方で、例えば品質保証チームがプロジェクトオーナーだった場合に、立場上は精度100%を目指そうとしか言えないようなケースもありますが、ビジネス全体の責任者をオーナーにすることでリスク許容度を設定できることもあります。
本質的に系がどんどん変化する
データサイエンスは、未来のデータは過去のデータにノイズが乗ったものだと考えます。トレンドが直線的だったり周期的だったりすれば考慮できますが、本質的に新しいことがどんどん起きる場合には、データサイエンスは無力です。例えばセキュリティリスクに関して明日や明後日の傾向は予測できるでしょうが、量子コンピュータが実用化された何十年後の状況を占うことはできません。
特徴を活かした実装を目指す
こうやって振り返ってみると、機械学習というのもなかなか癖のある技術です。しかし、わずか10年前まで統計・情報分野の一部でひっそりと研究開発されてきたものが、いまや毎日のようにメディアを賑わすところまで来た昨今、誇大広告は避けられないにしても、せめて相応しい用途に適用してほしいという思いはあります。本稿が、虚実ないまぜのAIブームの片棒を担ぐのではなく、本当の意味で機械学習の社会実装に少しでも寄与できれば幸いです。