abc 2016spring 講演資料

27
ビーコンはこう置いて みては? 東海大学理学部 大西 建輔 (石川 登美雄君との共同研究)

Upload: kensuke-onishi

Post on 22-Jan-2018

454 views

Category:

Engineering


0 download

TRANSCRIPT

Page 1: ABC 2016Spring 講演資料

ビーコンはこう置いてみては?東海大学理学部大西 建輔

(石川登美雄君との共同研究)

Page 2: ABC 2016Spring 講演資料

自己紹介

•大西建輔 ([email protected] )

•東海大学准教授(情報系でもあり、数学系)• 普段はプログラミングや数学教えてます

• Androidとの付き合いは, GDD2009でGDDPhoneを貰ってから

• ABC参加は, 2011 Winterから, 2013 AutumnからABC実行委員も

Page 3: ABC 2016Spring 講演資料

ビーコンとは?

• BLE(Bluetooth Low Energy)はBluetooth の規格

• BLE規格のビーコン(Beacon)と呼ばれる発信器あり• 低電圧(Low Energy) ⇒ボタン電池1つで1年程度

• ビーコンのIDを発信(IDの変更も可能)⇒電波強度とIDを受信可能

• iOS, Android(4.3以降)でサポート⇒ビーコンを探知できるアプリを作成可能

Page 4: ABC 2016Spring 講演資料

研究動機BLE設置の現場では

• ビーコンを設置, 計測の繰り返し⇒時間と手間が必要, 高コストの原因

• ビーコンの位置を決める手法を提案⇒あらかじめ幾つかのパターンを作成⇒現地での調整

[本研究]

領域R , 正整数k が与えられる⇒ R内で k個のビーコンの位置を決定

ビーコン 3K設置10K以上

ビーコンの数の削減も

Page 5: ABC 2016Spring 講演資料

k-means method (Lloyd 1982)

点集合Pを k個のクラスタに分割する方法

⇒ k個の母点を決め, P をそれぞれの母点に近い点集合 Pi に分割

入力: 点集合P ;

出力 : クラスタ Pi (i = 1,2, …, k) ;

1. 母点 SP ={sp1, …, spk} を適当に決定;

2. Pi = {spiに近い点の集合} を計算;

3. spi = p / | Pi | ただし, p Pi ; # 重心を計算

4.

が前の値より小さい⇒Step 2 に戻る;

5. Pi (i = 1,2, …, k)を返す;

𝜑 𝑃 = 𝑖=1

𝑘

𝑝∈𝑃𝑖

𝑑(𝑝, 𝑝𝑖)2

Page 6: ABC 2016Spring 講演資料

k-means method 実行例(n=5000)

Page 7: ABC 2016Spring 講演資料

k-means method 実行例(n=5000, k=10)

Page 8: ABC 2016Spring 講演資料

k-means method 実行例(n=5000, k=10)

Page 9: ABC 2016Spring 講演資料

目的関数値: 40462.361962646

k-means method 実行例(n=5000, k=10)

Page 10: ABC 2016Spring 講演資料

k-means methodの特徴

•かなり高速に計算可能(繰り返し回数は少ない)

•結果は, 初期値に依存⇒幾つかの初期値を試し, 最もよい物を選択

•初期値を上手に選ぶ• k-means++ method

Page 11: ABC 2016Spring 講演資料

k-means++ method(Arthur et.al SoDA 2007) • k平均法で, 初期点の取り方を工夫

•最初の1点はランダムに

• d(spi , p)2 / d(spi , p)2 の確率で, 次の点を選択spi : p に最も近い初期点

•必要な k点ができれば, k-means methodを適用

k-means++ methodでは, O(log k)競合比を達成⇒必ず最適な値の O(log k)倍で抑えられる

(理論的な保証)

母点から遠い点が選ばれる確率

が高い

Page 12: ABC 2016Spring 講演資料

k-means++ method 実行例(n=5000, k=10)

Page 13: ABC 2016Spring 講演資料

k-means++ method 実行例(n=5000, k=10)

Page 14: ABC 2016Spring 講演資料

k-means++ method 実行例(n=5000, k=10)

目的関数値:40209.7234844853

Page 15: ABC 2016Spring 講演資料

今回は, ビーコンの配置

•入力は点集合ではなく, 領域 R⇒領域内の点をランダムに生成

(人が入れない場所には, 点を生成しない)

•生成された点集合に対し, k-means (ランダム初期点) または. k-means++ method

を適用⇒クラスタが出力⇒各クラスタの重心を計算し, ビーコン位置に

Page 16: ABC 2016Spring 講演資料

点集合の生成 (n = 7000)

Page 17: ABC 2016Spring 講演資料

k-means method の適用

Page 18: ABC 2016Spring 講演資料

k-means method の適用

Page 19: ABC 2016Spring 講演資料

計算機実験• k-means method(ランダムに初期点を選択)と

k-means++ methodを実装

• n =1000, 2000, …, 10000に対し, それぞれ10種類の点集合を生成

•全ての点集合に対し, k-means と k-means++ methodを適用

[取得データ] • 計算時間

• 収束までの繰り返し回数,

• 目的関数値,

• 正規化目的関数値(点数での正規化)

Page 20: ABC 2016Spring 講演資料

計算時間(ランダム, k-means++, 平均)

0

100

200

300

400

500

600

0 2000 4000 6000 8000 10000

Computation time (SP)

Random k-means++

(ms)

(# points)

Page 21: ABC 2016Spring 講演資料

計算時間(k-means method, 平均)

0

500

1000

1500

2000

2500

3000

3500

4000

0 2000 4000 6000 8000 10000

Computaion time (k-means)

Random k-means++

(ms)

(#points)

Page 22: ABC 2016Spring 講演資料

繰り返し回数(平均)

0

5

10

15

20

25

30

0 2000 4000 6000 8000 10000

Number of Repeat (average)

Random k-means++

(# points)

(# times)

Page 23: ABC 2016Spring 講演資料

目的関数値(平均と最小)

49500

50000

50500

51000

51500

52000

52500

53000

53500

54000

0 2000 4000 6000 8000 10000

Value of Objective function (min and averages)

Random k-means++ min

(# points)

Page 24: ABC 2016Spring 講演資料

実領域への適用(以前の配置)

Page 25: ABC 2016Spring 講演資料

実領域への適用(新しい配置)

Page 26: ABC 2016Spring 講演資料

実環境での精度の違い

0.000

0.100

0.200

0.300

0.400

0.500

0.600

0.700

0.800

0.900

1.000

1次 2次 3次7F(after) 7F(before)

Page 27: ABC 2016Spring 講演資料

まとめ領域 Rでの k個のビーコン配置の手法の提案

• Rでの点のランダム生成

• k-means method or k-means++ methodを適用

•出力クラスタから重心を計算し、ビーコン位置に

•計算時間は早い 10000点, k=5で4秒程度

•性能向上はそこそこ

今後の予定

• ビーコンの個数 kの決定 .…. なんとかなりそう

•距離計算の厳密化

•実際のビーコン配置の現場へ