豆寄席第30回『エンジニアリングと機械学習 ~実現場での機械学習~』参加レポート

田中 多恵子

本稿は、豆寄席第30回の開催報告です。

開催概要

タイトル エンジニアリングと機械学習 ~実現場での機械学習~
講演者 Smartium株式会社 代表取締役 江川崇氏
開催日時 2023年10月26日(木)18時30分~20時00分
講演概要 ご講演者 江川氏は、機械学習の現場にいるものが抱える課題として、世の中には多くの情報があるが、機械学習の現場で直面している課題の解決策は見つからないとお感じです。今回は、社会に役立つ機械学習の実用化に際して、ソフトウェアエンジニアが持つべきエンジニアリング的視点や念頭に置くべき事項について、事例とともにお話しいただきました。また後半30分は、弊社グループCTOの羽生田のファシリテーションで、活発な質疑応答が行われました。
■紹介書籍:
機械学習システムデザイン ―実運用レベルのアプリケーションを実現する継続的反復プロセス 
https://www.oreilly.co.jp/books/9784814400409/
「機械学習システムを本番運用するためのノウハウが書かれていて、実務家なら読み応えのある一冊」とのことです。

機械学習の精度と現場

1. 機械学習における「精度」について

  • 研究の分野では、機械学習の精度が1%向上したと論文で報告され、SOTA(State of the art:それまでの時点での最高性能)」を超えたと称賛されることがある。
  • Kaggleでも同様で、こちらはきれいに整理されたデータ(静的データセット)を使って、明確なタスクでのスコアの優劣を競っている。
  • しかし、研究の分野とエンジニアリング(現場)とにはギャップがある。
  • モデル精度が良いからといって実用に適用してよいものかどうか、という観点が必要だ。
  • エンジニアリングの分野では、モデルの精度が向上したところで、実際に得られる恩恵がなければ評価されない。
  • 精度によって得られるビジネス上の恩恵を慎重に見極める必要がある。

2. 精度と恩恵とのトレードオフ

  モデルの精度が1%上がると、その代わりとして起こること

  • 訓練のコストが増えてしまい、頻繁に訓練ができない
  • 推論のコストが増え、運用費用がかかる
  • 推論のレイテンシーが増えて、ユーザビリティが低下
  • 過剰に複雑になる場合もあり、原因究明が困難になるケースも

3. 精度の犠牲者 

  • 実社会への適用を考える場合、精度が1%向上してもいいことばかりではない。
  • 精度向上と、それがもたらす恩恵が見合うなら、精度向上により一層取り組む価値はある。
  • しかし一方で、精度を上げるために多数派を重視し少数派を切ってしまっていることになってはいないか、それに気づかないままに適用してしまっていないか。
  • 精度の良し悪しは、社会に許容されるかどうか、不利益を被るのは少数派グループだったりする。
  • 例:エッジケース ※外れ値との違いを理解すること
    モデル精度がいくら良いからといって、どこまで許容できるものか?判断がむずかしいところ。
  • よい精度が出たからといって手放しで喜ぶだけではなく、実用に展開するためのモデルであれば、その功罪をよく考えることが大切である。
  • 精度がいいとモデルの良さを説明しやすい部分もあるが、適用検討の際には、精度以外の広い視点をもつことも必要だ。

データに関する問題とその対処

1. 機械学習とデータ

  • 機械学習(マシンラーニング)とは、データから学習する能力を機械に与えることである。
  • 機械学習とデータとは、切っても切れないもので、入手可能な良質なデータが必要。
  • 従来のシステム要件との違いは、機械学習のケースは白黒つけ難い。
    従来のモデルが正しく動いているかは、判断できない。また正確性の判断は手間がかかるし、コストもかかる。
  • 機械学習では、パフォーマンスを監視するには、時間がかかる。
  • はじめはうまく動いていても時間が経つとおかしくなることがある。それが分からず(気づかず)に使い続けてしまうこともある。

2. 機械学習のデータに関連する問題点

  1) データリーク

  • データリークとは、データリーケージともいうが、本来得られるはずのないデータをモデルの学習時に使用してしまうこと。
  • 対処としては、データの出所、時系列に対して対処することが必要である。
  • 特徴量が多いとリークも多くなる。
    不要な特徴を減らすことでデータリークを防ぐことになるとも言われている。

  2) データ分析のシフト

  • モデルが扱うデータが時間とともに変化して、いつのまにか精度が悪くなることもある。
  • データのシフト分布が変わるのはやっかいであり、検出が難しいことの1つ。
  • どの期間で切り取ってモデルを作るか、周期を長くしてしまうと早く検出ができないことにもなり、どう期間をとるかは悩みどころでもある。

  3) フィードバックグループの悪化

  • フィードバックの活用はよく使われているが、予測そのものがフィードバックに悪影響することもある。
  • ランダム化して(一時的には精度が下がっても)多様なものを混入させることも方法の1つ。
    例: 「いいね」」 をシステム改善のために使おうと思っていたが、結果的に悪くなってしまった。レコメンドリストが出ると上位のものばかりクリックされ、実態よりも上位のものの価値が高まってしまった

まとめ

  • 精度は手放しで称賛しないこと
    恩恵とのトレードオフを考えること、犠牲になるものについて考える
  • データに関する関数の特徴を理解して対処することが重要
  • エンジニアリングの知見を活かし、精度”最新”以外の知見を身の回りの環境に活かすこと

所感

今回のご講演では、機械学習の成果をどのように判断して現場に適用するか、ケースをもとに具体的な対処方法や考え方も含めて整理いただき、貴重な機会となりました。お客様に分析結果を説明し、適用判断をする場面等で身につまされるお話、参考になる内容が数多くありました。現場への適用判断では、何が一番大切なのか、優先順位を誤らないように考えることが重要であると思いました。

以上です

今後の 豆寄席 へのご参加もお待ちしております!