概要
ディープニューラルネットワーク(以下DNN)による予測と外挿について、自分なりに整理してみます。数学的に厳密な意味ではなく、直感的な理解を書いておきたいと思います。お気づきの点や理解の間違いなどがありましたらコメントにてお知らせください。
本記事は、「DNNは外挿が苦手」という言い方に少し引っかかったことがある方向けに、意味を整理することを目的としたものです。
「DNNは外挿が苦手」という言い方自体は大きく間違っていないと思うのですが、実際に起きていることを考えると、これは古典的な意味の外挿というより、OOD(Out-of-Distribution)の話として捉えた方が整理しやすいのではないかと感じます。
以下ではこの外挿とOODについてまとめてみます。同様のことを感じられた方の参考になればと思います。
まずは単純な関数フィットで考える
まず簡単な関数のフィットについて考えます。あるデータについて $$f(x)=a x^2 + b x + c$$ をフィットすることを考えます。この場合は関数の形が最初から決まっているので、調整するのはパラメータ $a$、$b$、$c$ だけです。実験データに対する二乗誤差が小さくなるようにこれらのパラメータを合わせていくことになります。
もし実験データが $x_{min} < x < x_{max}$ の間で得られていたとすると、その範囲の外は外挿を行うことになります。このとき$x$ が実験データの範囲からずれればずれるほど、結果は仮定した関数の形に強く依存することになります。したがって、その関数形が対象をうまく表していると期待できる場合を除けば、外側での値はだんだん信用しにくくなります。
DNNでは何が少し違うのか
一方、DNN では事情が少し違います。
DNN も最終的には関数近似をしているのですが、低次の多項式のように、最初から単純な関数形を決めているわけではありません。非常に多くのパラメータを持ち、データに合わせて複雑な表現を作っていきます。直感的には、学習によって形を変えていく、かなり自由度の高いものとして見たほうが分かりやすいと思います。
その結果、学習データに対しては高い精度が出ても、DNN が何を手がかりに予測しているのかは外からは見えにくくなります。人が見て自然だと思う特徴を見ているとは限らず、DNN が学習の中で獲得した特徴表現に基づいて予測している、と考えるのが自然です。
「DNNは外挿が苦手」という言い方への違和感
ここで、以前から少し気になっていたことがあります。
DNN について「外挿が苦手」と言うとき、古典的な関数近似でいう外挿と、同じ意味で使っているわけではないことが多いのではないか、という点です。
整理のためにかなり単純化して言うと、
-
外挿: 学習に使った入力範囲の外で予測する話
-
OOD: 学習時のデータ分布から外れたデータに対する話
と見ると分かりやすいと思います。
古典的な意味での外挿は、学習に使った入力範囲の外側で値を出すことです。
しかし DNN で実際に問題になりやすいのは、単に入力値の範囲が外れていることそのものよりも、学習時のデータ分布から外れたデータに対して性能が落ちることのように思います。
これは一般に OOD(Out-of-Distribution)と呼ばれる話です。
たとえば、取得条件がかなり違う画像や、見た目が大きく違う画像を入れると、DNN の予測精度は落ちやすくなります。同じことは画像以外でも起こります。たとえば、学習時とは測定環境の違うセンサデータや、学習時にはあまり現れていなかった運転条件のデータを入れたときにも、モデルの性能が落ちることがあります。学習時と異なる「異質な」データを入力すると精度が落ちる、という言い方ができると思います。
このことをざっくり「外挿が苦手」と呼ぶのは分からなくはないのですが、少なくとも自分の中では、ここで本当に問題になっているのは OOD のほうではないかと考えたほうが整理しやすくなりました。
DNNにとっての「異質さ」は人間の感覚と一致するとは限らない
「異質な」データは学習時の分布から離れたデータ、OODであると考えることができます。
ここで少しややこしいのは、人間から見た異質さと、DNN にとっての異質さが一致するとは限らないことです。
人は、見た目がかなり違うとか、取得条件が違うとか、入力パラメータの値が大きく違うといったことで、「これは学習データと離れていそうだ」と感じます。もちろんそれが当たっていることもあります。
しかしDNN が最終的に使っているのは、人間の見た目そのものではなく、内部で獲得した特徴表現です。
そのため、人の目にはかなり違って見えるデータでも、DNNの内部表現の上では近いものとして扱われることがあります。逆に、人間にはほとんど同じに見えるデータでも、DNN にとってはかなり違うものとして扱われることがあります。
Adversarial Example は、その分かりやすい例だと思います。人間にはほとんど違いが分からない程度のノイズなのに、DNN は別のクラスとして分類してしまうことがあります。
このことからも、人間が感じる「似ている」と、DNN が内部的に感じている「似ている」は、必ずしも同じではないことが分かります。
画像認識の分野では、従来の特徴量を手作業で設計する予測器と比較して、DNNベースの予測器の性能が飛躍的に向上しました。多量のデータをDNNで学習することで、DNNが有用な内部表現を獲得し、少なくとも従来より広い範囲の入力に対して高い予測性能を示すようになったと考えられます。DNNがどのような内部表現を獲得したかを直接見ることはできませんが、新しい種類のデータが来たときにも、既存データから学習した特徴に照らしてそれを捉えることができれば、正しい予測につながる場合があります。入力されたデータが既存のデータと比べて一見新規性が高く見えても、一般化性能の高い特徴を捉えることができれば、予測性能が保たれると考えることができます。
特徴ベクトルが近いことと、精度がよいことは同じではない
ただ特徴ベクトルが学習済みデータに近いからといって、それだけで予測精度が高いとは言えません。
もちろんだからといって特徴ベクトルの近さに意味がないわけでもありません。
自分の理解では、特徴ベクトルが近いというのは、その入力が DNN にとっては学習済みの内容に近い領域にある ということです。したがって、そのとき DNN は、学習時に身につけた規則に近い形で予測を返しやすいはずです。
ただ、それはあくまで 「DNN にとって既知に近い」 という話です。
モデル自体が現実をどれだけうまく捉えているかはまた別の話です。もし学習の中で偏りや不十分さが残っていれば、特徴空間で近いデータに対しても、その偏りをそのままなめらかに延長した予測を返すだけかもしれません。
特徴空間での近さが示しているのは、予測精度そのものというより、DNN にとっての既知性や新規性の低さ だということを考えておくことが大切だと思います。
外挿とOOD
ここまでの話から、次のように整理するとしっくりくるかと思います。
DNN で「外挿が苦手」と言われるとき、問題になっているのは、単純な意味での入力範囲の外側というより、DNN にとって学習分布からどれだけ離れているか です。
しかも、その「離れ方」は人間の感覚だけでは決まらず、DNN が内部でどのような特徴表現を学んだかに依存します。
この意味では、DNN に関してよく言われる「外挿が苦手」という表現は、厳密には OOD に弱いという話として読んだほうが、実態に近いことが多いのではないかと思います。
DNNの学習に事前知識を入れることの意味
ここまでの整理を踏まえると、モデルに事前知識を入れることにも自然につながります。
モデルがどのような特徴表現を学び、学習分布から少し外れた状況でどう振る舞うかは、何を自由に学習させ、何をあらかじめ与えるか(=どのような制約を与えるか)にも関係しているはずです。
もし学習対象について何らかの知識があるなら、それを前提に学習を進めることで、DNN の自由度を適切に制約できます。これは、すべての関係をデータだけから学習させるよりも効率的な場合がありますし、学習データから少し離れた状況での振る舞いにも関係してくるはずです。つまり適切な事前知識を与えることで、学習データに含まれない特徴を持った入力データに対しても予測性能を保つことが期待されます。
たとえば物理データを扱うとき、背後にある運動方程式や保存則の一部が分かっているなら、そうした関係まで含めて全部をデータから学習させるのは、やはり少し非効率に思えます。微分関係のような、ある程度あらかじめ分かっている構造まで、学習によって一から獲得させるのはとても非効率だと考えられます。
そこで、物理法則を制約や事前知識として学習に組み込むことで、データ学習の効率を上げたり、学習データから少し外れた条件での振る舞いに意味を持たせたりしようという考え方があります。PINN(Physics-Informed Neural Networks)は、その代表例の一つです。
もちろん、事前知識を入れれば何でもうまくいくわけではありません。ただ、何を自由に学習させ、何をあらかじめ与えるかという設計が、モデルの振る舞いに大きく関わるのは確かだと思います。
おわりに
新しいデータを見たとき、取得条件やパラメータの値が学習データと一見ずれているからといって、それだけで「外挿だから精度が出ない」と言ってしまうのは、少し雑かもしれません。
もう少し大事なのは、そのデータが DNN にとってどの程度 OOD なのか、つまり学習済みの表現空間から見てどれくらい新規なのか、ということだと思います。
ただし、その新規性の低さは、DNN にとって見慣れた領域にあることを示すだけで、精度そのものを保証するわけではありません。
DNN の「外挿が苦手」という言い方は、古典的なイメージの外挿能力の不足として捉えるより、OOD に対する弱さとして捉えたほうが腑に落ちる、というのが現在の私なりのまとめです。
同じような引っかかりを持っていた方がいたら、その整理の助けになれば幸いです。