ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

ウェーブレット散乱

ウェーブレット散乱フレームワークでは、最小の構成で、実数値の時系列およびイメージのデータから低分散の特徴を導出し、機械学習および深層学習アプリケーションで使用できます。これらの特徴は定義した不変スケールでの入力の平行移動に影響を受けず、変形に関して連続です。2 次元の場合、特徴は回転の影響も受けません。散乱フレームワークは事前定義されたウェーブレットとスケーリング フィルターを使用します。

Mallat は、Bruna および Andén と共に、畳み込みニューラル アーキテクチャを研究するための数学的枠組みを作成した先駆者です[2][3][4][5]。Andén と Lostanlen は 1 次元信号のウェーブレット散乱の効率的なアルゴリズムを開発しました[4] [6]。Oyallon は 2 次元散乱の効率的なアルゴリズムを開発しました[7]。Andén、Lostanlen、および Oyallon は、散乱変換の計算用の ScatNet[10]および Kymatio[11]ソフトウェアの主要な貢献者です。

Mallat は他の人たちと、データから有用な特徴を抽出するために深層学習アーキテクチャが持つ次の 3 つの性質を特徴付けました。

  • マルチスケール縮小

  • 階層的対称性の線形化

  • スパース表現

ウェーブレット散乱フレームワークはこれらすべての性質を示しています。ウェーブレット変換では、異なるスケールの変動を分離して膨張などの小さな変形を線形化します。多くの自然信号で、ウェーブレット変換はスパース表現も提供します。ウェーブレット変換を、以下で説明する散乱フレームワークの他の特徴と組み合わせることで、散乱変換は、クラス "内" の差を最小化するデータ表現を生成し、一方でクラス "間" の判別性は維持します。散乱変換フレームワークと深層学習フレームワークの重要な違いは、フィルターが事前に定義されているか、学習するかです。散乱変換ではフィルター応答を学習する必要がないため、学習データが不足している場合に散乱を使用して成功することがよくあります。

ウェーブレット散乱変換

ウェーブレット散乱変換はデータを段階的に処理します。1 つの段階の出力が次の段階の入力になります。各段階は 3 つの操作で構成されています。

ゼロ次散乱係数は入力の単純平均で算出されます。以下はアルゴリズムのツリー ビューです。

{ψj,k} はウェーブレット、ϕJ はスケーリング関数、および f は入力データです。イメージ データの場合は、それぞれの ψj,k について、ユーザー指定のウェーブレットの回転がいくつかあります。根からノードまでのエッジのシーケンスは "パス" を表します。ツリー ノードはスカログラム係数です。散乱係数は、スケーリング関数 ϕJ で畳み込まれたスカログラム係数です。散乱係数のセットはデータから派生した低分散の特徴です。スケーリング関数での畳み込みはローパス フィルター処理で、情報は失われます。ただし、次の段階で係数を計算すると情報が復元されます。

データから特徴を抽出するには、最初に waveletScattering (時系列) または waveletScattering2 (イメージ データ) を使用してフレームワークを作成および設定します。設定するパラメーターには、不変スケールのサイズ、フィルター バンクの数、各フィルター バンクのオクターブあたりのウェーブレットの数が含まれます。waveletScattering2 では、ウェーブレットあたりの回転の数も設定できます。時系列から特徴を導出するには、waveletScattering オブジェクトの関数 scatteringTransform または featureMatrix を使用します。イメージ データから特徴を導出するには、waveletScattering2 オブジェクトの関数 scatteringTransform または featureMatrix を使用します。

散乱変換は、特徴を反復方式で生成します。最初に、スケーリング関数 fϕJ で時系列を畳み込み、ゼロ次散乱係数 S[0] を得ます。次に、以下のように処理します。

  1. 最初のフィルター バンクの各ウェーブレット フィルターを使用して、入力データのウェーブレット変換を実行します。

  2. フィルタリングされた各出力の絶対値を取得します。ノードはスカログラム U[1] です。

  3. スケーリング フィルターで各絶対値を平均化します。結果は、1 次散乱係数 S[1] になります。

すべてのノードでこのプロセスを繰り返します。

関数 scatteringTransform は、散乱係数とスカログラム係数を返します。関数 featureMatrix は、散乱特徴量を返します。どちらの出力も、Wavelet Time Scattering for ECG Signal ClassificationまたはTexture Classification with Wavelet Image Scatteringに示されているように、学習アルゴリズムによって簡単に消費可能にすることができます。

不変スケール

スケーリング フィルターは、ウェーブレット散乱フレームワークで重要な役割を果たします。ウェーブレット散乱フレームワークを作成するときに、不変スケールを指定します。フレームワークは不変スケールまでの平行移動に対して不変です。スケーリング関数のサポートによって、時間または空間の不変のサイズが決まります。

時間の不変要素

時系列データの場合、不変スケールは持続時間です。スケーリング関数の時間サポートは、不変のサイズを超えません。このプロットは、2 秒の不変スケールと 100 Hz のサンプリング周波数を使用するフレームワーク内のスケーリング関数のサポートを示しています。また、最初のフィルター バンクからの最も粗いスケールのウェーブレットについて、実数部と虚数部も示されています。関数の時間サポートは 2 秒を超えていないことに注意してください。

不変スケールはフィルター バンクのウェーブレットの中心周波数の間隔にも影響します。cwtfilterbank で作成されるフィルター バンクでは、バンドパスの中心周波数は対数的に等間隔で、ウェーブレットの帯域幅は中心周波数で小さくなります。

