確率ロボティクス第8回: 機械学習(その2)

千葉工業大学 上田 隆一


This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. Creative Commons License

確率ロボティクス第8回

今回の内容

  • クラスタリング
  • EM法
  • 変分推論
確率ロボティクス第8回

クラスタリングの重要性

  • アドバンストビジョンの第1回のおさらい
    • 右の図は何に見えますか
    • なんで猫に見えるのか?
  • たぶん丸い部分1つと三角の部分2つに点をまとめている(クラスタリングしている)
確率ロボティクス第8回

まとめると何がわかるか

  • たとえば目の前になにがあるかを知りたい場合
    • やらなければいけないこと: 視細胞の反応認識対象(猫など)
      • 多数の刺激「猫」という1単語
      • 「減らす」という作業が脳内で必要となる
        • 減らす=代表値(特徴量)にまとめる
  • 左図: 実物の畑の作物と、茎と葉を分類した画像
    • ロボット用
    • いろんな色が3色に減っている
    • 人間は右のような分類結果を(時間をかければ)描ける
確率ロボティクス第8回

クラスタリングの古典的手法

  • ロボット分野で30年前から利用されてきたもの
    • k-means法
    • EM法
  • 解く問題
    • 点が散らばっているときに、どれとどれが同じグループに属するか決める
確率ロボティクス第8回

k-means法

  • データを適当にクラスタに分けて、以下の繰り返しで収束させる
    • 各クラスタの中心を求める(図中の印)
    • 各データを最寄りの中心を基準に再度クラスタリング

確率ロボティクス第8回

数字をk-means法でクラスタリングしてみましょう

  • 次の9個の数値を3つのクラスタに分けてみましょう
    • (8, 1, 3), (5, 5, 2), (6, 11, 7)
      • かっこは適当に分けた初期のクラス分けを表します
    • 答えは次のページ
  • 注意
    • 平均値が同じになったら所属クラスタは適当に選択のこと
    • あるデータに対して近い平均値が2つ以上になったら(同じ距離になったら)
      元いたクラスを替えてみる
確率ロボティクス第8回

こたえ

  • 初期値: (8, 1, 3), (5, 5, 2), (6, 11, 7) クラスタの平均値: 4, 4, 8
  • 再配置: (1, 5, 2), (3, 5), (8, 6, 11, 7) クラスタの平均値: 2.666..., 4, 8
  • 再配置: (1, 2, 3), (5, 5), (8, 6, 11, 7) クラスタの平均値: 2, 5, 8
  • 再配置: (1, 2, 3), (5, 5, 6), (8, 7, 11) クラスタの平均値: 2, 5.333..., 8.666...
  • 再配置: (1, 2, 3), (5, 5, 6, 7), (8, 11) クラスタの平均値: 2, 5.75, 9.5
  • 再配置: (1, 2, 3), (5, 5, 6, 7), (8, 11) (変わらず。終了)
確率ロボティクス第8回

k-means法の問題

  • 最初からクラスタ数を決めていいのか?
    • センサやロボットのプログラミングのときに特に困る
      • たとえば画像に人が何人いるかが知りたい。最初から3人と分かることはあまりない。
  • クラスタがいびつだったら?
    • これはいびつさを解消するようにデータを変換するか、別の方法を用いる(サポートベクターマシーンなど)
  • もっと根本的な問題: データの発生した理由を考えていない(つまり場当たり的)
確率ロボティクス第8回

EM法(最尤法)

  • EM: expectation maximization
    (どういう意味かはあとで説明)

  • ある確率分布のモデル(数式)を考え、データを
    最ももっともらしく説明するパラメータを求める
    • なんで右図のようなデータが発生したのか?
      データの発生源がいくつかあって、
      そのまわりにデータが発生、と考える
確率ロボティクス第8回

「データの発生源がいくつかあって
そのまわりにデータが発生」

