2018年3月15日木曜日

Dempster Shafer Theory (DST)とかいうやつ

日本語の分かりやすい説明が見当たらないので少し考えてみました(合っているかは保証しません)。

Dempster Shafer Theory (DST)を3行で


Wikiに書いてありますが、ざっくりまとめると
  • ベイズの拡張(一般化)バージョン
  • ベイズよりあいまいさに寛容
  • いろんなデータをfusionするの得意


みたいです。ベイズに関してはWiki含めたくさん解説記事あるのでそちらに任せます。

ベイズの拡張(一般化)バージョン?


例えばベイズのwikiにクッキーの例がありますが、ベイズでは全ての事柄に確率が存在します。ボウル1からプレーンクッキーが出る確率、ボウル2を選ぶ確率、なんでもかんでも確率です。しかし、そんなになんでも確率を計算できるのでしょうか?いくつかイジワルな質問を並べます。

  • ボウルの中でクッキーが割れている確率は?
  • 知らない間に誰かがクッキーを食べていた確率は?
  • クッキーが湿気でくっついている確率は?

これらは極端な例ですが、要はあらゆる事象に確率を付与するのは現実的ではない、という話です。

分からないものは分からない、それでいいじゃないか。
いろんな事柄に重みをつけてミックスして尤もらしい情報を計算しようよ。

こうしてDSTは産まれたのです(適当)。

ベイズよりあいまいさに寛容?


ベイズの定理でググると、P(A)だのP(B)だの出てきます。
ベイズさんはAである確率、Bである確率、みたいな感じでなんでも確率を付与したがります。


でもAかBか分からない場合もあるし、AとB両方だったりAでもBでもない可能性もあるわけです。
これがCとかDとか増えると更にわけわからなくなります。

例えば、家に帰って自分のプリンが冷蔵庫から消えていた時。
家には父、母、妹の3人の容疑者がいます。


父は甘いものが嫌い、母は真面目、妹は前科があるとします。
ベイズ的に考えると圧倒的に妹が不利な条件ですが、DSTはもう少し寛容です。

そもそもプリンは本当に誰かが食べたのか?
もしかしたら誰も食べてなくて移動されただけかもしれない。
間違えて母が捨てたのかもしれない。
自分の記憶違いでもう食べたんじゃないか?

などなど、あらゆる可能性を考えるのですぐに妹に攻撃はしません。

DSTのような大人でありたいものですね(適当)。

いろんなデータをfusionするの得意?


さて、そろそろ真面目な話をすると、ベイズやDSTはoccupancy gridなどでよく使われます。


移動ロボット、自動運転などで障害物の位置を計測・記憶しておくアレです。

ここでノイズのないセンサ1個で障害物を探す場合はベイズさんで余裕ですが、現実はそんなことはありません。
カメラ、レーダー、ライダー、いろんなセンサのいろんな不確定要素を考慮した上で1つのoccupancy gridを算出するのは結構大変です。

そんないろんなセンサ情報をfusionする、いわゆるsensor fusionにおいてDSTは活躍します。


DSTのwikiにも書いてありますがあらゆるセンサの時系列情報を累積的に取り込むので、全センサ情報を有効活用しますよ、という懐の深さを持っています。
(ただ当然DSTの方が複雑かつ計算コストは増えます)

おわりに


以上、いまいち分かりづらいDSTを噛み砕いてみましたが、簡略化しすぎてそんなに正確な説明ではありません。
DST面白そうやん、と思った方は気合を入れてwikiを読むことをオススメします。
(codingはIn Progressです、またいずれ。。。)

おわり。