SlideShare a Scribd company logo
1 of 23
Download to read offline
今回お話すること
“ 空間的データ構造 ” についての話題
1. 空間的データ構造 について
2. CurtainRail 構造について
3. おわりに
1. 空間的データ構造について
「空間的データ構造」とは ?
空間上の点・図形といった
幾何学的なデータ = ” 空間データ” を
効率的に管理するデータ構造
例えば ...
- 地理情報 < 緯度・経度 >
- コンピュータ グラフィックス < 座標、幅 / 高さ >
- パターン認識の学習データ < 特徴量 >
1. 空間的データ構造について
「空間的データ構造」とは ?
単純にデータを格納するだけでなく
 空間データにまつわる様々な問題 ( クエリ ) を
高速に解くことを目的としている
例 : 範囲索引
特定の範囲内にあるデータはいくつ?どのようなものがある?
最近傍点探索
一定点に最も近いデータはどれ?
1. 空間的データ構造について
様々な応用
・地理情報システム
 地図アプリ → 「画面範囲内にはどんな情報 ( 地形 / 建物 / 観光地 ...) がある?」
  災害マップ→ 「この地点について、最も近い海岸線との距離は何 km ?」
・コンピュータグラフィックス
  画像処理 → 「この画像を縮小すると、ここのピクセルはどんな色になる?」
  3D グラフィックス → 「たくさんある 3D オブジェクトのうち、画面外に隠れているのはどれ?」
・人工知能
 パターン認識 →「このデータの内容は、どの分類に最も近い?」
実は、使いみちの豊富な分野
1. 空間的データ構造について
主な手法
- R-tree [Antomn Guttman, 1984] (1)
- Quad-tree ( 四分木 ) [Finkel, R.A., Bentley, J.L., 1974] (2)
- K-dimensional tree ( kd-tree ) [Bentley, J.L., 1975] (3)
他にも様々なものがある
中には、特定のパターンに特化したものも
- PMD-tree : 過去の索引結果を高速に参照可能 [Yasuaki Nakamura, Yasuaki Nakamura, 1999] (4)
- Q+R-tree : データの空間情報の変化に対応 [Yuni Xia, S. Prabhakar, 2003] (5)
1. 空間的データ構造について
余談 : 「空間的データ構造」の呼称について
決まった名前はなく
 「空間的データ構造」
 「空間インデックス」
 「空間データ管理構造」
  ... など様々な呼び方が存在
「空間的データ構造」という表し方は
学術本 ” Geometric Data Structures for Computer Graphics ”
( 著者 : Elmar Langetepe, Gabriel Zachmann ) の
鈴木 宏正 教授・工学博士 ( 東京大学 ) による日本語訳タイトルを引用
右画像 : ボーンデジタル オンラインブックストア
https://wgn-obs.shop-pro.jp/?pid=150534442 実は手に取ったことがありません ( 汗 )
1. 空間的データ構造について
まとめ
・空間的データ構造は、空間のデータを扱う構造
・たくさんの使いみちがあり、研究の価値がある
・木構造が主流
       二期生の皆様にも、ぜひ興味を持っていただければと思います
2.CurtainRail 構造について
CurtainRail 構造とは?
 空間的データ構造の新手法
 「データ・索引範囲の空間情報の変化」に対応した構造として提案
2.CurtainRail 構造について
CurtainRail 構造の特徴
- データ・索引範囲の空間情報の移動に応じた
  構造の再構築を高速に行える
従来手法の多くは、データの変化に合わせて、構造を全て組み立て直す必要がある
 時間計算量は、空間情報の変化の合計の大きさのによって変わる
 変化が十分に小さい場合、計算量は実質 O(1) となる
2.CurtainRail 構造について
CurtainRail 構造の特徴
- 点 / 矩形 / 超矩形データに対応
- 順序付きリストの組み合わせによる実装
  従来手法では木構造が主流
 → 子ノード数の調節といった、不安定な要素が少ない
 → 構造のサイズが大きくなってしまう