この場合の基本的なモデル: 混合ガウス分布

  • 複数のガウス分布を足して、
    正規化(積分して1に)したもの


      • (注意: 円周率ではなく、混合比率
  • 絵に描くと右図のように
    (ちょっと当てはまりは悪いです)
確率ロボティクス第8回

データに対する「一番尤もらしい分布」

  • 次の尤度を最大化するものが「一番尤もらしい」と考える
      • 左辺: データが生成した確率の密度
      • 右辺: 各データの密度の掛け算
      • データは既知なので、最も尤もらしい(最尤な)パラメータや、その尤度を求める問題に
    • 具体的に書くと
      • 左辺
  • 対数をとって掛け算を足し算にして、対数尤度を最大化する問題にする
      • 問題が等価で簡単なものに
確率ロボティクス第8回

対数尤度が最大になるパラメータの求め方(k-means法と似ている)

  1. 最初に適当にクラスタリング
  2. Mステップ(maximization step)
    • 尤度が最大となる各クラスタのを算出
  3. Eステップ(expectation step)
    • に基づきデータをクラスタリング
      • その時点での各データのクラスタへの所属の確率を計算

確率ロボティクス第8回

Eステップ

  • 各データについて、どのクラスタにどれくらいの確率で所属しているのか求めたい
    • 混合ガウス分布のパラメータは固定で
    • k-meansと違って、1つのクラスタへの所属に断定しない
      • 分からないのだから曖昧にしておく
  • 数学的には
    • の属するクラスタ番目のクラスタである確率の値を求めたい
      • の場合すべてに対して
    • のような変数は隠れているので潜在変数と呼ばれる
確率ロボティクス第8回

の計算方法

  • は、クラスタのガウス分布の密度に混合比率をかけたものになる
  • 計算式の導出
    • (ベイズの定理)
      • : 番目のクラスタのガウス分布
      • : の情報がないときに番目のクラスタにデータがいる確率(
    • ←計算できる
      • は各クラスタに対するの値の和がになるように決める
確率ロボティクス第8回

Mステップ

  • を固定して分布のパラメータを計算
  • 方法(で重みをつけて統計をとる)
    • 補助のパラメータを考える
      • 各クラスタの要素の個数に相当
    • 各クラスタの大きさと、平均値、共分散行列をに基づいて計算
確率ロボティクス第8回

EM法で可能となること/ならないこと

  • 可能になること
    • 確率的な考え方の導入
      • (実例がなくて申し訳ないのですが)性能はk-meansより上がる
        • はっきりしないことは曖昧なままにしたほうが変な間違いが少ない
      • 「確率モデルに対して最尤」という基準ができる
      • 他の確率モデルにも適用できる
  • 可能にならないこと
    • もっと確率的であってもよい
      • パラメータにも分布がある(混合ガウス分布も確率的にばらつく)
    • ガウス分布の個数が決まっている
      • 不要な個数の分布が消えるほどの性能はない
確率ロボティクス第8回

変分推論

確率ロボティクス第8回

第5回のおさらい

  • 実験の成功、失敗の結果から、「成功率の分布」を考えた
    • ベータ分布:
    • 実験の結果を1つずつ反映していくと、成功率の分布が変化していった
      • 下図: 成功、成功、失敗、失敗の場合の分布の推移
        • 成功率1/2と決めつけない
    • 分布の変化はベイズの定理で計算できた

確率ロボティクス第8回

混合ガウス分布のベイズ推定

  • 「混合分布の分布」を考える
    • 右図のように分布をドローできるもの
  • EM法との違い
    • 最尤なものでなく、分布の分布自体を計算
    • データが入ると分布をベイズの定理で更新
  • 問題: 事後確率がベイズの定理一発で計算できない
    • どうするか?EM法のように少しずつ分布の分布を変えていく
確率ロボティクス第8回

推定対象(混合ガウス分布)のパラメータ

「分布の分布」ではなく「分布」のほうの話

  • 各ガウス分布のパラメータ:
    • (おさらい)混合ガウス分布:


  • 各データ)の所属
    • どのガウス分布に所属しているか
    • 潜在変数
確率ロボティクス第8回

変分推論による解法

  • 推定対象の分布を、パラメータごとに独立な分布の積にして近似
      • : 近似の分布
    • のどちらかを固定、どちらかを動かして交互にデータに合わせていく
      • を動かす: クラスタの再構成
      • を動かす: 分布の再構成
        EM法と同じ(だけど計算はよりややこしく)
  • 次ページから
    • とさらに分解してをモデル化
確率ロボティクス第8回

のモデル化

  • 番目のデータ番目のクラスタに所属する
    となる)確率分布を考える
    (添字はデータやクラスタのものでないので注意)
    • と表しましょう
    • これは特定の式にせずにテーブル状のデータに
  • 各データに対するの積をとする
確率ロボティクス第8回

のモデル化

  • ディリクレ分布を仮定
    • ベータ分布をコインの裏表だけでなく多変数に拡張したもの
      • 例: さいころなら6

      • : のばらつきを決める
        パラメータ
        • の合計値が大きくなるほど値が定まってくる
確率ロボティクス第8回

のモデル化

  • 各ガウス分布の分布:
    ガウス-ウィシャート分布
      • ウィシャート分布: 精度行列の分布
      • 各ガウス分布の分布を決めるパラメータ:
  • 各ガウス分布ごとのの積をとする
確率ロボティクス第8回

これまでの変数、パラメータ一覧表

データ 推定したい分布のパラメータ 推定したい分布の分布のパラメータ
  • : データの数)
  • : ガウス分布の数)
確率ロボティクス第8回

