2007 IEEE ICDM DMC task1 result
-
Upload
taiga-nomi -
Category
Technology
-
view
1.019 -
download
4
Transcript of 2007 IEEE ICDM DMC task1 result
IEEE ICDM DMC 2007半教師あり学習を用いたクライアント位置推定問題@知的獲得システム論 課題報告会
能見大河
課題
• 1.コンテストと同じ条件でテストデータのグリッドを推定
• 2.「グリッドの位置関係」の情報を利用して,テストデータのグリッドを推定
• 3.グリッド番号ではなく2次元位置座標を直接推定• 4.100個のアクセスポイントの位置を推定
テストデータのグリッド推定
(課題1)
1:半教師ありK-means• 1.ラベル有りデータでクラスタ中心を決定• 2.各ラベル無しデータを最近傍クラスタに分類• 3.クラスタ中心を再計算• 4.各ラベル無しデータを最近傍クラスタに分類• 5.クラスタリングが収束するまで3.~4.を繰り返し
K-means• 信号強度の類似度のみを用いてクラスタリング• Norm < 1
– 信号がノイジー•同じ場所でも受信する信号強度はばらつく•受信しえない距離からの信号は必ず0•信号の数値より数値の組み合わせが大事
Example
0020055Label B5020000A?B?10010000Label A654321Access Point
2-NormだとBのほうが近い→NG
0.5-NormだとBよりもAに近い→感覚に合致
A B1
2
4
6 ??
結果
• 1623/2137(75.96%) with K=1, Norm=1/3• 1575/2137(73.70%) with K=3, Norm=1/3• 1469/2137(68.74%) with K=1, Norm=1/2
• …微妙?• 信号Vector上で各ラベルのデータが超球を形成していればK-meansは効果を発揮するはずだが、今回はノルムを振っても良い結果は出ず
• ラベル重心を計算するときに、ラベルが多い訓練データとそうでないデータでベクトルの要素数がば
らついてしまうのも悪影響?
2:最尤伝播• IBMチームの手法をまねっこ
– 最尤のラベル有りデータから伝搬させて学習– テストデータについてはi番目データのcっぽさ(尤度関数)fi(c)を計算し,最もfが大きくなるcを正解とする
• 簡単のため,ひとまず信号のみでSimilarityを計算
結果
• 1604/2137(75.06%) With Norm=1/3• そんなに良くないような• 最近傍のラベルを貰うだけなのがよくない?
– K-近傍で多数決を取っても改善しない(むしろ悪化)
– 尤度と近傍度の積和を取ってもやっぱり改善しない
どう改善する?
• 改善する→今まで使っていない情報を何か使う• 時間データを用いていない
– 同一トレース内では前後の情報が有効• 各ステップの尤度関数を都度破棄している
– 正解と不正解のときで尤度の分布が明らかに違うので,これを利用できないか?
0
200
400
600
800
1000
~
0
.0
0
0
1
~
0
.0
0
1
~
0
.0
1
~
0
.1
~
1
1
~
尤度
データ数
不正解データ
正解データ
改善1/3: 時間データの利用• テストデータの時系列を組みこむ
– 同一トレース内で3ステップ前までの推定値を尤度関数に加算
– k-3:+=0.1, k-2:+=0.3, k-1:+=0.5– 怪しかった推定結果(f<0.01)は破棄する
Example
0.30.0070.6尤度f?1941010推定値
kk-1k-2k-3ステップ
fk(10) += 0.1
fk(194) += 0.5fが小さいので加算しない
改善2/3: Graph Based Weighting• トレーニング/テストデータは同じ地図上を動く• ある場所cに居るとき,次のステップで移動可能な場所は限られている
• 学習中に推定ラベル遷移から部屋の構造を推定– ノード1..247を配置– 尤度がしきい値(0.1)を超えたペアの間に
branchを張っていく• 学習中に間違った推定をすると正答率を悪化させる可能性
Example
0.0030.80.50.10.20.4尤度
22041941010ラベル
10
194
4
20
2
尤度が低いので
枝を張らない
改善3/3:うろつきの禁止• (自明では無いが)同一トレース内で10→ 10→
194→ 194→ 194→10→ 10→ 194→…のような動きは余りしないのでは無いか
• ある尤度以上で一定回数以上推定した場所は、同一トレース内での再訪に対しペナルティを課す
• ラベルが変化した場合でも、尤度が小さい場合はペナルティを課さない
Example
0.90.40.010.40.70.50.50.40.3尤度
551095510101010推定
これ以降はf(10) を0.4倍
109は尤度が小さいのでf(5)はペナルティなし
結果
• 工夫無し(1604/2137, 75.06%)↓ 5.8%
• 時間情報の利用(1728/2137, 80.86%)↓1.45%
• 部屋の構造推定(1759/2137, 82.31%)↓0.19%
• うろつき禁止(1763/2137, 82.50%)
3:bayonを使う• bayon:mixiのエンジニアがリリースした高速なクラ
スタリングツール
• Repeated Bisection法– 以下の手順でクラスタの2分割を繰り返していく
• 1.最もまとまりが悪いクラスタAを選択し,そ
の中のランダムな2要素を代表としたクラス
タB,Cを作成• 2.Aの各要素を代表との類似度に沿ってB,Cどちらかに割り振る
• 3.B,C間で要素の移動を行って集合を洗練
準備
• 主に教師なしクラスタリングに使うツールだが、ラ
ベル中心ベクトルを入力することで教師ありのクラ
スタリングもできる
– この場合単に類似度評価であってR-Bのようなイタレーションはやっていない気がする(良く分
かってない…)• ラベルありデータの信号強度のみを用いて推定• とてもお手軽だった
– インストール5分– 入力データフォーマットの整形1分– クラスタリング2秒
結果
• 正解率 1291/2137(60.4%)• タブ区切りでIDとKey-Valueペアを入力するとさっく
りクラスタリングしてくれて,いろいろ遊べそう
地図情報を利用した推定
(課題2)
手法
• 先のGraph Based Weightingが再利用できる– 今度はラベル無しデータではなく,座標セット(map_coordinates.txt)を用いてグラフを生成
– グラフの重みを強め、実質的に1ステップ前の推定ラベル自身とその隣にしか移動できない
ように
•一旦間違った方向に入ると泥沼に入る可
能性
•尤度関数の情報を用いて重みを都度調整
– 1ステップ前の尤度が弱い場合は尤度が強いステップまで巻き戻り、その近傍
に対しても重みをつけてやる
Example
0.050.40.0010.70.8尤度
1201842101010ラベル
10210 1010 10184 10120
結果
• 1832/2137(85.73%)• 確かに良くなった。
• 余り試行錯誤していないのでまだ改善できそう
まとめ
85.73%地図情報利用
60.4%bayon82.50%ラベル伝搬
75.96%K-means結果手法
・いろいろ試行錯誤の結果、とりあえずIBMの結果は超えるものが出た
・使っていない情報は何か考えて実装するプロセスを
楽しんでやれた
・bayonもっと使いたい