三角型、星型などの自由形には対応しない
( これはほとんどの従来手法においても言える )
その代わり、最小範囲矩形 (MBR) を
 インデックスに用いることで 大枠の対応はできる
2.CurtainRail 構造について
CurtainRail 構造の仕組み
想定するケース
- 扱うデータは全て2次元定点データ
- 変化するのは索引範囲の情報のみ
 この場合における索引処理の流れをおおまかに解説
基本的には、 1 年半前のミーティングにて説明させていただいたことと同じ内容ですが
解釈が少し新しくなっています。
2.CurtainRail 構造について
CurtainRail 構造の仕組み : insert()
- データの座標 x, y および
索引範囲の端の座標 x0, x1, y0, y1 を
それぞれの次元に対応する
リストに格納し、整列
- 時間計算量 : O ( DlogN )
D : 次元数  N : データ数
X
Y
2.CurtainRail 構造について
CurtainRail 構造の仕組み : search() [ initial ]
- 各データに「索引フラグ ( 初期値 0 ) 」を設ける
- 各次元にて、索引範囲の 2 端点の間にあるデータを羅列
 → 対象となったデータの索引フラグを 1 加算
- 索引フラグが扱う次元の数と同値となったデータを出力
- このとき、索引の結果・索引フラグの値 を保存
- 時間計算量 : O( D ) ~ O ( DN )
D : 次元数  N : データ数
X
Y
+1 +1
+1
+1
+1 +1+1
1
1
1
2
2
2.CurtainRail 構造について
CurtainRail 構造の仕組み : update()
- 各次元にて、リスト上の索引範囲の 2 端点の位置を
  正しい順序となるよう更新
- このとき、各端点が移動した範囲の中にあるデータの
  索引フラグを更新
  それに伴い、索引結果も更新
- 時間計算量 : O ( DM )
  →索引範囲の変化が小さいほど計算量は少なくなる
D : 次元数  M : 索引情報の変化するデータ数
X
Y
1→2
1
1→0
2→1
2→1
-1
-1
-1 +1
2.CurtainRail 構造について
CurtainRail 構造の仕組み : search() [after update]
- 保存されている索引結果をそのまま出力
X
Y
2
1
0
1
1
2.CurtainRail 構造について
CurtainRail 構造の仕組み : 補足
説明に使ったケースはあくまで 1 例
- 点だけでなく、領域データの取扱も可能
- 索引範囲だけでなく、データの変化にも対応可能
- より高次元な空間にも適用可能
2.CurtainRail 構造について
これまでの研究成果
情報科学の達人プログラム内での活動として
- 構想の具体化
- C++ による実装
- 「中高生情報学研究コンテスト」での発表・奨励賞受賞
研究に際して、様々な方からご意見・ご協力をいただきました
山口勇太郎 准教授 ( 大阪大学 ) ・塩川浩昭 教授 ( 筑波大学 ) ・米田優峻氏 ( 東京大学 )
はじめ、情報科学の達人 メンター・受講生の方々には、改めて感謝申し上げます
2.CurtainRail 構造について
研究の新たな進捗
1. 実装のアップデート
- Go 言語による実装 github.com/TadaTeruki/CurtainRail.go
  索引範囲だけでなく、データの移動に対応
  複数の索引範囲を処理できるように設計
  索引範囲の相互索引も容易に対応可能
今まで「理論上可能である」としていたことを具現化した形
並列処理の導入など、今後の新たな研究視野も
2.CurtainRail 構造について
研究の新たな進捗
2. R-tree と比較したパフォーマンスの正確な測定
○ 想定シチュエーション
1. 空間は 2 次元 ( x, y )
2. データ・索引範囲は、いずれも 1.0 x 1.0 の範囲内で生成される矩形オブジェクト
3. データの大きさは 0.01 x 0.01
4. 索引範囲の大きさは 0.1 x 0.1
このケースのもと、
・範囲索引 : insert() + search()[initial]
・範囲索引の更新 : update() + search()[after update]
の 2 つの機能を検証
2.CurtainRail 構造について
パフォーマンス測定の結果
Insert() + search()[initial]
・全体を通して R-tree が
  2 ~ 8 倍 高速
