(By Gufosowa - Own work, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=82298768)
ここ最近、事あるごとに僕が色々な人たちに提案している概念として"ML design"というものがあります。これは元々"ML Ops"(DevOpsと同じように機械学習のシステム基盤などを包含する考え方)に対して「機械学習モデリングを運用する上で注意すべき点って多いよね」ということで、その注意点をまとめたものを一つの体系として扱えないかという趣旨で僕が勝手に言い出したものです。
言い方を変えると、統計分析に適したデータを集めるための実験計画法(experimental design)があるのと同じように、機械学習に適したデータの集め方やその交差検証などのやり方についてもまとめた計画法(design)があっても良いのでは、というのが僕が考えたオリジナルの課題意識です。実験計画法だとラテン方格とか色々習うわけですが、機械学習の世界ではそういう話は意外とまとまって教科書には載っていません。勿論それがコンペの成績に直結するKagglerや実データによる性能検証が論文の肝になるような研究者の間では常識なのでしょうが、近年になって急増した機械学習エンジニアを初めとする実務家の、特にジュニアレベルの人たちには意外と知られていないことが少なくないという印象があります。
これ自体は割と以前から考えていたことで大した話ではないと思っていたのですが、最近になってその重要性を実感する機会が増えてきました。それは、AutoML技術の普及です。
大手tech各社含めて非常に多くのML enterprise playersがAutoML即ち機械学習の自動化ソリューションを提供するようになって久しく、特にこの1-2年でそのユーザーもグッと増えた感がありますが。。。それまで全く機械学習の経験も全くないのに巷で付け焼き刃でAutoMLを触っている人たちを見ていると「???」となることが少なくないんですね。
例を挙げていくと「人工知能なんだから何でも出来るよね」と言って回帰でも分類でもないLTV (Life Time Value)推定モデルを何故か走らせようとしたり、不均衡データの補正を全く行わずに分類モデルを作って「ACC 98%だ、これすげー!」と喜んでいたり、はたまた全力でリークだらけのデータをかませて「ACC 100%だ、俺完璧じゃん!」とドヤ顔していたり。。。そんな光景、皆様の周りでも見られたりしませんでしょうか?*1
というような悲喜劇や狂騒曲を避けるべく、機械学習のモデリング手法や理論やアルゴリズムといったコアの「外側」にある「メタ」な枠組みについて、僕が個人的に考えたところをまとめてみようと思います。なお、毎度のことで恐縮ですがここで挙げているのは僕の個人的な理解に基づく個人的な持論に過ぎません。以前同様に誤りや理解不足の点がありましたらどしどしご指摘いただけると有難いですm(_ _)m
続きを読む