
メビウスの輪には裏表がない。次元削減で平らに広げたら、どこかを潰すしかなかった
紙テープを半回転ひねって輪にすると、メビウスの輪ができる。表面を指でなぞっていくと、いつの間にか「裏側」に来ていて、二周でスタート地点に戻る。表側だけをペンキで塗るつもりが、塗り終えると全部塗れている。この輪には、表と裏の区別がそもそも存在しない——数学では「向き付け不可能」と呼ぶ。
この性質は、平面と絶望的に相性が悪い。机に置いた紙には必ず表と裏がある。裏表のあるものの上に、裏表のないものをそのまま写すことはできない。だからメビウスの輪は、切らずに平面へ広げることが原理的にできない。
一方、次元削減アルゴリズムの仕事は「3次元の点の集まりを、なるべく壊さずに2次元へ広げること」だ。つまりメビウスの輪を渡すのは、できないと分かっている仕事を依頼することになる。スイスロールは綺麗に展開でき、穴あきでも大域構造は保たれ、結び目はほどけた。では、不可能を頼まれたアルゴリズムは、どう応えるのだろう。
対照として、帯をあと2種類用意した。ひねり0回のただの帯(平らな輪)と、ひねり2回の帯だ。ひねり2回は見た目はねじれているが、表をなぞって一周すると、裏へ行かずに表へ戻ってくる。裏表はちゃんと保たれている——つまり向き付け可能で、平面に広げられる側の図形だ。裏表が壊れるのはひねりが奇数回のときだけ、というのは紙テープを2本作ると確かめられる。
実験の段取りはこうだ。3種類の帯それぞれの表面から1600個の点をランダムに拾い、その3次元座標だけをアルゴリズムに渡して2次元化する。手法はPCA・Isomap・LLE・t-SNEの4つ。「これはメビウスの輪だ」という情報は渡していない。アルゴリズムに見えているのは、ただの点の雲である。
実験に使ったコードの全文はGitHubに置いています。
展開結果: 一見どれも成功している
3種類の帯を4手法で2次元化した。色は帯の幅方向の位置(青=片方の縁、赤=もう片方の縁)。

まず「輪に沿った位置」がどれだけ復元されたかを測る。展開図の中心から見た各点の角度と、元の帯のどのあたりにいた点かを突き合わせた相関で、1なら完璧だ。結果は全条件・全手法で0.94以上。数字の上では誰も失敗していない。穴あきロールの回と同じで、指標だけ見ていると何も起きていないように見える。
しかし絵をよく見ると、ひねり0回では青と赤が内外に綺麗に分離しているのに、メビウスでは輪の途中で青と赤が入れ替わっている。
「表裏の一致度」を測る
この入れ替わりを、目視ではなく数値にしたい。測り方は素朴だ。展開図をピザのように48切れのくさび形に切る。くさびの中の各点について「中心の輪より外側にいるか、内側にいるか」を見て、それが元の帯での「どちらの縁寄りだったか」と合っているかを平均する。全点で一致すれば+1、全点で逆なら−1。裏表が保たれているなら、+1側か−1側かはどちらでもいいが、一周ずっと同じ側にいるはずだ。

- ひねり0回: 一致度は全周で正のまま。反転0回
- メビウスの輪: 一致度が+1の領域と−1の領域に分かれ、その境界で反転する
「向き付け不可能な面は、裏表を保ったまま平面に置けない」という位相幾何の定理が、アルゴリズムの出力の中に継ぎ目として現れた。定理は「どこかで必ず矛盾が出る」としか言わない。実装は、その矛盾をどこか特定の場所に置くしかない。
継ぎ目で何が起きているのか: 帯を潰していた
ここで疑問が湧いた。表と裏が入れ替わるには、帯がどこかで自分自身と重なっていなければならないはずだ。そこで重なりの証拠を探した。展開図では隣どうし(最近傍8点)なのに、元の帯では輪に沿って大きく離れているペアを数える。もしどこかで帯が重ねられているなら、そこでは本来遠い者どうしが同じ場所に押し込まれるから、この「偽の近所付き合い」が必ず検出されるはずだ。
結果は0.0%。重なりは作られていない。ではどうやって反転を実現したのか。
答えは帯の幅にあった。さっきの48のくさびごとに、点の半径方向の広がり(95%点と5%点の差)を「帯の幅」として測る。