変分推論の手続き

  1. 適当にの事前分布を決める
    • 確率を初期化(クラスタリングに相当)
    • パラメータの初期値を与える
      • としましょう
  2. を固定し、の事後分布のパラメータを計算
    • EM法のMステップに相当(変分Mステップ
  3. を固定し、(つまり)を計算
    • EM法のEステップに相当(変分Eステップ
  • 注意: は固定
    • 事前分布を固定して、繰り返し事後分布の解を良くしていく
確率ロボティクス第8回

変分推論の威力(その1)

とても強力なので具体的な計算方法の前に例を見せます

  • 例1: 2次元の点のクラスタリング
    • 右図: 6個のガウス分布を含む混合ガウス分布からランダムに選んだ点
    • このデータのクラスタリング(というより発生した混合ガウス分布の推論)に変分推論を適用するとどうなるか
確率ロボティクス第8回

推論の推移

  • 混合ガウス分布の分布から平均値となる分布を描画
  • 10の分布があることを仮定不要な分布が消えていく(の値が0に収束)

確率ロボティクス第8回

正解との比較

  • 共分散行列のずれは多少あるが、正確
    • 人間より正確かもしれない
    • (上限があるものの)数が数えられるのはかなり有用

確率ロボティクス第8回

変分推論の威力(その2)

  • 例2: 1次元のデータの解析
    • 講師が本を書いていて偶然発見
    • 右の分布はガウス分布か?
確率ロボティクス第8回

変分推論してみると・・・

  • もうひとつの分布が埋まっていた
    • このデータは、あるセンサの値を3秒ごとにとったもので、日が出ているときと出ていないときで平均値が違っていた
    • ある意味、人間よりもクラスタリングの解像度が高い

確率ロボティクス第8回

実世界での使用例1

  • ボルトの先端の検出
    • 3次元の位置を1次元に変換してからクラスタリング

確率ロボティクス第8回

実世界での使用例2

  • 物体表面の把持位置の
    クラスタリング
    • 法線ベクトルの位置、向きの6次元空間
確率ロボティクス第8回

変分推論の具体的な計算

  • 導出は難しすぎるので(教科書に解説あり)、
    MステップとEステップでの作業だけ示します
    • の事後分布をベイズの定理で導出
    • 導出された式に当てはめるだけで使用可能
確率ロボティクス第8回

変分Mステップ(各データの所属から分布のパラメータを計算)

  • 補助の数値を計算
    • (分布の重み付きデータ数)
    • (分布の重み付き平均)
    • (分布の重み付き共分散行列)
  • 事後分布のパラメータを計算
    • (データの個数だけ増大)
    • の中心の調整)

    •     (各ガウス分布の共分散行列の調整)
確率ロボティクス第8回

変分Eステップ(分布のパラメータから各データの所属を計算)

  • の分布: 次の計算で導出
  • 計算結果: 次のが、になる確率


      • 式中の変数はすべて一時的に値が決まっているか既知なので計算可能
        • : の次元
        • : ディガンマ関数という関数(高級な言語にはライブラリあり)
確率ロボティクス第8回

まとめ

  • k-means、EM法をまず勉強
    • 確率的な考えのないものと、ベイズ未満の確率的なもの
  • 変分推論(変分ベイズ)
    • 混合分布の分布を考える
    • EM法とおなじく繰り返しでクラスタを形成していく
      • 計算方法が(扱わなかったけど)ベイズの定理に基づいている
    • 強力
確率ロボティクス第8回

補足資料

確率ロボティクス第8回

EM法の一般的な導出

  • p.13の対数尤度、p.14の潜在変数を次のように記述(記号を減らすため)
  • を変形

    • (←最後の項は対数尤度)
  • 対数尤度を右辺に移動し、各項にをかけてで積分(

  • 左辺の積分は内にないので外せる
確率ロボティクス第8回

潜在変数を考慮してEM法を導出(続き)

  • 右辺に足して0になる2項を増やして配分



  • 新たな関数を定義して整理
確率ロボティクス第8回

できた式

    • ): 潜在変数の分布
    • : カルバック・ライブラー距離
      • 分布の形状の違いを数値化したもの
        (一致するとで、違うほどと正の大きな値に)
    • : 変分下界
      • 対数尤度(左辺はこれより値が下にならない。KLが0以上なので)
確率ロボティクス第8回

できた式と使い方

    • ): 潜在変数の分布
    • : カルバック・ライブラー距離
      • 分布の形状の違いを数値化したもの
        (一致するとで、違うほどと正の大きな値に)
    • : 変分下界
      • 対数尤度(左辺はこれより値が下にならない。KLが0以上なので)
  • 使い方
    • に固定して「良い」を探す(Eステップ
      • にするのがよさそうが対数尤度に一致
    • を固定してに更新(Mステップ
      • が最大になるように(対数尤度も大きくなってより良い結果に)
確率ロボティクス第8回