CIT自律ロボット研究室

千葉工業大学 先進工学部 未来ロボティクス学科 上田隆一研究室

お知らせ: 3年生の研究室配属用の資料をアップしています。 / 

確率ロボティクス2016第10回

Tue Dec 6 11:02:01 JST 2016 (modified: Fri Nov 29 17:21:21 JST 2019)
views: 48, 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

自己位置推定の曖昧さ

  • 例えばパーティクルフィルタでもカルマンフィルタでもparticle_mean 分布は常に広がりを持つ
  • 広がっているときに平均値(と決定論的方策[latex]\\pi[/latex])を信じて動くとどうなるか?
  • そもそも平均値が意味を持たないこともある
  • 平均値でなくてもっといい行動の選び方はないだろうか?

入力が信念の方策

  • エージェントが[latex]bel[/latex]から行動決定
  • 状態空間の上で定義された方策ではなく、[latex]bel[/latex]が属する空間の上で定義された方策となる
    • 「信念に対する方策」「信念方策」
  • どうやって求めるか?
  • そもそも求められるのか?

問題の大きさ

  • 状態が100個、行動が2種類の場合
  • 有限MDP
    • 方策のパターンは[latex]2^{100}[/latex]通り
    • 価値反復を使うと
      • [latex]O[/latex](状態数・行動数・タスクの長さ)で方策を計算可能
  • POMDP
    • [latex]bel[/latex]は100個の状態上で定義される関数
      • 無限に存在
    • 無限にあるものに対する方策のパターンは無限

POMDPと ハンドコーディング

  • 例えば、パーティクルの分布から移動ロボットの行動を決めるコードを書いてみましょう
    • 例えば脱輪したり縁石に乗り上げたりしないで、できるだけ早く角を曲がる場合を考えてみましょう
    • (たいていの場合)ほぼ無限に場合分けできる
      • 疲れる
      • そもそも無理?
  • 豊富な研究テーマcorner

対策

  • センサを強化
  • 観測戦略
    • 位置の情報が得られそうな行動を能動的にとる
  • センサやアクチュエータの配置、ロボットの形状の工夫(身体性)
    • ぶつかっても壊れない
    • 情報を得やすい位置にセンサをつける
    • 情報を得やすい/情報がなくても動けるようにアクチュエータを選定して取り付け
  • 計算でなんとか良い行動を見つける

計算でなんとか

  • だいたい以下のような方針になる
  • 方法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]の例

  • 碁盤の目の環境を考える
    • qmdp1マスが1状態
    • 行動は上下左右
    • 同じ重みを持ったパーティクル10個が分布
    • タスクはゴール(G)に最短歩数で到達すること
    • 数字はコスト
    • 灰色のところに入ろうとすると 戻される
  • 問題: 一番「価値の高い」行動は?
  • この環境だとどうなる?

qmpd2

最近やっている研究

  • probabilistic flow control[Ueda 2015]pfc
    • 期待値計算において「重み = パーティクルの重み/価値」とする
      • ゴールに近いパーティクルが 行動決定に大きな影響を与える
      • 投機的な行動が生成され、 ロボットがゴールを探すようになる
    • ただしこれでもデッドロックは 発生
      • 研究は続く・・・

PFCで動くロボット

pfc_robot