はじめに
今回は機械学習でよく表れる距離の最小化(あるいはKLダイバージェンスなどの最小化)について少し詳しく調べて書いてみます。特にKLダイバージェンスは確率分布の隔たり具合(あるいは離れ具合)を測るために用いられると、何となく理解している方は私を含め沢山いらっしゃると思います。
なぜにKLダイバージェンスが確率分布を測るのに適しているのかは、ザッと概要的ではありますが以下の記事で触れました。
今回はもうちょっと数学的に詳しくこの話を見ていきたいと思います。
注意事項
この手の話を真面目に論じるには統計多様体を数学的に扱うために微分幾何学が必要だそうですが、私自身数学の高度な教育は受けていませんし、腰を据えてしっかり取り組んだ経験もありません。
従って、この記事には何か誤解が含まれている可能性も十分にあります。仮に詳しい方からご意見や指摘をいただけるのなら幸いだなという気持ちです。
点と点の離れ具合を測る
ユークリッド距離は極めて限定的
点と点の離れ具合を測るのに最も馴染み深いのは以下のユークリッド距離ではないでしょうか。
何となく二点間の距離を測ってくださいと言われたら、すぐにコレが思い浮かびます。しかし、日常の中でもこの測り方はおかしいのではないかと思える場面に出くわします。
例えば、「会社からの距離が20km以内に無い場合は、通勤のための特別手当を出します」という文言があったとしましょう(以外にもこの距離での区切り方はよくみかける)。これを見れば、20km以内にあるか否かは極めて重要な問題でしょう。
19kmだった人は泣き、21kmだった人は喜ぶことでしょう。どこかで区切りを設けることは必要です(もちろん線形に支給額を決めることもあるかもしれないが)。しかし仮に以下のような人が居たとしたらとっても気の毒に感じます。
会社からの直線距離は10km以内だが、道中に大きな山と川があり、これらを迂回してくるために40kmもの道のりを通ってこなければならない場合です。直線距離で測るのはおかしい。できれば実距離で判断してほしいと思うはずです。
このような問題は距離を測る際に、どのような線をつなぎ合わせていったかに由来します。今回の場合は、実際に人間が通ることのできる経路に沿った距離が重要だということになります。
測るための座標
ここで点と点の距離を測るということをもう少し真面目に考えてみましょう。曲がりくねった道の距離を測るためには、それ相応に計算が必要になります。2点が決まったとて、直線距離のようにすぐに求まりそうにもありません。
しかしここで曲がりくねった道のごく一部をを見てみましょう。
ある特定の部分だけを見てみるとほとんど直線です。曲がりくねった道も局所的に見れば直線的に移動していると考えて差し支えなさそうです。そうであれば、局所的に直線だと考えて後で繋ぎあわせてしまっても良さそうです。
ユークリッド距離とは、点と点が常にまっすぐ繋がっているものと想定した場合に妥当な測り方と言えそうです。
先ほどのように実際の経路がグネグネに曲がっているとすれば、そのような経路を反映した測り方が必要になります。
普通、地図では東西南北が示されており、特に北と東さえ把握していればどの方向にどれだけ進んだかが認識できます。これは言わば北と東を座標に使っているということです。直線距離というのも北に何km、東に何km進んだかが分かればすぐに計算できます。
もしもここで距離の単位として「km」ではなく「m」を使ったとしても、そのことさえ把握していれば問題ありません。一方で、座標として北と東の代わりに西と南を使ってもいいですし、北東と南東を使っても問題ないはずです、もちろんそのことさえ把握していれば。
分布と分布の離れ具合を測る
ユークリッド距離では測れない
さて、機械学習では確率分布と確率分布がどれだけ近いかを知りたい場合があります。例えばデータが確率分布から生起しているとした場合に、学習で求めたが本物の分布にどれだけ近いかを評価したい場合などです。
確率分布と確率分布を測るにはどうしたら良いでしょうか、例えば正規分布なら
という式で表されるわけですが、その形状はによって決定づけられます。そのため、大抵はをパラメータに持つ正規分布をなどと表します。
仮に2つの正規分布との離れ具合を測る関数があるとしましょう。もしもかつの場合には、全く同じ正規分布なわけですから、
となっていて然るべきです。
もしもで表される2次元空間に、とをプロットして、
とユークリッド距離を図ってみることにしたらどうでしょうか。確かにパラメータが完全に一致していれば、値はとなります。しかし、これらのパラメータをプロットした点が次第に離れていった時、確率分布の離れ具合を上手く表現できると言えるでしょうか。
この測り方だと、のずれ具合とのずれ具合は対等に扱われることになります。しかし、正規分布の平均と分散は明らかに別の意味を持っており、対等に評価して良いものだとは到底思えません。
これはパラメータをプロットできるような空間に対して、如何にして真っ当な計量を与えるかという問題になります。
KLダイバージェンス
KLダイバージェンスとは、確率分布と確率分布の離れ具合を真っ当に評価できる計量です。確率分布からへのKLダイバージェンスは以下で表されます。
今「からへの」という表現をしました。これは確率分布を入れ替えた「からへのKLダイバージェンスと一致しないからです。方向性を考えなければいけません。ユークリッド距離の場合は点と点を入れ替えても距離は同じでした。KLダイバージェンスではそうはいかないようです。
仮にでとしてみましょう。代入すれば以下のようになります。
今回は正規分布を代入しましたが、正規分布とポアソン分布などをそれぞれ代入しても構いません。異なる種類の確率分布同士を比較することもできます。
ユークリッド距離の時に比べたらえらく複雑に見えるのではないのでしょうか。こんなものが本当に上手い計量を与えると言えるのでしょうか(言えるのですが、空間に上手い計量を与えることは難しい)。
空間に計量を与える
二次関数を考えてユークリッド距離を導く
計量を与えるということは、何かしらの隔たり具合を評価するということです。まず、形式的にユークリッド距離というものがどのように導かれ、どのように妥当だと言えるのかを見ることにしましょう。
今、がの二次関数だとしましょう。例えば以下のような形をしているとします。
仮にの点ではとなっています。の場所ではとなっています。さて、ここでとという点の隔たり具合はどれくらいだと評価すると良いでしょうか。
との差がなので、隔たりはと評価するのが良いのでしょうか?実はそうではありません。天下り的ですが、実は以下のように評価することができます。
の点では、接線が以下の式で表されます。
(接線の方程式はで求まります)
もしもを基準に、を右にずらして行った場合、順調に(線形に)値が増加すれば、でという値を取るはずでした。
しかし今回与えたのもとでは、でという値になっています。そこで、の変化に対して線形に変動した時に到達するはずだった値(今回の場合)と、現実に到達している値(今回の場合)の差をから見た隔たり具合として定義することにします。
要所を拡大すれば、以下の黒線の部分が「隔たり具合」の定義になります。
すると、との隔たり具合はとなりますし、ととの隔たり具合はになります。
からの隔たり具合は二次関数から接線の値を引いて得られるわけですから、これをそのままプロットしたしてしまうことにしましょう。そのときのプロットは以下になります。を中心にこれもまた二次関数になっており、しかもという形になっています。
ここで重要な性質がを基準にして隔たりを測ることで見えてきます。同じようにで接線を引き、
これに対して、青線から緑線を引く(つまりからの隔たり具合)を見ると以下のプロットが得られます。
隔たり具合はを中心とした二次関数の形をしているのです。どこから隔たりを測ろうとも、基準からの隔たり具合はという形式で表されるのです!
これはという2次元に対してスカラーという二次関数を考え、同様の議論をすることで、との隔たりを
と表すことができます。これはユークリッド距離の二乗になっており、今二次関数からユークリッド距離に相当する計量が導かれたのを見たのです。
そうであれば、計量を考える上で他のスカラー関数を考えて、同じように接線(あるいは接平面)を構築し、スカラー関数と接平面との差を取ってやれば異なる計量が得られるはずです。
一般的にスカラー関数から計量を獲得する
一般的にはなるパラメータに対して、適当なスカラー関数を与え、基準としたい点の接平面
を計算し、そして隔たり具合を
と与えれば良いことになります。より詳細には以下(代入しただけ)。
しかし、本当はスカラー関数は何でも良いわけではありません。凸関数であることが条件です。もしもこれが凸関数じゃない場合、例えばという単純な例を考えてみても、を基準にした計量が
とかなりへんてこりんになってしまいます。で隔たりなのは良いとして、との隔たりもだなんてめちゃくちゃですね。こういうことにならないためには、離れれば離れるほど接平面から遠ざかるように凸関数である必要があるわけです。
KLダイバージェンス
確率分布を引数に取る凸関数として
を選べばKLダイバージェンスが導かれるようです。これはエントロピーの符号を反転させた凸関数となっています。
きっと他にもいろいろな凸関数を考えることができるでしょう。
KLダイバージェンスがいい感じの計量になっているということはもうちょっと先に進まないとわからないようです。点と点の距離を測るための方法では、ユークリッド距離というものがずっと身に沁みついていますが、それはほんの一部に過ぎません。
本当は空間に対して妥当な計量というのはもっと綿密に考えなければならないようで、その導出の一例を見ました。