平均シフトは、密度関数の最大値を見つけるためのノンパラメトリック 特徴空間数学解析手法であり、いわゆるモード探索アルゴリズムです。[1]応用分野には、コンピュータービジョンや画像処理におけるクラスター分析が含まれます。[2]
歴史
平均シフト法は、通常、1975年の福永とホステラーの研究によるものとされている。[3]しかし、これは1964年のシュネルによる以前の研究を彷彿とさせる。[4]
概要
平均シフトは、その関数からサンプリングされた離散データが与えられたときに、密度関数の最大値(モード)を見つける手順です。 [1]これは反復法であり、初期推定値 から開始します。カーネル関数が与えられているとします。この関数は、平均の再推定のために近くの点の重みを決定します。通常、現在の推定値までの距離に関するガウスカーネルが使用されます。によって決定されるウィンドウ内の密度の加重平均は、
ここで、は の近傍、つまり となる点の集合です。
この差は、福永とホステラー[3]では平均シフトと呼ばれています。 平均シフトアルゴリズムでは、 を設定し、収束するまで推定を繰り返します。
平均シフトアルゴリズムは多くのアプリケーションで広く使用されていますが、高次元空間で一般的なカーネルを使用したアルゴリズムの収束に対する厳密な証明はまだ知られていません。[5] Aliyari Ghassabehは、微分可能で凸で厳密に減少するプロファイル関数を使用して、1次元で平均シフトアルゴリズムの収束を示しました。 [6]しかし、1次元の場合は現実世界でのアプリケーションが限られています。また、有限数の定常(または孤立)ポイントを持つ高次元でのアルゴリズムの収束も証明されています。[5] [7]しかし、一般的なカーネル関数が有限の定常(または孤立)ポイントを持つための十分な条件は提供されていません。
ガウス平均シフトは期待値最大化アルゴリズムである。[8]
詳細
データを-次元ユークリッド空間に埋め込まれた有限集合とする。を-球体の特性関数である平坦核とする。
アルゴリズムの各反復では、すべてに対して同時に実行されます。最初の問題は、サンプルのスパースセットが与えられた場合に密度関数をどのように推定するかです。最も単純なアプローチの1つは、データを平滑化することです。たとえば、幅 の固定カーネルで畳み込むことによって、
ここで、は入力サンプルで、はカーネル関数 (またはParzen ウィンドウ) です。はアルゴリズムの唯一のパラメータで、帯域幅と呼ばれます。 このアプローチは、カーネル密度推定または Parzen ウィンドウ手法として知られています。 上記の式から計算したら、勾配上昇法またはその他の最適化手法を使用して、その極大値を見つけることができます。 この「力ずく」アプローチの問題点は、高次元の場合、完全な検索空間を評価するには計算上不可能になることです。 代わりに、平均シフトは、最適化の文献で多重再開勾配降下法として知られているもののバリエーションを使用します。ランダムな入力データ ポイントである可能性のある極大値の推測から始めて、平均シフトはでの密度推定の勾配を計算し、その方向に上り坂を進みます。[9]
カーネルの種類
カーネルの定義: を-次元ユークリッド空間とします。 のノルムは非負の数です。関数がカーネルであるとは、プロファイル、が存在し、
そして
- k は負ではありません。
- k は非増加です:の場合。
- kは区分的に連続しており、
平均シフトに最も頻繁に使用される 2 つのカーネル プロファイルは次のとおりです。
- フラットカーネル
- ガウスカーネル
ここで、標準偏差パラメータは帯域幅パラメータとして機能します。
アプリケーション
クラスタリング
2 次元空間の点の集合について考えてみましょう。 を中心とし、半径をカーネルとする円形のウィンドウを想定します。平均シフトは、収束するまでこのカーネルを高密度領域に繰り返しシフトするヒル クライミング アルゴリズムです。すべてのシフトは平均シフト ベクトルによって定義されます。平均シフト ベクトルは常に、密度が最大に増加する方向を指します。すべての反復で、カーネルは重心またはカーネル内の点の平均にシフトされます。この平均を計算する方法は、カーネルの選択によって異なります。この場合、フラット カーネルの代わりにガウス カーネルを選択すると、各点に最初に重みが割り当てられ、カーネルの中心からの距離が増加するにつれて、この重みは指数関数的に減少します。収束すると、シフトによってカーネル内の点をさらに収容できる方向はなくなります。
トラッキング
平均シフトアルゴリズムは視覚追跡に使用できます。最も単純なアルゴリズムは、前の画像内のオブジェクトの色ヒストグラムに基づいて新しい画像に信頼マップを作成し、平均シフトを使用してオブジェクトの古い位置の近くにある信頼マップのピークを見つけます。信頼マップは新しい画像上の確率密度関数であり、新しい画像の各ピクセルに確率を割り当てます。これは、前の画像のオブジェクトにピクセル色が発生する確率です。カーネルベースのオブジェクト追跡、[10]、 アンサンブル追跡、[11]、 CAMshift [12] [13]などのいくつかのアルゴリズムは、 このアイデアを拡張しています。
スムージング
を、結合空間範囲領域における次元の入力ピクセルとフィルタリングされた画像ピクセル とする。各ピクセルについて、
- 初期化して
- 収束するまで、に従って計算します。
- を割り当てます。上付き文字 s と r は、それぞれベクトルの空間成分と範囲成分を表します。この割り当ては、空間位置軸でフィルタリングされたデータが収束点の範囲成分を持つことを指定します。
強み
- 平均シフトは、実際のデータ分析に適した、アプリケーションに依存しないツールです。
- データ クラスター上で事前定義された形状を想定しません。
- 任意の特徴空間を扱うことができます。
- この手順では、帯域幅という単一のパラメータの選択に依存します。
- 帯域幅/ウィンドウ サイズ 'h' は、 k平均法とは異なり、物理的な意味を持ちます。
弱点
- ウィンドウ サイズの選択は簡単ではありません。
- ウィンドウ サイズが不適切だと、モードがマージされたり、追加の「浅い」モードが生成されたりする可能性があります。
- 多くの場合、適応ウィンドウ サイズを使用する必要があります。
可用性
アルゴリズムのバリエーションは、機械学習および画像処理パッケージで見つけることができます。
- ELKI。多数のクラスタリング アルゴリズムを備えた Java データ マイニング ツール。
- ImageJ。平均シフト フィルターを使用した画像フィルタリング。
- mlpack。効率的なデュアルツリー アルゴリズム ベースの実装。
- OpenCVにはcvMeanShiftメソッドによる平均シフト実装が含まれています。
- Orfeo ツールボックス。C++ 実装。
- scikit-learn Numpy/Python 実装では、効率的な隣接ポイントの検索にボールツリーを使用します。
参照
参考文献
- ^ ab Cheng, Yizong (1995 年 8 月). 「平均シフト、モード探索、クラスタリング」. IEEE Transactions on Pattern Analysis and Machine Intelligence . 17 (8): 790–799. CiteSeerX 10.1.1.510.1222 . doi :10.1109/34.400568.
- ^ Comaniciu, Dorin; Peter Meer (2002 年5 月) 。「Mean Shift: 特徴空間分析に向けた堅牢なアプローチ」。IEEE Transactions on Pattern Analysis and Machine Intelligence。24 ( 5): 603–619。CiteSeerX 10.1.1.160.3832。doi : 10.1109 /34.1000236。S2CID 691081 。
- ^ ab 福永 啓之助; Larry D. Hostetler (1975 年 1 月). 「密度関数の勾配の推定とパターン認識への応用」. IEEE Transactions on Information Theory . 21 (1): 32–40. doi :10.1109/TIT.1975.1055330.
- ^ シュネル、P. (1964)。 「Eine Methode zur Auffindung von Gruppen」。Biometrische Zeitschrift (ドイツ語)。6 (1): 47-48。土井:10.1002/bimj.19640060105。
- ^ ab Aliyari Ghassabeh 、 Youness (2015-03-01)。「ガウスカーネルによる平均シフトアルゴリズムの収束のための十分な条件」。多変量解析ジャーナル。135 :1–10。doi :10.1016/ j.jmva.2014.11.009。
- ^ Aliyari Ghassabeh、Youness (2013-09-01)。「1 次元空間における平均シフトアルゴリズムの収束について」。パターン認識レター。34 (12): 1423–1427。arXiv : 1407.2961。Bibcode : 2013PaReL..34.1423A。doi : 10.1016 / j.patrec.2013.05.004。S2CID 10233475 。
- ^ Li, Xiangru; Hu, Zhanyi; Wu, Fuchao (2007-06-01). 「平均シフトの収束に関する注記」.パターン認識. 40 (6): 1756–1762. Bibcode :2007PatRe..40.1756L. doi :10.1016/j.patcog.2006.10.016.
- ^ Carreira-Perpinan, Miguel A. (2007 年 5 月). 「ガウス平均シフトは EM アルゴリズムです」. IEEE Transactions on Pattern Analysis and Machine Intelligence . 29 (5): 767–776. doi :10.1109/tpami.2007.1057. ISSN 0162-8828. PMID 17356198. S2CID 6694308.
- ^ リチャード・シェリスキー、コンピュータビジョン、アルゴリズムとアプリケーション、Springer、2011
- ^ Comaniciu, Dorin; Visvanathan Ramesh; Peter Meer (2003 年 5 月). 「カーネルベースのオブジェクト追跡」. IEEE Transactions on Pattern Analysis and Machine Intelligence . 25 (5): 564–575. CiteSeerX 10.1.1.8.7474 . doi :10.1109/tpami.2003.1195991. S2CID 823678.
- ^ Avidan, Shai (2005). 「Ensemble Tracking」. 2005 IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR'05) . 第 2 巻. サンディエゴ、カリフォルニア: IEEE. pp. 494–501. doi :10.1109/CVPR.2005.144. ISBN 978-0-7695-2372-9. PMID 17170479. S2CID 1638397.
- ^ Gary Bradski (1998) Computer Vision Face Tracking For Use in a Perceptual User Interface Archived 2012-04-17 at the Wayback Machine、Intel Technology Journal、No. Q2。
- ^ Emami, Ebrahim (2013). 「CAMShift トラッキング アルゴリズムのオンライン障害検出と修正」。2013第 8 回イラン機械視覚および画像処理会議 (MVIP) 。第 2 巻。IEEE。pp. 180–183。doi : 10.1109 /IranianMVIP.2013.6779974。ISBN 978-1-4673-6184-2. S2CID 15864761。
