Blog

(最終更新日:2019年11月6日)

今回のお話しの目的

機械学習の非専門家(ビジネスユーザ)が、機械学習の非専門家 (ベンダーセールスなど) から「弊社のモデルは凄いんです」トークを受けるときに、注意して欲しいことを理解してもらうため、モデル検証のポイントについて書きます。通常どういう検証をしているかを知ってもらえれば、セールストークを受けたときにも自ずと確認事項が頭に浮かぶようになると思います。

1. シンプルモデルによるベースライン設定

例えば、画像処理系のモデルは、多数のpre-trainedモデルが世の中に既に転がっています。それらを使って特徴量抽出だけすることは簡単ですし、それを使って(分類/回帰といった)典型的タスクを「ただ解かせる」だけなら、わざわざ高いお金を払ってやらせる必要のないことです。性能のベースラインを提供するモデルは、①すぐに構築可能なもの、②シンプルなもの、③これに負けたら話にならない、といったものを採用します。もちろん、既に業務導入済みモデルがあれば、それをベースラインにすべきです。またルールベースで回している業務であればやはりそれをベースランにすべきです。いずれにせよ、ベースラインを設けず独自のモデルを構築するということはあり得ません。まずこの点を押さえておきましょう。

2. 独自モデルの採用技術

独自モデルに採用されている技術には誰もが興味を持ちます。しかし注意したいのは、技術が凄そう(MITの●●先生考案とか)、技術が先端ぽい(グーグルが2019年に発表した●●とか)というハロー効果をいくら聞いても意味がないということです。そんなことよりも、適切なテスト設計がされているか、そして「自分達の」ベースラインモデルに性能でしっかり勝っているかということの方が、本来、ビジネスユーザにとっては万倍も重要だということです。やたらと採用技術を強調するセールストークを受けた場合は、ハロー効果で逃げたい「裏側」が相手にはあると察するようにしましょう。

3. 適切な検証順番

繰り返しますが、重要なのはベースラインモデルと独自モデルの性能差です。理想的には、①まずはベースラインモデルの性能を確認し、②それが実務投入された場合の不足を定量的に把握することです。それから、③モデル間の性能差を比較するです。①→②→③と進めないと、ビジネスユーザは独自モデルの導入意義が意味不明ですよね。そうであるにも関わらず、独自モデルの「性能指標だけ」を見たがる人が多過ぎます(精度99%とか)。こちらが精度の定義は何ですか?と聞いても答えられないのにです。まず、落ち着きましょう。もし、あなたの目の前のセールスが良識的な会社、良識的なプロダクトを売る人なら、①→②→③のストーリーを聞かせてくれるはずです。語らない(語れない)?察してあげましょう。細かいですが、③を見てから②を並列検討でも別にそれはいいです。

4. 適切な検証データ

どのような素性のデータを使って検証するか(したか)ということも、当然、重要です。ですので、この説明をしてくれないのは…ちょっと厳しいと思います。よく交差検証(クロスバリデーション)しました!とだけ言う人がいます。基本なんですが専門用語ではあるので、それでスルーするのは危険です。

交差検証はもちろん大切なのですが、ビジネスにおける観察データ(計画し収集されたデータではなくただ蓄積されるデータ)においては、検証としては不十分となる懸念があるので、通常は、もう少し厳しめの検証も行います。

データ発生の時系列を考慮しテストデータを採ってくる、ビジネスの繁忙期と閑散期を考慮する、ビジネスのリージョン、部品のタイプ等々、ビジネス展開時に特に気になる評価軸があれば検証方法も都度カスタマイズすることになります。例えば、音声認識モデルの場合、きれいな音声(アナウンサーの読み上げ音声)に対する性能と、訛りのある音声に対する性能を見るといったようなことです。もし、あなたの用途において後者の比重が高ければそちらの性能が気になるはずです。

つまり、検証データにもモデル使用用途観点からの構造があり、それを意識した検証設計とデータ準備を理想的にはしたいということです。こういう点に触れられず、、訓練データとは別途準備したデータで検証した程度の情報は、実質的には何も情報を提供してくれていないのと一緒です。

まとめ

相手が「性能の良いモデル」と主張するからには、以下のようなことを理解させて欲しいと思うのが健全です。チェックリストのように使ってみて下さい。

  1. ベースラインモデルが提示されているか?
  2. ベースラインとの性能差でモデルが評価されている?
  3. その性能差が何のKPIをどのくらい改善し得るのか?
  4. 性能差を生んだであろう採用技術は何か?
  5. 性能差の根拠となる検証設計や設計上の注意点が提示されているか?
  6. 検証データがモデル活用観点から準備されているか?

上記は相応のお金をもらって検証するようなケースで行われる理想的な報告事項ですから、取引前にカスタマイズされた上記情報をすべて入手しようとか、各項目別に回答を下さいのような機械的な使い方をすると、おそらくモンスター顧客のようになってしまいますので、機械学習モデルのフィージビリティ検証(PoCと言っても良いですが)を通して、ビジネスサイドとデータサイエンス サイドが協力して、上記項目を明確にしていくという意識が重要だと思います。

コメントは利用できません。