ロールケーキに穴を開けたら、優等生のIsomapは壊れるのか。「数字は無事なのに、地図は歪む」を見た
約6分で読めます

ロールケーキに穴を開けたら、優等生のIsomapは壊れるのか。「数字は無事なのに、地図は歪む」を見た


前回、くるくる巻いたスイスロール状のデータを、Isomapが相関0.992というほぼ満点で平らに展開してくれた。PCAには絶対にできなかった芸当だ。

うまくいった手法を見ると、前提を1つ壊してみたくなる。Isomapの心臓部は「近傍グラフの最短路で、シートに沿った測地線距離を近似する」というアイデアだ。ならば——シートの真ん中に穴を開けたらどうなるだろう。穴の反対側へ行く測地線は迂回を強いられ、距離は水増しされる。展開は歪むはずだ。というわけで、ロールケーキの真ん中をくり抜いてみた。

穴あきスイスロールを作る

シートを広げた座標(弧長s×幅y)の上で円形に点をくり抜き、また巻き戻す。3D空間ではこう見える。

左: 3D空間での穴あきスイスロール。渦の中ほどに穴が見える。右: シートとして広げた真の姿。弧長89×幅21のシートの中央やや右に円形の穴が開いている

穴の半径は0(なし)・4(小)・8(大)の3条件。半径8はシート幅21に対してかなり大きく、穴の上下に細い通路が残るだけになる。点の数はどの条件も1500に揃えた。

結果: 相関はほぼ無傷だった

前回と同じ評価——埋め込み軸と巻き位置tの相関——で測ると、予想は外れた。

穴なし小さい穴大きい穴
Isomap0.9920.9920.991
LLE0.9910.9880.992
t-SNE0.8740.8760.814

Isomapは大きい穴でも0.991。壊れなかった。 しかし、埋め込みの絵を見ると話が変わってくる。

3手法×3条件の埋め込み。Isomapは穴を穴のまま保存して展開している。LLEは小さい穴の条件で埋め込みがブーメラン状に折れ曲がり、穴が消えている。t-SNEは大きい穴でシートが2つの塊に引き裂かれている

  • Isomapは穴を穴のまま残して、シートを綺麗に展開した
  • LLEは小さい穴の条件で埋め込みがブーメラン状に折れ曲がり、穴が消えた。それでも相関は0.988ある
  • t-SNEは大きい穴でシートを2つの塊に引き裂いた(相関0.814)

相関という1つの数字だけ見れば「全員ほぼ無事」。絵を見れば三者三様に個性的な壊れ方をしている。昨日の記事で「要約統計量が同じでも中身は恐竜かもしれない」と書いたばかりだが、評価指標でも同じことが起きた。相関は「巻きの軸をどれだけ復元したか」しか測っていない。穴が保存されたか、シートが破れていないかは、この数字の守備範囲外なのだ。

測地線は実際、どれだけ遠回りしているのか

では、水増しされたはずの測地線はどこへ行ったのか。kNNグラフの最短路(Isomapが使う測地線近似)を、穴の反対側にある2点の間で実際に引いてみた。

穴なしと大きい穴での最短路の比較。穴なしでは最短路がほぼ直線(直線距離の1.04倍)なのに対し、大きい穴では経路が穴の上縁に沿って大きく弧を描いて迂回し、直線距離の1.23倍になっている

ちゃんと迂回していた。この2点間で水増しは1.23倍。穴をまたぐ1,200ペアで測ると、水増し率は中央値1.10倍・最大1.43倍だった。

つまり距離の歪みは確かに存在するが、穴の周辺に局所化されていて、「巻きの軸に沿って端から端まで」という大域的な距離関係は無傷で残る。相関が動かなかったのはこのためだ。冒頭の予想が外れたのは、「壊れる」の解像度が粗かったからで、正しくは「穴の近所だけ局所的に歪み、大域構造は生き残る」だった。

穴を少しずつ大きくしても、数字は一度も動じない

穴の半径を0から9まで19段階で成長させ、各時点のIsomapとLLEの埋め込みを追った。

穴が成長していくアニメーション。左は真のシート、中央はIsomap、右はLLE。穴が大きくなるにつれてIsomapの埋め込みには穴が現れて広がり、LLEの埋め込みは形を大きく変え続けるが、両者のcorr表示は0.986〜0.995の範囲から一度も出ない

19段階すべてで、相関は0.986〜0.995。一度も揺らがない。 その間、地図(埋め込み)の形は変わり続けている。指標を監視しているだけでは、この変化には永遠に気づけない。

手を動かして意外だったこと

一番の学びは、指標の「守備範囲」を体感できたことだ。相関0.99という数字は嘘をついていない。巻きの軸は本当に復元できている。ただ、その数字は穴の消失もシートの断裂も監視対象にしていない。指標が無事なことと、中身が無事なことは違う——昨日Datasaurusで見た教訓が、まさか翌日、自分の評価設計で再現されるとは思わなかった。

もう1つはIsomapの頑健さだ。前提(測地線がシート内の直線)を壊しに行ったのに、歪みを穴の周辺に閉じ込めて大域構造を守り切った。仕組みを理解して「ここを突けば壊れるはず」と思った攻撃が通らないのは悔しいが、こういう「思ったより頑丈だった」も、動かして初めて得られる相場観だと思う。

仕事でも「KPIは正常です」という報告はよく聞く。その数字が何を守備範囲にしていて、何を見ていないのか。0.99の裏で穴が開いたり塞がったりしていないか。ダッシュボードの数字が動じないことは、安心の根拠にも、油断の温床にもなる。

まとめ

  • 前回ほぼ満点だったIsomapに対し、スイスロールのシート中央に円形の穴(半径0/4/8)を開けて挙動を調べた
  • 「埋め込み軸と巻き位置の相関」はどの手法もほぼ無傷(Isomap 0.992→0.991、LLE 0.991→0.992、t-SNE 0.874→0.814)で、冒頭の「穴で壊れる」仮説は外れた
  • しかし埋め込みの幾何は三者三様に変化: Isomapは穴を保存、LLEは穴を消してブーメラン状に折れ、t-SNEはシートを2つに引き裂いた——単一指標はこれらを区別できない
  • 測地線の迂回は実在する(穴またぎ1,200ペアで中央値1.10倍・最大1.43倍の距離水増し)が、歪みは穴の周辺に局所化され、大域的な巻き構造は生き残る
  • 穴の半径を19段階で成長させても相関は0.986〜0.995から一度も出ず、「数字は動じないのに地図は歪み続ける」ことを確認した