・計算量の爆発はない
 → 残念とはいえ
   大枠想定通りの結果
縦軸 : データ変化量の大きさ
横軸 : データの数
色  : 緑なら CurtainRail が高速、赤なら R-tree が高速。色が濃いほどパフォーマンスの差が大きい
2.CurtainRail 構造について
パフォーマンス測定の結果
update() + search() [after update]
・データの変化が十分小さければ
  CurtainRail のほうが約 2 倍 高速
・一定のライン ( 青線 ) から計算量が爆発
 → 一部パターンで高速であることが
  立証できたものの
  多くの課題が見受けれられる
縦軸 : データ変化量の大きさ
横軸 : データの数
色  : 緑なら CurtainRail が高速、赤なら R-tree が高速。色が濃いほどパフォーマンスの差が大きい
2.CurtainRail 構造について
見えてきた課題
・現状、応用可能なシチュエーションが非常に限られてしまう
  → 仕組みの見直し・実装のアップデートが必要
・ R-tree のみを比較対象としていることも問題
  - 特に、 R-tree の派生は多種多様
  なかでも Q+R-tree は同じ目的を持つため、比較が必須
  → より多くの従来手法と比較する必要あり
     他にも様々な課題がある。今後どこまで改善できるだろうか ...
出典
(1)Antonin Guttman. 1984. R-trees: a dynamic index structure for spatial searching.
SIGMOD Rec. 14, 2 (June 1984), 47–57. DOI:https://doi.org/10.1145/971697.602266
(2)Finkel, R. A.; Bentley, J. L. (1974). "Quad trees a data structure for retrieval on composite keys".
Acta Informatica. 4 (1): 1–9. doi:10.1007/BF00288933.
(3)Jon Louis Bentley. 1975. Multidimensional binary search trees used for associative
searching. Commun. ACM 18, 9 (Sept. 1975), 509–517. DOI:https://doi.org/10.1145/361002.361007
(4) 中村 泰明 , 出木原裕順 , 時間属性をもった空間データの管理構造 : PMD 木 ,
情報処理学会論文誌 , May 1999, Vol.40,No.SIG5 (TOD2) pp. 54-68
(5) Yuni Xia and S. Prabhakar, "Q+Rtree: efficient indexing for moving object databases,"
Eighth International Conference on Database Systems for Advanced Applications, 2003.
(DASFAA 2003). Proceedings., 2003, pp. 175-182, doi: 10.1109/DASFAA.2003.1192381.

More Related Content

Similar to 研究報告 #0 - NII 情報科学の達人 ( R4 / 2 / 5 )

MapReduceによる大規模データを利用した機械学習
MapReduceによる大規模データを利用した機械学習MapReduceによる大規模データを利用した機械学習
MapReduceによる大規模データを利用した機械学習Preferred Networks
 
大規模ネットワークの性質と先端グラフアルゴリズム
大規模ネットワークの性質と先端グラフアルゴリズム大規模ネットワークの性質と先端グラフアルゴリズム
大規模ネットワークの性質と先端グラフアルゴリズムTakuya Akiba
 
Dimensionality reduction with t-SNE(Rtsne) and UMAP(uwot) using R packages.
Dimensionality reduction with t-SNE(Rtsne) and UMAP(uwot) using R packages. Dimensionality reduction with t-SNE(Rtsne) and UMAP(uwot) using R packages.
Dimensionality reduction with t-SNE(Rtsne) and UMAP(uwot) using R packages. Satoshi Kato
 
