Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
次元の呪いと球面集中現象
Search
K_DM
September 19, 2021
Technology
0
1.7k
次元の呪いと球面集中現象
『次元の呪い』という言葉について、K近傍法を高次元なデータに適用した場合にどのような問題が発生するかを具体例に挙げて説明します。
動画:
https://youtu.be/DhnMnaWLo-E
K_DM
September 19, 2021
Tweet
Share
More Decks by K_DM
See All by K_DM
主成分分析(PCA)の仕組み
k_study
0
190
X-meansの仕組み
k_study
0
1.9k
勾配ブースティングの仕組み
k_study
0
100
k-meansクラスタリングの仕組み
k_study
0
240
決定木を使った回帰の仕組み
k_study
0
220
アンサンブル学習① ランダムフォレストの仕組み
k_study
0
93
決定木に含まれるパラメタによる事前剪定と事後剪定
k_study
0
670
線形回帰② 正則化と過学習
k_study
0
530
外れ値とHuber(フーバー)損失
k_study
0
1.1k
Other Decks in Technology
See All in Technology
レビュー負債を解消する ― CodeRabbitが支えるAI駆動開発
moongift
PRO
0
110
us-east-1 の障害が 起きると なぜ ソワソワするのか
miu_crescent
PRO
2
790
LINE公式アカウントの技術スタックと開発の裏側
lycorptech_jp
PRO
0
350
ステートレスなLLMでステートフルなAI agentを作る - YAPC::Fukuoka 2025
gfx
2
480
Dart and Flutter MCP serverで実現する AI駆動E2Eテスト整備と自動操作
yukisakai1225
0
330
AIと共に開発する時代の組織、プロセス設計 freeeでの実践から見えてきたこと
freee
3
590
これからアウトプットする人たちへ - アウトプットを支える技術 / that support output
soudai
PRO
17
5.3k
ある編集者のこれまでとこれから —— 開発者コミュニティと歩んだ四半世紀
inao
1
300
ユーザーストーリー x AI / User Stories x AI
oomatomo
0
170
ubuntu-latest から ubuntu-slim へ移行しよう!コスト削減うれしい~!
asumikam
0
460
どうなる Remix 3
tanakahisateru
2
350
Introducing RFC9111 / YAPC::Fukuoka 2025
k1low
1
210
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1371
200k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
Statistics for Hackers
jakevdp
799
220k
Thoughts on Productivity
jonyablonski
73
4.9k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.6k
KATA
mclloyd
PRO
32
15k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
33
1.8k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.7k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
Transcript
,ͷษڧνϟϯωϧ
今回の内容 •次元の呪いとは •K近傍法と球面集中現象 •次元が大きくなる時にどのような問題が発生するか次元の呪いを避けるためには 『次元の呪い』とは何か説明します
次元の呪いとは 高次元のデータを用いて計算・データ分析をする際に発生する問題の総称 The curse of dimensionality refers to various phenomena
that arise when analyzing and organizing data in high- dimensional spaces that do not occur in low-dimensional settings … ग़యɿhttps://en.wikipedia.org/wiki/Curse_of_dimensionality 組合せ爆発 データ間の距離を測る上での問題 機械学習や異常検知における、予測に関係しない次元の多さ 計算量の増加
K-近傍法 データの周辺のk個の点をもとに、分類や回帰を行う x1 x0 この点は白か黒か? x1 x0 近傍が白なので白
K-近傍法 データの周辺のk個の点をもとに、分類や回帰を行う x1 x0 こ の は か か x1
x0 近傍が白なので白 この近傍の点を探索する作業、 どれくらい大変なのでしょうか?
データが1次元の場合 ソートして周辺と比較すれば、近傍の点を探索できる [0, 1, 9, 2, 11, 10, 8, 2,
1, 1, 100] 12 12に近いデータはどれ…? [0, 1, 1, 1, 2, 2, 8, 9, 10, 11, 100] ソートしてから二分探索すれば速く見つけられる!
データが2次元の場合 空間をいくつかの区画に分けて探索 (4, 5)に近いデータはどれ…? x1 x0 • • • •
• • • • • • • • • • • • • • • • • • • • • • • • • • x1 x0 • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • 区画を分けて、 区画分けを木で表現すれば探索できる kD木と呼びます
さらに次元数を増やしたら どうなるか?
データが3次元の場合 近傍にあたる領域がどれくらいあるのかを調べます x1 x0 • x1 x0 • x2 黒い点の近傍(表面の濃い青色)の体積を求めてみる
表面の体積は、2つの球の体積の差で求まる 近傍にあたる領域がどれくらいあるのかを調べます x1 x0 x2 • = -
表面の体積は、2つの球の体積の差で求まる 近傍にあたる領域がどれくらいあるのかを調べます x1 x0 x2 • = - an rn
an (r − b)n = an rn(1 − (1 − d r )n) an = 次元数によって決定する定数 = 次元数 n
次元数nが大きくなると球の表面が体積のほとんどを占める つまり、球の表面に黒点の近傍が大量に存在している x1 x0 x2 • = - an rn
an (r − b)n = an rn(1 − (1 − d r )n) nが大きいほど0に近づく と an rn がほぼ同じ体積 つまり • • • • • • • • • • • •
この状態でk近傍探索すると、近傍の点が大量に見つかる つまり、球の中心から見て同じ距離の箇所に大量に点がある x1 x0 x2 • と an rn がほぼ同じ体積
• • • • • • • • • • • • 球の体積のほとんどは である は中心の点から見て等しい距離 仮にデータを100個ランダムにばらまい た時、ばらまいたデータのほとんどは球 の表面 に含まれてしまい、 中心から見ると99個のデータがどれも 近傍にあるように見える ※球面集中現象と呼ばれています
まとめ 次元の呪いについて説明しました • 高次元のデータを用いて計算・データ分析をする際に発生する問 題の総称 • 一例として、次元の呪いの一種である球面集中現象がk近傍法で どのように影響するかを紹介しました • 高次元なデータを扱う場合、次元を削減できないか検討し、次元
数とデータ数がアルゴリズムの前提に合っているか確認する必要 がある