確率ロボティクス2016第10回
Tue Dec 6 11:02:01 JST 2016 (modified: Fri Nov 29 17:21:21 JST 2019)
views: 950, keywords:
確率ロボティクス
第10回
上田 隆一2016年12月7日@千葉工業大学
本日の内容
- POMDP
POMDP
- 部分観測マルコフ決定過程
- 状態が自明でない場合のマルコフ決定過程
- センサ情報から得られるが、部分的
- ほぼ、自律型ロボットの問題と等価
- 状態が分かっているものをロボットと言うかどうか
- 他者がいるとさらに問題が難しくなるが、 POMDPでは考えない/扱えない
定式化
- 状態が直接観測できず、観測から間接的に分かる
- 要は自己位置推定の問題に行動決定をくっつけたもの
- 各シンボルの定義
- 時刻: [latex]\\mathcal{T} = \\{t | t=0,1,2,\\dots,T\\}[/latex]
- 状態: [latex]\\mathcal{S} = \\{s_i | i=1,2,3,\\dots,N\\}[/latex]
- どんな状態があるかはknown、どの状態にいるかはunknown
- 行動: [latex]\\mathcal{A} = \\{a_j | j=1,2,3,\\dots,M\\}[/latex]
- 状態遷移: [latex]\\mathcal{P}_{ss'}^a[/latex]
- 報酬: [latex]\\mathcal{R}_{ss'}^a[/latex]
- 観測: [latex]\\mathcal{O}[/latex]
問題の例
- スイカ割り
- 自分とスイカの相対姿勢がはっきり分からない
- 他者からの情報で
- 真っ暗なビルから脱出
- 壁に手をついて自己位置推定
- 実はスイカ割りで目隠しを取っても、ビルに照明がついていても、我々は正確な位置計測ができている訳ではない
- 結局POMDP
自己位置推定の曖昧さ
- 広がっているときに平均値(と決定論的方策[latex]\\pi[/latex])を信じて動くとどうなるか?
- そもそも平均値が意味を持たないこともある
- 平均値でなくてもっといい行動の選び方はないだろうか?
入力が信念の方策
- エージェントが[latex]bel[/latex]から行動決定
- 状態空間の上で定義された方策ではなく、[latex]bel[/latex]が属する空間の上で定義された方策となる
- 「信念に対する方策」「信念方策」
- どうやって求めるか?
- そもそも求められるのか?
問題の大きさ
- 状態が100個、行動が2種類の場合
- 有限MDP
- 方策のパターンは[latex]2^{100}[/latex]通り
- 価値反復を使うと
- [latex]O[/latex](状態数・行動数・タスクの長さ)で方策を計算可能
- POMDP
- [latex]bel[/latex]は100個の状態上で定義される関数
- 無限に存在
- 無限にあるものに対する方策のパターンは無限
- [latex]bel[/latex]は100個の状態上で定義される関数
POMDPと ハンドコーディング
- 例えば、パーティクルの分布から移動ロボットの行動を決めるコードを書いてみましょう
- 例えば脱輪したり縁石に乗り上げたりしないで、できるだけ早く角を曲がる場合を考えてみましょう
- (たいていの場合)ほぼ無限に場合分けできる
- 疲れる
- そもそも無理?
- 豊富な研究テーマ
対策
- センサを強化
- 観測戦略
- 位置の情報が得られそうな行動を能動的にとる
- センサやアクチュエータの配置、ロボットの形状の工夫(身体性)
- ぶつかっても壊れない
- 情報を得やすい位置にセンサをつける
- 情報を得やすい/情報がなくても動けるようにアクチュエータを選定して取り付け
- 計算でなんとか良い行動を見つける
計算でなんとか
- だいたい以下のような方針になる
- 方法1:
- [latex]bel[/latex]の形状一個一個を状態と皆して有限MDPのように問題を解く
- 方法2:
- 事前に状態が既知の有限MDPの問題を解いて[latex]bel[/latex]からなんとか行動を得る
- 分布の平均値やその他代表値を1つ選んで行動決定するのもこの方法の単純な実装
方法1 (AMDPと呼ばれる手法群)
- 信念の数を有限個に近似
- 例[Roy 99]
- 距離センサを持つ移動ロボットのナビゲーション問題
- 4次元の状態空間を作る
- [latex]xy\\theta[/latex]を離散化
- [latex]bel[/latex]がどれだけ曖昧か数値化して離散化
- 状態遷移はなんとか計算
- あとは価値反復等で計算
- 得られる行動
- 自己位置が分からなくならないように壁沿いを走る
方法2([latex]Q_\\text{MDP}[/latex], 他)
- 有限MDPの計算結果を利用する
- 状態遷移の法則性が分かっているが、ロボットが自分の状態を完全に分からない場合に使える
- 例[Littman95]
- 確率密度関数[latex]bel[/latex]と価値関数[latex]V[/latex]から価値の期待値を計算
[latex]Q_\\text{MDP}[/latex]の例
- 碁盤の目の環境を考える
- 問題: 一番「価値の高い」行動は?
- この環境だとどうなる?
最近やっている研究
- probabilistic flow control[Ueda 2015]
- 期待値計算において「重み = パーティクルの重み/価値」とする
- ゴールに近いパーティクルが行動決定に大きな影響を与える
- 投機的な行動が生成され、ロボットがゴールを探すようになる
- ただしこれでもデッドロックは発生
- 研究は続く・・・
- 期待値計算において「重み = パーティクルの重み/価値」とする