【第52回】AIはまっすぐ進めないとき距離をどう測る?マンハッタン距離とは
街の道路のように、斜めに進めず縦横だけで移動する場面を想像してみてください。
そんなときの距離の考え方が「マンハッタン距離」です。
この記事では、ユークリッド距離との違いも含めてやさしく解説します。
1. 読み方
マンハッタン距離 = まんはったんきょり
2. 意味(定義)
マンハッタン距離を一言で言うと、「碁盤の目のように張り巡らされた道を、カクカクと曲がりながら進んだときの距離」のことです。
前回の「ユークリッド距離」は、空を飛ぶドローンのように直線で結ぶ距離でしたね。 でも、現実はそう簡単ではありません。
想像してみてください。あなたは今、ビルがぎっしり立ち並ぶニューヨークのマンハッタンにいます。 目的地まで行きたいけれど、ビルを突き抜けて歩くことはできませんよね?
まずは「東に3ブロック」進む
次に「北に4ブロック」曲がる
そして目的地に到着!
このように、「縦の移動距離」と「横の移動距離」を単純に足し算した距離のこと。これがマンハッタン距離です。 (ちなみに、数学の世界では「L1距離」とも呼ばれます)
3. 歴史・背景
なぜ、わざわざ「直線」ではなく「カクカクした距離」なんてものを考えるのでしょうか?
実は、AIが扱うデータは、私たちが普段見ている「2次元の地図」よりもずっと複雑で、次元(データの項目数)が非常に多いことがよくあります。
データが大量にある世界(高次元空間)では、直線距離(ユークリッド距離)を計算しようとすると、計算量が増えすぎたり、データの特徴をうまく捉えられなかったりすることがあります。
そこで、「シンプルに各項目の差を足し合わせればいいじゃないか」という考え方が生まれました。これがマンハッタン距離の便利なところです。計算がとてもシンプルなので、コンピュータにとっても処理がしやすく、特定の状況では直線距離よりもデータの「本質的な違い」をうまく表現できることが分かってきました。
4. 比較・対比(似た用語との違い)
前回の「ユークリッド距離」と改めて比較してみましょう。
【ユークリッド距離】(鳥の視点)
ルート: 2点を直線で結ぶ「最短ルート」。
イメージ: 空を飛ぶドローン、あるいは真っさらな野原を歩く感じ。
特徴: 2点間の「絶対的な最短距離」を知りたいときに最適。
【マンハッタン距離】(タクシーの視点)
ルート: 軸に沿って直角に曲がりながら進むルート。
イメージ: ビル街を走るタクシー、あるいは格闘ゲームのキャラクターがタイル状のマップを移動する感じ。
特徴: 各項目(軸)ごとの差を個別に評価して合計したいときに最適。
5. 活用シーン(実社会のどこで、どんな問題に使うか)
① データの「重要な項目」を選び出す(Lasso回帰) AIに予測をさせるとき、項目が多すぎると混乱することがあります。マンハッタン距離の考え方を取り入れた計算手法(Lasso回帰といいます)を使うと、「あまり重要ではない項目の影響力をゼロにする」という処理がしやすくなります。これにより、AIが「どのデータが本当に重要か」を人間が理解しやすい形で提示してくれるようになります。
② ゲームやロボットの経路探索 例えば、チェス盤のようなマス目状のマップを移動するゲームAIや、倉庫の中を格子状に移動する配送ロボットが「目的地まであとどれくらいか」を計算するときに使われます。壁がある世界では直線的に進めないため、マンハッタン距離で計算したほうが、より現実的な移動距離を把握できるからです。
6. G検定での出題傾向
G検定では、ユークリッド距離との「使い分け」や「定義」が問われることが多いです。
定義問題: 「軸に沿った距離の絶対値の和を求める尺度はどれか?」という形式。
概念の理解: 「マンハッタン距離はL1距離とも呼ばれる」という名称の一致。
性質の理解: 直線距離(ユークリッド)ではなく、格子状の移動を想定している点。
「マンハッタン = タクシー = カクカク = L1」というセットで記憶してしまいましょう!
7. G検定の例題
【問題1:最頻出(基礎的な定義)】
2つのデータ点間の距離を測る際、各次元における差の絶対値の合計を計算する手法はどれか?
A. ユークリッド距離
B. マンハッタン距離
C. コサイン類似度
D. マハラノビス距離
【問題2:頻出(特徴に関する問題)
マンハッタン距離に関する記述として、適切なものはどれか?
A. 2点間を直線で結んだ最短距離を求める手法である。
B. ベクトルの向き(角度)を用いて類似度を測る手法である。
C. データの分散や相関を考慮して距離を測る手法である。
D. L1距離とも呼ばれ、軸に沿った移動距離の合計を求める手法である。
【問題3:ひっかけ(勘違いしやすいポイント)】
2次元平面上の点A(0, 0)から点B(3, 4)までの距離を測る際、ユークリッド距離よりもマンハッタン距離の方が「値が大きくなる(または等しくなる)」か?
A. 必ず大きくなる
B. 必ず小さくなる
C. 常に同じ値になる
D. データの分散によって変わる
8. 7の例題の回答と解説
【問題1:回答】 B
【解説】 正解はBです。「各次元の差の絶対値の合計」というのは、まさに「縦にどれだけ、横にどれだけ進んだかを足し算する」ということなので、マンハッタン距離の定義そのものです。
【問題2:回答】 D
【解説】 正解はDです。
Aは「ユークリッド距離」の説明です。
Bは「コサイン類似度」の説明です。
Cは「マハラノビス距離」の説明です。 マンハッタン距離 = L1距離 という別名もしっかり押さえておきましょう。
【問題3:回答】 A
【解説】 正解はAです。
ユークリッド距離(直線)なら:5
マンハッタン距離(カクカク)なら:3+4=7 直線が常に最短ルートになるため、カクカクと曲がって進むマンハッタン距離は、直線距離よりも必ず「等しいか、あるいは大きくなる」ことになります。ここは直感的にイメージしておきましょう。
9. Ankiアプリ用(CSV形式)
マンハッタン距離とはどのような距離のことか?,2点間の各次元における差の絶対値の合計(軸に沿った距離の和)。
マンハッタン距離の別名は何か?,L1距離。
ユークリッド距離とマンハッタン距離では、どちらが常に値が小さくなるか?,ユークリッド距離(直線が最短であるため)。
マンハッタン距離が活用されるAIの例は?,Lasso回帰による特徴量選択や、格子状マップの経路探索。
マンハッタン距離を例えるならどのような移動か?,ビル街(マンハッタン)をタクシーで走るように、道を直角に曲がりながら進む移動。
📝 総評・まとめ
お疲れ様でした!今回は、現実世界の「道のり」に近いマンハッタン距離について学びました。
「直線が最短」というのは当たり前のように感じますが、AIの世界ではあえて「カクカクした距離」を使うことで、データの重要なポイントを見つけ出したり、効率的に計算したりしています。数学的な視点を変えることで、AIはより賢く判断できるようになるんですね。
✅ 絶対に覚えて!
マンハッタン距離 = 軸に沿った距離の合計(L1距離)。
イメージは「ビル街を走るタクシー」。
ユークリッド距離(直線)よりも、値が大きくなる傾向がある。
🚀 次回予告 さて、これまで「距離」という物差しの話をたくさんしてきましたが、いよいよここから「AIがどうやって学習するのか」という本丸の話に入ります!
【第53回】AIはどうやって学ぶ?教師あり・教師なし・半教師あり学習とは
✅ この記事が役に立ったら「スキ」で応援してください!
あなたの応援が、次の解説を作るエネルギーになります!🚀