When NAS Meets Robustness: In Search of Robust Architectures against Adversar...
When NAS Meets Robustness:In Search of Robust Architectures againstAdversar...When NAS Meets Robustness:In Search of Robust Architectures againstAdversar...
When NAS Meets Robustness: In Search of Robust Architectures against Adversar...MasanoriSuganuma
 
サブカルのためのWord2vec
サブカルのためのWord2vecサブカルのためのWord2vec
サブカルのためのWord2vecDeNA
 
When NAS Meets Robustness: In Search of Robust Architectures against Adversar...
When NAS Meets Robustness:In Search of Robust Architectures againstAdversar...When NAS Meets Robustness:In Search of Robust Architectures againstAdversar...
When NAS Meets Robustness: In Search of Robust Architectures against Adversar...MasanoriSuganuma
 
Orb dlt technical_overview(特許情報なし)
Orb dlt technical_overview(特許情報なし)Orb dlt technical_overview(特許情報なし)
Orb dlt technical_overview(特許情報なし)Wataru Fukatsu
 
DataStax Enterpriseによる大規模グラフ解析
DataStax Enterpriseによる大規模グラフ解析DataStax Enterpriseによる大規模グラフ解析
DataStax Enterpriseによる大規模グラフ解析Yuki Morishita
 
データ・テキストマイニング
データ・テキストマイニングデータ・テキストマイニング
データ・テキストマイニングHiroshi Ono
 
Advnet2011 ruo ando
Advnet2011 ruo andoAdvnet2011 ruo ando
Advnet2011 ruo andoRuo Ando
 
Hadoop / Elastic MapReduceつまみ食い
Hadoop / Elastic MapReduceつまみ食いHadoop / Elastic MapReduceつまみ食い
Hadoop / Elastic MapReduceつまみ食いRyuji Tamagawa
 
トレジャーデータ流,データ分析の始め方
トレジャーデータ流,データ分析の始め方トレジャーデータ流,データ分析の始め方
トレジャーデータ流,データ分析の始め方Takahiro Inoue
 
分散グラフデータベース DataStax Enterprise Graph
分散グラフデータベース DataStax Enterprise Graph分散グラフデータベース DataStax Enterprise Graph
分散グラフデータベース DataStax Enterprise GraphYuki Morishita
 
Deep Forest: Towards An Alternative to Deep Neural Networks
Deep Forest: Towards An Alternative to Deep Neural NetworksDeep Forest: Towards An Alternative to Deep Neural Networks
Deep Forest: Towards An Alternative to Deep Neural Networksharmonylab
 
Panel Discussion@WebDB forum 2014
Panel Discussion@WebDB forum 2014Panel Discussion@WebDB forum 2014
Panel Discussion@WebDB forum 2014Makoto Yui
 
企業等に蓄積されたデータを分析するための処理機能の提案
企業等に蓄積されたデータを分析するための処理機能の提案企業等に蓄積されたデータを分析するための処理機能の提案
企業等に蓄積されたデータを分析するための処理機能の提案Toshiyuki Shimono
 
オラクルGo! 位置情報アプリをクラウドで簡単に作ってみた
オラクルGo! 位置情報アプリをクラウドで簡単に作ってみたオラクルGo! 位置情報アプリをクラウドで簡単に作ってみた
オラクルGo! 位置情報アプリをクラウドで簡単に作ってみたYosuke Arai
 

Similar to 研究報告 #0 - NII 情報科学の達人 ( R4 / 2 / 5 ) (20)

MapReduceによる大規模データを利用した機械学習
MapReduceによる大規模データを利用した機械学習MapReduceによる大規模データを利用した機械学習
MapReduceによる大規模データを利用した機械学習
 
大規模ネットワークの性質と先端グラフアルゴリズム
大規模ネットワークの性質と先端グラフアルゴリズム大規模ネットワークの性質と先端グラフアルゴリズム
大規模ネットワークの性質と先端グラフアルゴリズム
 
