見出し画像

だから機械学習モデルで外挿するときは注意しないといけない

たまにはデータサイエンティストみたいなことを書こうかと思う

一応、私は密かにデータサイエンティストです。なので、たまにはそれっぽいことを書いたりします。
というわけで、今日は何かみんな忘れているなと思っていることを書きたいと思っています。
まぁ、ネタはありきたりな話。外挿の話なんですけどね。

機械学習モデルで知らないといけないそもそもの問題点

まぁ、回帰問題でも分類問題でもなんだったら外れ値の検出問題でも全て一緒なのですが、機械学習は外挿領域について回答を出すことがとても苦手です。
そんなことは当然知っている!って思う人が多いと思うのですが、どうも最近の動きを見るとそうでもないような気がするのです。

具体的には、ChatGPT とかが誤った解答をするケースですね。まぁ、知らなきゃそうなるというのは当然なのですが、そういう会話で内挿とか外挿とかを気にしている人が少ないような気がするのです。

機械学習で外挿のデータを与えるときの一番の問題点

とても深刻な機械学習の問題です。多くの機械学習モデルは知らないと言わないのです。
確信度的なパラメタが出力されますけど、別にこれは割合を表しているだけで、そこに知っている知らないという観点は含まれません。
まぁ、カーネル密度推定みたいな手法を併用することで、データ密度を調べ、密度が低いとそもそも知らない=外挿であるという判断も出来ます。けど、カーネル密度推定自体がそんなに速くないですし、この辺をちゃんと考えたモデルを使っているという例はほとんど聞かないというのが現状です。
私は前職ではその辺のテーマも考えていたのですが、諸々あって前職を辞したのでその技術は闇に葬られました。この辺は恨み節にしかならないのでこれ以上は書きませんが、その当時から今までもうそろそろ10年ぐらいになるのですが、未だにそこにフォーカスした機能を作っている会社に心当たりはありません。研究はやられているみたいですが…

まあ、色々書いたけど近くにデータがない時、機械学習モデルは結構いい加減な回答をする。これは、シンプルなモデルであっても複雑なモデルであっても同じ。機械学習モデルのどうにもならない欠点だと思ってください。

だから ChatGPT も間違える

別にこの問題が ChatGPT とかの LLM で解消されたなんて話、少なくとも私は聞いたことありません。そもそも、外挿が解けるようになったらそれはもの凄いニュースです。
私は、外挿領域については学習でやるものではなく、シミュレーションなどの物理法則なり何らかのルールに基づいて実験・評価するのが正しいと思っています。そこでシミュレーションをした結果を学習データに加えるならば加えれば良い。ただ、物理データと混ぜるのは正直駄目だと思いますけどね。物理データのモデルの対としてシミュレーションベースで作ったモデルも持ってきて双方で評価するのが多分良い。

話がそれた。

だから、学習していない領域については ChatGPT も当然嘘をつきます。そして、ChatGPT は嘘であってもその後の文字列生成のところでなんかそれっぽい文章にしてしまうんで、人間の多分嘘だけどねっていうニュアンスが一切入らないんですよ。騙されちゃいますよね。

なんで他のモデルと同じなの?

ChatGPT もいくら頑張ったって高次元のベクトル空間で表現したモデルを経由しちゃうからです。まあ、細かい内部構造とかは推測するしかないのですが、ベースとなっている技術が機械学習ベースである以上、避けて通っているとはとても思えないのです。
そして、外挿領域の判断は次元が増えれば増えるほど難しくなる。多分、パラメタ数とかから考えると、次元数も億ぐらいいっていてもおかしくない。最近のリッチなモデルは次元数なんかもう気にしていないんで、次元数は増えていく一方でしょう。そんな高次元空間のデータ密度を調べて、薄いところを見つけ出すというのは、正直とてもしんどい。でも、これができるとモデルの欠点が明らかになるのでとても良いのですが。手間と計算量の問題ですかね?やっているという話は寡聞にして聞いたことが無いのですよ。

そして冒頭の話に戻る

だから、ChatGPT にせよ他のLLMとか生成系AIとかも、外挿領域は当然間違えます。画像生成とか、文書作成もいっしょ。ただ、モデルの出力結果から画像や文章を作るところは、知らなくても適当にやってくれる利点を大いに使っているんだろうなーとは思いますけど。でも、そういったものを生成する前の元ネタが既に嘘ついているんだから、画像化とか文章化をどれだけ頑張っても駄目ですよね。そして、モデルの複雑化のスピードが圧倒的に速いので、この方面についてはかなりおろそかになっている。いつかはこの差が問題になって埋めないといけないフェーズがくるんだろうなとは思いますが、私が仕事をしている間にそうなる可能性はとても低いんだろうなと勝手に思っています。

おわりに

まぁ、これも戯れ言ですよ。単なる野良のデータサイエンティストが一人で騒いでいるだけ。多分、こんなこと無視して先に突き進んだ方がお金になるし、学習データが増えれば勝手に解決していく問題でもありますし。まぁ、学習データの増えるスピードよりも当面は次元の増えるスピードの方が上回っているような気がしますが…。これは、私でどうこうできる問題でもないですから。

だから、利用者側の人が出来ることは結果を信用しない結果を鵜呑みにしないということです。機械学習モデルはしれっと嘘をつくということ忘れてはいけません。
これを書くと勝手な解釈をして機械学習モデルは駄目という人が出てくるので嫌なのですが、その解釈は間違いです。問題を適用する範囲で外挿が発生しないようなデータセットを用意すれば当然こんな問題は起きません。だから、任意の画像の認識では外挿問題が出てきますが、工業系とかで、モデルで評価するデータがそこそこ定まっているような課題だとこの問題は余り出てきません。不要な外挿の考慮をしなくても良いからです。物事そんなにシンプルに考えちゃダメです。ケースバイケースを無視する人はいっぱいいますが、それは理解することを放棄しているだけですね。

ああ、また話がそれた。

だから、機械学習モデルの欠点を認識し、欠点を知った上でどう使うべきかを考えることは、昔も今もずっと変わらず必要な事です。ChatGPT みたいな何でも来い!っていうモデルはもう簡単に外挿問題にぶつかります。
CRISP-DM で定義しているデータの理解フェーズはだからこそ重要なのです。

この文章を読んで、もやっとでも良いので課題意識を共有してくれる人がいてくれると、私としてはとても売れ苦思います。

今日はちょっと真面目な話題でした。

この記事が気に入ったらサポートをしてみませんか?