メビウスの輪は、反転位置で幅が中央値の14%まで潰れていた(ひねり0回は0.85〜1.11でほぼ一定)。重なりを作らずに表裏を入れ替えるために、Isomapは帯をそこでほとんど1本の線まで絞っていたのだ。しかも右の図が示すように、くびれる角度と反転する角度はぴったり一致している。幅がなければ、外側も内側もない。表裏の矛盾は、表裏という概念ごと1箇所で消してしまうことで解消されていた。
平面に収まらないものを平面に収めるとき、どこかに歪みを押し付けるしかない。その歪みが「くびれ」という形で1箇所に集約されていた——不可能を可能にする代わりに、局所的な情報の圧殺という代償を払っている。
手を動かして意外だったこと
いちばん面白かったのは、アルゴリズムが「嘘のつき方」を選んでいることだった。数学的に不可能な要求(向き付け不可能な面を平面へ)に対して、取れる選択肢は「破る」(帯を切る)か「重ねる」(自己交差させる)か「潰す」(局所を圧縮する)の3つしかない。Isomapは3番目を選んだ。近傍関係を壊さないことを最優先する設計なので、切ることも重ねることもできず、残った唯一の逃げ道が「潰す」だったわけだ。
そしてまた、指標は無事なのに構造は壊れているという事態に出くわした。輪の復元度は0.999。それでも表裏は入れ替わり、一箇所は原型を留めないほど潰れている。穴あきの回、結び目の回と、多様体シリーズは毎回この構図に行き着く。可視化を伴わない次元削減は、何が失われたかを教えてくれない。
この実験で言えないこと
- 「潰す」を選ぶのがアルゴリズム一般の性質だ、とは言えない。 くびれの分析をしたのはIsomap(近傍数12)だけで、PCA・LLE・t-SNEが3つの嘘のどれを選ぶかは測っていない。実際、続編で試したt-SNEは、点群を千切って平気で「破る」を選んだ
- 14%という数字は、メビウスの輪の定数ではない。 点の数(1600)・近傍数・ノイズ量に依存する実験値で、設定を変えれば深さは変わりうる。位相が保証するのは「どこかに矛盾の置き場が要る」ことまでで、置き場をどれだけ深く掘るかは実装の都合だ
- くびれの「場所」に意味はない(はずだ)。 帯はどの角度も同じ作りなので、反転がどこで起きるかはサンプリングの偶然で決まると思われる。ただし、乱数を変えて位置が動くことまでは確認していない
- この方法では「裏表がない」ことの判定はできない。 ここでやったのは、展開させてみて壊れ方を観察するという間接的な検出だ。点群から向き付け可能性そのものを直接判定する実験は、続編のおまけでやった
潰された1箇所は、平均の中に埋まる
無理な要求を通すと、システムはどこかを潰して帳尻を合わせる。潰された場所は全体の指標には現れず、0.999という成功の数字の内側で、1箇所だけが静かに原型を失う——ソフトウェアでも組織でも、見覚えのある光景だと思う。だから、平均や相関が無事なことは「何も失われていない」ことの証拠にならない。失われたものを見つけるには、48切れのくさびの幅のような、壊れそうな場所を名指しで狙った測り方が要る。
この話には続きがある。メビウスの輪の1本しかない縁に円板でフタをすると、「射影平面」という、3次元にすら置き場のない曲面ができあがる。そこではIsomapの嘘のつき方が、もう一段変わった——メビウスの輪にフタをすると「射影平面」になる。そしてこの「1箇所に犠牲を集めるか、全員に薄く嘘を塗るか」という選択は、次元削減だけの話でもない。テセラクトの影では、同じ選択が平行投影と透視投影という古典的な射影の中に、既にあった。
このブログでは、機械学習の仕組みを実際にコードで実装して確かめた実験をテーマ別に整理しています(拡散モデル・Transformer・強化学習・多様体学習・過学習など)。


