Return to Video

04x-01 Office Hours Week 3

  • 0:00 - 0:05
    第3回オフィスアワーへようこそ
    早速始めましょう
  • 0:05 - 0:10
    自分も含め多くの学生から
    再サンプリングの輪について質問がありました
  • 0:10 - 0:14
    例えば0から最大値Wの2倍までの
    乱数を発生させる時
  • 0:14 - 0:18
    最大値Wの2倍という数字はどう決めたのですか?
  • 0:18 - 0:21
    数字は自分で決めました
  • 0:21 - 0:26
    この輪が粒子全体を飛び越えるように
    大きくしたかったのです
  • 0:26 - 0:31
    ただ大きすぎると探索が大変になるので
    2nが妥当だと思います
  • 0:31 - 0:35
    この数字を使うとサンプルに
    バイアスがかかりますか?
  • 0:35 - 0:37
    実は分かりません
  • 0:37 - 0:42
    粒子の選択には隣接した
    粒子間の相関関係があると思います
  • 0:42 - 0:45
    無関係に引っ張られるわけではありません
  • 0:45 - 0:50
    ただ粒子フィルタへの効果は謎なので知りたいです
  • 0:50 - 0:54
    次の2つの質問はジョージからです
  • 0:54 - 0:58
    どういう状況でどのフィルタを選択すべきか
  • 0:58 - 1:01
    知っておくべき目安はあるか知りたいそうです
  • 1:01 - 1:05
    粒子やカルマンフィルタを使い分ける目安です
  • 1:05 - 1:07
    もちろんあります
  • 1:07 - 1:11
    実装するには粒子フィルタが一番簡単ですが
  • 1:11 - 1:15
    次元の数によって指数関数的に
    複雑になってしまいます
  • 1:15 - 1:19
    高次元空間では応用できないのが難点です
  • 1:19 - 1:23
    一方カルマンフィルタはこれに対応できます
  • 1:23 - 1:27
    しかし十五次元空間なら
    通常 粒子フィルタを使います
  • 1:27 - 1:31
    単峰型分布のカルマンフィルタは
    仮説を複数持てないため
  • 1:31 - 1:35
    Mixed Rough Kalman Filterや
    Multihypothesis Kalman Filterと呼ばれる
  • 1:35 - 1:38
    拡張カルマンフィルタを使う必要があります
  • 1:38 - 1:42
    これで欠点のいくつかはカバーできます
  • 1:42 - 1:48
    ヒストグラムフィルタは粒子フィルタと
    似た状況に適用できます
  • 1:48 - 1:51
    全体的に不確実性がある状況に向いています
  • 1:51 - 1:56
    粒子フィルタで正確な仮説を見失えば
    二度と取り戻せないかもしれませんが
  • 1:56 - 1:59
    グリッドに基づくフィルタは違います
  • 1:59 - 2:03
    グリッドは多くのプログラミング
    フレームワークでサポートされています
  • 2:03 - 2:07
    他にも使えるフィルタはありますが
    精度には限界があります
  • 2:07 - 2:10
    精度はグリッドの分解能に関係しています
  • 2:10 - 2:16
    多峰型分布なら粒子フィルタがお勧めです
  • 2:16 - 2:21
    単峰型分布の持続的空間なら
    カルマンフィルタを使いましょう
  • 2:21 - 2:27
    今の答えに関連してフィルタを
    途中で切り替えることについて質問です
  • 2:27 - 2:32
    例えば単峰型分布へ収束する
    粒子フィルタがあります
  • 2:32 - 2:35
    カルマンフィルタに切り替えられますか?
  • 2:35 - 2:38
    切り替えはあまり聞きません
  • 2:38 - 2:41
    なぜならフィルタを切り替えると
  • 2:41 - 2:46
    不確実性が増加する瞬間があるからです
  • 2:46 - 2:49
    市販のGPS受信機を買うと分かります
  • 2:49 - 2:52
    二次元かナビゲーションかによって
  • 2:52 - 2:55
    複数のカルマンフィルタ つまり
    三次元のフィルタを実行する傾向があります
  • 2:55 - 2:59
    切り替える挙動が不安定になり
    ロボットに悪影響を与えます
  • 2:59 - 3:03
    切り替え前と切り替え後で
    位置の情報が異なるためです
  • 3:03 - 3:06
    完全に一致しているわけではないのです
  • 3:06 - 3:09
    フィルタを数種類 組み合わせる方法があります
  • 3:09 - 3:14
    発見者の名前をつけた
    ラオ・ブラックウェル化粒子フィルタが一般的です
  • 3:14 - 3:17
    彼らが発見したのは
  • 3:17 - 3:24
    粒子に関してある次元を固定すれば
    状態空間はガウスか単峰型分布になることです
  • 3:24 - 3:28
    個々の粒子に対して
    割り当てられたカルマンフィルタを
  • 3:28 - 3:31
    効率よく適用できます
  • 3:31 - 3:36
    これ以上深くは説明しませんが
    それがラオ・ブラックウェル化粒子フィルタです
  • 3:36 - 3:40
    何百もの次元がある空間を推定することもできます
  • 3:40 - 3:45
    実は今のがジョージの
    2つ目の質問だったので次にいきます
  • 3:45 - 3:48
    ドリューの質問です
  • 3:48 - 3:51
    動作モデルが粒子を無効な場所へ移動させると
  • 3:51 - 3:54
    フィルタに何が起こるか知りたいそうです
  • 3:54 - 3:58
    廊下のデモで粒子が壁内に入るとどうなります?
  • 3:58 - 4:01
    ありがとうドリュー いい質問です
  • 4:01 - 4:04
    答えは“粒子を殺す”です
  • 4:04 - 4:11
    まず観測モデルに“壁の中にいます”と返す
    潜在センサが必要です
  • 4:11 - 4:17
    ロボットが壁内に存在することはないので
    センサはいつも“壁の中にいません”と返します
  • 4:17 - 4:23
    そのような仮想的センサが壁の中の
    粒子の重みがゼロであることを正当化するので
  • 4:23 - 4:26
    粒子を殺したと言えるでしょう
  • 4:26 - 4:30
    ドリューからもう1つ質問があります
  • 4:30 - 4:34
    計算コストとフィルタの精度を交換したいなら
  • 4:34 - 4:38
    大きい方の粒子の数を
    動的に加減したらどうでしょう?
  • 4:38 - 4:44
    粒子の数を動的に設定することは
    よくありますし場合によってはいい考えです
  • 4:44 - 4:47
    粒子が減るにつれ計算は速くなります
  • 4:47 - 4:51
    追跡に成功し粒子が1ヵ所に集中しているなら
  • 4:51 - 4:54
    不確実性がある時ほど
    粒子を増やす必要はありません
  • 4:54 - 5:00
    非正規化された重要度重みの合計を見て
    粒子の数を設定することが多いです
  • 5:00 - 5:03
    追跡に成功するとすべての重要度重みが
  • 5:03 - 5:06
    非常に大きくなり
    粒子の数はそれほど必要ありません
  • 5:06 - 5:09
    すべての重要度重みがとても小さいなら
  • 5:09 - 5:13
    追跡は失敗なので多くの粒子が必要です
  • 5:13 - 5:17
    ですが想定外の観測は重みを小さくします
  • 5:17 - 5:23
    解決法は非正規化された重要度重みを
    ある閾値に達するまで粒子をサンプルして
  • 5:23 - 5:26
    閾値に達したらサンプルを止めます
  • 5:26 - 5:32
    取り扱うのは大体リアルタイムシステムなので
    粒子の量を毎回調節する余裕はありません
  • 5:32 - 5:36
    決まった時間内に推定を行いたいからです
  • 5:36 - 5:42
    それなら追跡がうまくいっている時には
    粒子を少なくする方が現実的です
  • 5:42 - 5:46
    次はタカからの質問です
  • 5:46 - 5:51
    彼は動くランドマークと動かないランドマークを
    どう区別するか知りたがっています
  • 5:51 - 5:56
    講義で取り扱った地図はすべて静止していて
    ランドマークも固定でした
  • 5:56 - 5:59
    自動運転車はどうやって動いている車両や人と
  • 5:59 - 6:02
    動かないランドマークを区別するのでしょうか?
  • 6:02 - 6:04
    すばらしい質問です
  • 6:04 - 6:10
    まずGoogleの車は道路の表面地図のように
    地上地図も静止しているものと仮定しています
  • 6:10 - 6:15
    秘密ですが車線区分線が少しでも動いたら
    車は混乱してしまいます
  • 6:15 - 6:20
    ですのでGoogle車が来たら
    車線区分線を塗り替えないでください
  • 6:20 - 6:26
    地面から突き出たものとは方法は異なりますが
    ランドマークとして使っています
  • 6:26 - 6:32
    ものが動くか動かないかの可能性を伝える
    閾値確率を持たせています
  • 6:32 - 6:38
    これは対応づけることにより行います
    つまり1ステップ前と1ステップ後の時間を観測し
  • 6:38 - 6:44
    2つの観測間で最も似ている部分を探し
    その間に動作ベクトルが存在するか判断します
  • 6:44 - 6:47
    時にはノイズであると見なせますが
  • 6:47 - 6:50
    車や人間には非常にはっきりとした
    動作が表れますので
  • 6:50 - 6:54
    移動や追跡をしていると想定できます
  • 6:54 - 6:59
    事前地図を作る方法の1つは
    車で何回も同じ場所を走ることです
  • 6:59 - 7:03
    差分を取って何回も確認されたものの多くは
    動かないものだと言えます
  • 7:03 - 7:07
    また道路上に動かないものは
    ほぼないと分かります
  • 7:07 - 7:09
    動くものばかりです
  • 7:09 - 7:15
    なので道路の真ん中には
    動かないものはないと推測できます
  • 7:15 - 7:18
    すべてまとめればいい追跡システムになります
  • 7:18 - 7:23
    ありがとうございます 今回はここまで
    次回もよろしくお願いします
  • 7:23 - 7:25
    1つだけ言わせてください
  • 7:25 - 7:30
    粒子フィルタの課題を
    皆さんが肯定的に受け止めたと聞きました
  • 7:30 - 7:33
    作るのに時間がかかったのでうれしかったです
  • 7:33 - 7:37
    ディスカッション・フォーラムには
    グラフィカル版が投稿されているので
  • 7:37 - 7:40
    ダウンロードしましたが非常によさそうです
  • 7:40 - 7:45
    カーソル移動キーをうまく使えませんでしたが
    可視化の基本としてとてもいいです
  • 7:45 - 7:49
    粒子フィルタは可視化なしでは分かりにくいので
  • 7:49 - 7:53
    現状 可視化できていないのが申し訳ないです
  • 7:53 - 7:58
    次回までにはきっと修正されると思いますので
    楽しんでください
  • 7:58 - 8:02
    他にディスカッション・フォーラムで気づいたのは
  • 8:02 - 8:06
    難しい課題を求める人がいるということです
  • 8:06 - 8:11
    全員がそうであるか分からないので
    どうか意見をください
  • 8:11 - 8:13
    教えてください
  • 8:13 - 8:17
    講義の集大成として実際の車の小型版を
  • 8:17 - 8:20
    作り上げるという課題を考えています
  • 8:20 - 8:25
    とても難しい課題になると思うので意見をください
  • 8:25 - 8:29
    このコースのレベルはスタンフォード大学並です
  • 8:29 - 8:32
    皆さんが取り組んでいる課題は
  • 8:32 - 8:36
    スタンフォードの優等生に
    期待するレベルと同じです
  • 8:36 - 8:42
    スタンフォードで教えるのと同程度のペースで
    ここまでのプログラミングを学びました
  • 8:42 - 8:47
    ロボット作りの課題を行えば
    スタンフォードのレベルを超えることになります
  • 8:47 - 8:49
    皆さんの反応次第です
  • 8:49 - 8:53
    フォーラムにあなたの意見を投稿してください
  • 8:53 - 8:55
    ありがとうございました
  • 8:55 - 8:58
    では次回
タイトル:
04x-01 Office Hours Week 3
概説:

Other units in this course below:
Unit 1: http://www.youtube.com/playlist?list=PL1EF620FCB11312A6
Unit 2: http://www.youtube.com/playlist?list=PL107FD47786234011
Unit 3: http://www.youtube.com/playlist?list=PL5493E5D24A081719
Unit 4: http://www.youtube.com/playlist?list=PLAADAB4F235FE8D65
Unit 5: http://www.youtube.com/playlist?list=PL1B9983ACF22B1920
Unit 6: http://www.youtube.com/playlist?list=PLC9ED5AC39694C141
QA: http://www.youtube.com/playlist?list=PL3475310BFB1CBE34

To gain access to interactive quizzes, homework, programming assignments and a helpful community, join the class at http://www.udacity.com

more » « less
Team:
Udacity
プロジェクト:
CS373 - Artificial Intelligence
Duration:
08:58

Japanese subtitles

改訂