Dimensionality reduction with t-SNE(Rtsne) and UMAP(uwot) using R packages.
Dimensionality reduction with t-SNE(Rtsne) and UMAP(uwot) using R packages. Dimensionality reduction with t-SNE(Rtsne) and UMAP(uwot) using R packages.
Dimensionality reduction with t-SNE(Rtsne) and UMAP(uwot) using R packages.
 
Overview and Roadmap
Overview and RoadmapOverview and Roadmap
Overview and Roadmap
 
When NAS Meets Robustness: In Search of Robust Architectures against Adversar...
When NAS Meets Robustness:In Search of Robust Architectures againstAdversar...When NAS Meets Robustness:In Search of Robust Architectures againstAdversar...
When NAS Meets Robustness: In Search of Robust Architectures against Adversar...
 
サブカルのためのWord2vec
サブカルのためのWord2vecサブカルのためのWord2vec
サブカルのためのWord2vec
 
When NAS Meets Robustness: In Search of Robust Architectures against Adversar...
When NAS Meets Robustness:In Search of Robust Architectures againstAdversar...When NAS Meets Robustness:In Search of Robust Architectures againstAdversar...
When NAS Meets Robustness: In Search of Robust Architectures against Adversar...
 
Orb dlt technical_overview(特許情報なし)
Orb dlt technical_overview(特許情報なし)Orb dlt technical_overview(特許情報なし)
Orb dlt technical_overview(特許情報なし)
 
SoCC12報告
SoCC12報告SoCC12報告
SoCC12報告
 
DataStax Enterpriseによる大規模グラフ解析
DataStax Enterpriseによる大規模グラフ解析DataStax Enterpriseによる大規模グラフ解析
DataStax Enterpriseによる大規模グラフ解析
 
NeurIPS2019参加報告
NeurIPS2019参加報告NeurIPS2019参加報告
NeurIPS2019参加報告
 
データ・テキストマイニング
データ・テキストマイニングデータ・テキストマイニング
データ・テキストマイニング
 
Advnet2011 ruo ando
Advnet2011 ruo andoAdvnet2011 ruo ando
Advnet2011 ruo ando
 
Hadoop / Elastic MapReduceつまみ食い
Hadoop / Elastic MapReduceつまみ食いHadoop / Elastic MapReduceつまみ食い
Hadoop / Elastic MapReduceつまみ食い
 
トレジャーデータ流,データ分析の始め方
トレジャーデータ流,データ分析の始め方トレジャーデータ流,データ分析の始め方
トレジャーデータ流,データ分析の始め方
 
分散グラフデータベース DataStax Enterprise Graph
分散グラフデータベース DataStax Enterprise Graph分散グラフデータベース DataStax Enterprise Graph
分散グラフデータベース DataStax Enterprise Graph
 
Deep Forest: Towards An Alternative to Deep Neural Networks
Deep Forest: Towards An Alternative to Deep Neural NetworksDeep Forest: Towards An Alternative to Deep Neural Networks
Deep Forest: Towards An Alternative to Deep Neural Networks
 
Panel Discussion@WebDB forum 2014
Panel Discussion@WebDB forum 2014Panel Discussion@WebDB forum 2014
Panel Discussion@WebDB forum 2014
 
企業等に蓄積されたデータを分析するための処理機能の提案
企業等に蓄積されたデータを分析するための処理機能の提案企業等に蓄積されたデータを分析するための処理機能の提案
企業等に蓄積されたデータを分析するための処理機能の提案
 
オラクルGo! 位置情報アプリをクラウドで簡単に作ってみた
オラクルGo! 位置情報アプリをクラウドで簡単に作ってみたオラクルGo! 位置情報アプリをクラウドで簡単に作ってみた
オラクルGo! 位置情報アプリをクラウドで簡単に作ってみた
 

研究報告 #0 - NII 情報科学の達人 ( R4 / 2 / 5 )