ただし、散乱フレームワークでは、ウェーブレットの時間サポートは不変スケールを超えることはできません。この性質は、最も粗いスケール ウェーブレット プロットに示されます。不変スケールより低い周波数は、スケールに対して線形に等間隔であるため、不変のサイズは超えません。次のプロットは、散乱フレームワーク内の最初のフィルター バンクにおけるウェーブレットの中心周波数を示しています。中心周波数は、線形および対数スケールでプロットされます。高い中心周波数の対数間隔と低い中心周波数の線形間隔に注目してください。

イメージの不変要素

イメージ データの場合、不変スケールはスケーリング フィルターの N x N の空間サポート (ピクセル単位) を示します。たとえば、関数 waveletScattering2 は、既定ではイメージ サイズが 128 x 128 で不変スケールが 64 のウェーブレット イメージ散乱フレームワークを作成します。次の表面プロットは、このフレームワークで使用されるスケーリング関数を示したものです。交差する赤い線で 64 x 64 の正方形が形成されます。

品質係数とフィルター バンク

ウェーブレット散乱フレームワークを作成する場合、不変スケールに加え、散乱フィルター バンクの品質係数も設定します。各フィルター バンクの品質係数は、オクターブあたりのウェーブレット フィルターの数です。ウェーブレット変換は、指定された数のウェーブレット フィルターを使用してスケールを離散化します。

このプロットは、waveletScatteringで作成されるフレームワークのウェーブレット フィルターを示しています。不変スケールは 1 秒で、サンプリング周波数は 200 Hz です。最初のフィルター バンクの品質値は既定の 8、2 つ目のフィルター バンクの品質係数は既定の 1 です。

イメージ データの場合、品質係数を大きくする必要はありません。値が大きいと計算のオーバーヘッドも大きくなります。既定では、waveletScattering2 は、品質係数がそれぞれ 1 である 2 つのフィルター バンクを含むフレームワークを作成します。このプロットは、2 つのフィルター バンクを含むウェーブレット イメージ散乱フレームワークのウェーブレットの中心周波数を示しています。最初のフィルター バンクの品質係数は 2、2 つ目のフィルター バンクの品質係数は 1 です。フィルター バンクあたりの回転の数は 6 です。

実践

ウェーブレットを正しく選択すると、散乱変換は膨張しません。フレームワークを反復するときにエネルギーが分散されます。次数 m が大きくなると、m 次のスカログラム係数と散乱係数は急速に 0 に収束します [3]。エネルギーの分散には、実用的な利点があります。信号エネルギーの損失を最小に抑えて、フレームワーク内のウェーブレット フィルター バンクの数を制限できます。公開される結果には、3 次散乱係数のエネルギーが 1% 未満になる可能性があることが示されます。ほとんどのアプリケーションでは、2 つのウェーブレット フィルター バンクが含まれる 1 つのフレームワークで十分です。

ウェーブレット時間散乱フレームワークのツリー ビューについて考えます。最初のフィルター バンクに M 個のウェーブレットがあり、2 つ目のフィルター バンクに N 個のウェーブレットがあるとします。各フィルター バンクのウェーブレット フィルターの数は、単純な実装が実現不可能になるまで大きくする必要はありません。効率的な実装ではモジュラス関数の低域の性質を利用して、散乱係数とスカログラム係数を大きくダウンサンプリングします。これらの手法は、先駆者である Anden、Lostanlen、および Oyallon[4][6][7]が、学習用に低分散のデータ表現を生成する機能は維持しながら散乱変換の計算を実用的なものにするために考案したものです。既定では、waveletScattering および waveletScattering2 は、係数を大きくダウンサンプリングするフレームワークを作成します。

参照

[1] LeCun, Y., B. Boser, J. S. Denker, D. Henderson, R. E. Howard, W. Hubbard, and L. D. Jackel. "Handwritten Digit Recognition with a Back-Propagation Network." In Advances in Neural Information Processing Systems (NIPS 1989) (D. Touretzky, ed.). 396–404. Denver, CO: Morgan Kaufmann, Vol 2, 1990.

[2] Mallat, S. "Group Invariant Scattering." Communications in Pure and Applied Mathematics. Vol. 65, Number 10, 2012, pp. 1331–1398.

[3] Bruna, A., and S. Mallat. "Invariant Scattering Convolution Networks." IEEE Transactions on Pattern Analysis and Machine Intelligence. Vol. 35, Number 8, 2013, pp. 1872–1886.

[4] Andén, J., and S. Mallat. "Deep Scattering Spectrum." IEEE Transactions on Signal Processing. Vol. 62, Number 16, 2014, pp. 4114–4128.

[5] Mallat, S. "Understanding deep convolutional networks." Philosophical Transactions of the Royal Society A. Volume 374: 20150203, 2016, pp. 1–16. dx.doi.org/10.1098/rsta.2015.0203.

[6] Lostanlen, V. Scattering.m — a MATLAB toolbox for wavelet scattering. https://github.com/lostanlen/scattering.m.

[7] Oyallon, Edouard. Webpage of Edouard Oyallon. https://edouardoyallon.github.io/.

[8] Sifre, L., and S. Mallat. "Rigid-Motion Scattering for Texture Classification". arXiv preprint. 2014, pp. 1–19. https://arxiv.org/abs/1403.1687.

[9] Sifre, L., and S. Mallat. "Rotation, scaling and deformation invariant scattering for texture discrimination." 2013 IEEE Conference on Computer Vision and Pattern Recognition. 2013, pp 1233–1240.

[10] ScatNet. https://www.di.ens.fr/data/software/scatnet/.

[11] Kymatio. https://www.kymat.io/.

参考

|

関連するトピック