cvim mean shift-3
DESCRIPTION
コンピュータビジョン最先端ガイド-2 2章3節TRANSCRIPT
第二章 3. ミーンシフトの理論
コンピュータ最先端ガイド勉強会
発表者 : 坪坂 正志
m.tsubosaka(at)gmail.com
2011/1/8 コンピュータ最先端ガイド勉強会 1
本節の内容
• 前半(3.1-3.3)
– カーネル密度推定とミーンシフトの関係について
• 後半(3.4,3.5)
– カーネル幅の推定について(3.4)
– 理論的比較(3.5)
2011/1/8 コンピュータ最先端ガイド勉強会 2
本節の内容
• 前半(3.1-3.3)
– カーネル密度推定とミーンシフトの関係について
• 後半(3.4,3.5)
– カーネル幅の推定について(3.4)
– 理論的比較(3.5)
2011/1/8 コンピュータ最先端ガイド勉強会 3
カーネル密度推定とは
• ノンパラメトリックな密度関数の推定法
– Parzen windowsとも呼ばれる
– ここでいうノンパラメトリックとは特定の分布関数を仮定しないということ
– 逆にデータが正規分布に従うなどの仮定を入れる方法のことをパラメトリックと呼ぶ
2011/1/8 コンピュータ最先端ガイド勉強会 4
[Hastie+2009] The elements of Statistical Learning : Data Mining, Inference, and Prediction (2nd edition)より
カーネル密度推定の式
• データ点の集合 : 𝑆 = *𝑥𝑖|𝑖 = 1, … , 𝑛+
• カーネル関数𝐾, その幅
• カーネル密度推定による分布関数
• データ点を中心とおいた幅hのカーネル関数の和として表される
2011/1/8 コンピュータ最先端ガイド勉強会 5
𝑓𝐾 𝑥 =1
𝑛𝑑 𝐾(𝑥, 𝑥𝑖 , )
𝑛
𝑖=1
本節で扱うカーネルのタイプについて
• 球対称な形のカーネルについて考える
• プロファイルと呼ばれる𝑥 ≥ 0上の有界で区分的に連続な非負値の関数𝑘(𝑥)を用いて
• 𝐾 𝑥, 𝑥𝑖 , = 𝑘(𝑥−𝑥𝑖
2)の形のカーネルを扱う
• カーネル密度推定の式
2011/1/8 コンピュータ最先端ガイド勉強会 6
𝑓𝐾 𝑥 =1
𝑛𝑑 𝑘(
𝑥 − 𝑥𝑖
2
)
𝑛
𝑖=1
カーネルの例
2011/1/8 コンピュータ最先端ガイド勉強会 7
カーネルの名前 プロファイル関数
正規分布カーネル 𝐴𝑔 exp(−
1
2𝑥)
Epanechnikovカーネル 𝐴𝑒 1 − 𝑥 (0 ≤ 𝑥 ≤ 1) 0 (𝑥 > 1)
フラットカーネル 𝐴𝑓 0 ≤ 𝑥 ≤ 1
0 (𝑥 > 1)
ここで正規化項の部分はミーンシフトの場合は比の形となるので簡単のため1とおく
カーネル密度関数の勾配
• カーネル密度関数の勾配を求める
• ここで𝑔 𝑥 = −𝑘′(𝑥)とおくと
2011/1/8 コンピュータ最先端ガイド勉強会 8
𝛻𝑥𝑓𝐾 𝑥 =1
𝑛𝑑+2 𝑥 − 𝑥𝑖 𝑘′(
𝑥 − 𝑥𝑖
2
)
𝑛
𝑖=1
𝛻𝑥𝑓𝐾 𝑥 =1
𝑛𝑑+2 𝑥𝑖 − 𝑥 𝑔 (
𝑥 − 𝑥𝑖
2
)
𝑛
𝑖=1
=1
𝑛𝑑+2 𝑔
𝑥 − 𝑥𝑖
2𝑛
𝑖=1
× 𝑔
𝑥 − 𝑥𝑖
2𝑥𝑖𝑖
𝑔𝑥 − 𝑥𝑖
2
𝑖
− 𝑥
カーネル密度関数の勾配
• カーネル密度関数の勾配を求める
• ここで𝑔 𝑥 = −𝑘′(𝑥)とおくと
2011/1/8 コンピュータ最先端ガイド勉強会 9
𝛻𝑥𝑓𝐾 𝑥 =1
𝑛𝑑+2 𝑥 − 𝑥𝑖 𝑘′(
𝑥 − 𝑥𝑖
2
)
𝑛
𝑖=1
𝛻𝑥𝑓𝐾 𝑥 =1
𝑛𝑑+2 𝑥𝑖 − 𝑥 𝑔 (
𝑥 − 𝑥𝑖
2
)
𝑛
𝑖=1
=1
𝑛𝑑+2 𝑔
𝑥 − 𝑥𝑖
2𝑛
𝑖=1
× 𝑔
𝑥 − 𝑥𝑖
2𝑥𝑖𝑖
𝑔𝑥 − 𝑥𝑖
2
𝑖
− 𝑥
ミーンシフトの更新式
カーネル密度関数の勾配
• 整理すると
• これから
• なお、このようなミーンシフトカーネルGに対応するカーネルKをカーネルGのシャドウカーネルと呼ぶ
2011/1/8 コンピュータ最先端ガイド勉強会 10
𝛻𝑥𝑓𝐾(𝑥) =2
2𝑓𝐺(𝑥) 𝑚𝐺(𝑥) − 𝑥
𝑠𝐺 𝑥 =2
2𝑓𝐺(𝑥)𝛻𝑥𝑓𝐾 𝑥
ミーンシフトのステップ 密度関数の勾配方向
ミーンシフトの性質
• ミーンシフトにおける最頻値探索はカーネル密度関数上の最頻値に収束する
– なおミーンシフトで使うカーネルと密度関数推定で使うカーネルは一般には同じではない、ただし正規分布カーネルにおいては同じ。
• ステップ幅を自動設定する最急降下法とみなすこともできる
– 密度の小さいところではステップ幅が大きく、密度の高い最頻値に近いところではステップ幅が小さくなる
– これにより効率的で振動のない収束が得られることが推測できる
2011/1/8 コンピュータ最先端ガイド勉強会 11
ミーンシフトの性質
2011/1/8 コンピュータ最先端ガイド勉強会 12
カーネル密度関数
ミーンシフトの性質
2011/1/8 コンピュータ最先端ガイド勉強会 13
カーネル密度関数
ミーンシフトの収束定理
• ミーンシフトの収束性については以下の定理が知られている[15,32]
2011/1/8 コンピュータ最先端ガイド勉強会 14
ミーンシフトの収束定理[15 Theorem 1]
• カーネルKが凸状で単調減尐するプロファイルkを持つならば, KをシャドウとするカーネルGを用いたミーンシフトによる最頻値探索は, Kによる密度関数上の初期値近傍の最頻値点に必ず収束する。
本節の内容
• 前半(3.1-3.3)
– カーネル密度推定とミーンシフトの関係について
• 後半(3.4,3.5)
– カーネル幅の推定について(3.4)
– 理論的比較(3.5)
2011/1/8 コンピュータ最先端ガイド勉強会 15
本節の内容
• 前半(3.1-3.3)
– カーネル密度推定とミーンシフトの関係について
• 後半(3.4,3.5)
– カーネル幅の推定について(3.4)
– 理論的比較 (3.5)
2011/1/8 コンピュータ最先端ガイド勉強会 16
カーネル幅推定の重要性
• 例えばミーンシフトを用いたクラスタリングではクラスタ数を与える必要はなく、データに応じてクラスタ数が決まる
2011/1/8 コンピュータ最先端ガイド勉強会 17
But… • クラスタ数はカーネルの幅に大きく作用される
• 適切なカーネル幅を選ぶ必要がある
カーネル幅による影響
• カーネル幅の値により、カーネル密度推定の結果が大きく変わる
– 幅が小さすぎるとすべての点でピークをとるようになる
– 幅が大きすぎると単峰の分布となる
2011/1/8 コンピュータ最先端ガイド勉強会 18
= 0.05 = 0.5 = 5
カーネル幅の推定手法に関する研究
• 統計的手法[46,49,58,64] – カーネル密度推定の誤差を最小化する
– 未知の真の密度関数𝑓(𝑥)とそのカーネル推定𝑓 (𝑥)の誤差を何らかの基準 ISE(integrated squared error), MISE(mean ISE), AMISE(asymptotic MISE)で最小化する
• ミーンシフトベクトルに基づく手法 – ミーンシフトベクトルの長さを最大化[17]
• 高次微分や非等方カーネル幅行列への拡張[37]
– SIFT法の基礎である自動スケール決定法とも関係[33]
• 安定性を指標とした手法 – クラスタ解析の安定性を最適化[23]
– ピークにガウス関数を当てはめ、結果が最も安定となる幅を採用する手法[11,35,37,38]
2011/1/8 コンピュータ最先端ガイド勉強会 19
応用利用
• 応用に関する研究
– サンプルデータから求めたカーネル幅を使って、階層的クラスタリングに応用している[63]
– 安定な画像領域分割アルゴリズムへの応用[65]
• 実装に当たって
– これらの研究結果はあるが、問題の設定次第で最適化の定義が違うため、カーネル幅の導出を行う決定的な方法はない
– 問題によってはGUIやシステムの他部位の出力を使った値決めも考えられる
2011/1/8 コンピュータ最先端ガイド勉強会 20
本節の内容
• 前半(3.1-3.3)
– カーネル密度推定とミーンシフトの関係について
• 後半(3.4,3.5)
– カーネル幅の推定について(3.4)
– 理論的比較(3.5)
2011/1/8 コンピュータ最先端ガイド勉強会 21
ロバスト推定との関係
• データとして{3,4,5,8000}が与えられたとする – 単純に平均をとると2003になる
– 8000を外れ値としてみなし、平均は4という方が妥当
– 4の近傍で注目する領域幅が十分に小さければ実際の平均4を推定できる
– カーネル法を適応することにより外れ値(outlier)の影響を減らせる
• また上のデータは最頻値が複数存在する分布からデータが生成されているとみなすことができる – このような分布をマルチモーダルな分布と呼ぶ
• このようなデータからノイズに頑強に元の分布を求める手法をロバスト推定と呼ぶ
2011/1/8 コンピュータ最先端ガイド勉強会 22
ロバスト推定との関係
• 最尤推定
– 元の分布のモード位置𝑦に対して尤度分布𝑝(𝑥1, … , 𝑥𝑛|𝑦)の最尤推定はカーネル密度推定関数の最大化と理解できる
• M推定法
– 原点が最小値で単調増加する対象非負関数𝜌を用いて、 𝜌(|𝜃 − 𝑥𝑛|)𝑛 を最小とするように𝜃を最適化
– 𝜌を適切に選ぶことにより、外れ値に頑強な推定ができる
– これは実はカーネル密度関数の符号を逆にしたものと一致する
2011/1/8 コンピュータ最先端ガイド勉強会 23
ミーンシフト公式の理論的導出
• 前半説明したカーネル密度推定式の微分を元にした導出の他にも導出がある
• 界面関数最適化(variational bound optimization)の理論に基づくもの[21,50]
– 目的関数の二次下界関数の最適化の枠組みを使い、ミーンシフトとNewton法が同値であることが示せる[21]
– 5節で扱う最大事後確率推定への拡張へも使われている
2011/1/8 コンピュータ最先端ガイド勉強会 24
高速化について
• ミーンシフトの計算においてはナイーブに行うと𝑂(𝑛2𝐼)かかるためコストが大きい(𝑛:データ数, 𝐼 : 繰り返し数)ので高速化の手法がいくつか提案されている
• 高速ガウス変換を応用したもの[68]
– カーネル和を高速に求める
• EMアルゴリズムとの同値性を利用したもの[4,6]
• Half-quadratic最適化の枠組みを使ったもの[71]
2011/1/8 コンピュータ最先端ガイド勉強会 25
非線形空間への拡張
• ミーンシフトの収束先が球面状に載っているという制約をつけたいとかを考えたとき、単純に平均をとると球面に載るとは限らない
– データが三次元空間にあるのではなく非線形な二次元空間状にあると考えるとうまくいく
– Riemann多様体への拡張[51-55,59]
– 一般的な距離空間への拡張(medoidshift)[47]
– 詳しくは5節で触れる
2011/1/8 コンピュータ最先端ガイド勉強会 26