Contenu connexe
Plus de Ryuichi Ueda (20)
確率ロボティクス第五回
- 6. 主な(リ)サンプリングの手法
• パーティクルフィルタで使って意味のあるもの
– 単純ランダムサンプリング
– 層化抽出法(stratified sampling, 層別サンプリング)
– 系統抽出(systematic sampling, 系統サンプリング,
等間隔サンプリング)
– KLDサンプリング
• 商品の抜き取り検査の
解説ページ等に豊富な説明
Oct. 7, 2015 確率ロボティクスと移動ロボットの行動生成 6
※「等間隔サンプリング」という用語は
記憶が確かなら確率ロボティクスを
翻訳するときに「系統サンプリング」
だとよくわからんと思って独断で
意訳したものです・・・(申し訳ない)
- 7. 単純ランダムサンプリング
• 計算量が O(N logN)に(N: パーティクルの数)
1. 重みの和を求める
2. 区間[0,重みの和)で乱数生成
3. 元のパーティクルの重みの累積値と
乱数を比べて釣り合う順番のパーティクルを抽出
4. 選んだパーティクルの場所に重み1/Nの
パーティクルを置く
Oct. 7, 2015 確率ロボティクスと移動ロボットの行動生成 7
重たい
重み
パーティクル1 2 3 4 5 6 7 8 9 10
この範囲の数を乱数で選ぶ
- 9. 系統サンプリング
• 等間隔にサンプリングしていく
– 幅: 1/重みの合計
– 最初のサンプリング点: [0,1/重みの合計)で
ランダムに選択
– 特に事情がなければこれを使う
Oct. 7, 2015 確率ロボティクスと移動ロボットの行動生成 9
重み
パーティクル1 2 3 4 5 6 7 8 9 10
端の位置は
乱数で選ぶ
- 10. KLDサンプリング
• KLD: Kullbuck-Leibler distance
• よく使われるコードで採用されている
• 大まかな手順
– 状態空間を区画に切る
– 新しいパーティクルをサンプリングしていく
– 元のパーティクルが存在する区画全てに
新しいパーティクルが入ったら終了
• 他のサンプリング手法と違って状態空間の分割が伴う
Oct. 7, 2015 確率ロボティクスと移動ロボットの行動生成 10
- 17. センサリセット
Oct. 7, 2015 確率ロボティクスと移動ロボットの行動生成 17
• 最後の観測に使った尤度の分布に従って
パーティクルを再配置
– 観測が1回反映された状態から後の推定が始まる
• コード(sensorReset関数)
• 実行例
– https://lab.ueda.asia/?p=251#sensor
観測
(壁がない)
逆に置く
- 19. 膨張リセット
Oct. 7, 2015 確率ロボティクスと移動ロボットの行動生成 19
• 過去のbelをぼかす
• コード(expansionReset関数)
観測
(壁がない)
逆に置く