Main Content

特徴抽出

特徴抽出とは

特徴抽出は、入力特徴量を新しい出力特徴量にマッピングする一連の方法です。多くの特徴抽出法では、教師なし学習を使用して特徴量を抽出します。PCA や NNMF など一部の特徴抽出と異なり、この節で説明する方法では次元を増やす (および減らす) ことができます。内部的に、これらの方法では非線形目的関数の最適化を実行します。詳細については、スパース フィルター アルゴリズムまたは再構成 ICA アルゴリズムを参照してください。

特徴抽出の代表的な用途の 1 つは、イメージの特徴量を見つけることです。これらの特徴量を使用すると、分類精度を向上させることができます。たとえば、特徴抽出のワークフローを参照してください。もう 1 つの代表的な用途は、重ね合わせからの個別の信号の抽出で、しばしばブラインド信号源分離と呼ばれます。たとえば、混合信号の抽出を参照してください。

特徴抽出関数には ricasparsefilt の 2 つがあります。これらの関数には、これらの関数が作成する ReconstructionICA および SparseFiltering オブジェクトが関連付けられています。

スパース フィルター アルゴリズム

スパース フィルター アルゴリズムは、np 列のデータ行列 X から始まります。各行は 1 つの観測値を、各列は 1 つの測定値を表します。列は特徴量または予測子とも呼ばれます。次に、初期のランダムな pq 列の重み行列 W または名前と値のペア InitialTransformWeights で渡された重み行列を使用します。q は、sparsefilt に計算を要求する特徴量の個数です。

このアルゴリズムでは、標準的なメモリ制限 Broyden-Fletcher-Goldfarb-Shanno (LBFGS) 準ニュートン オプティマイザーを使用してスパース フィルターの目的関数を最小化しようとします。Nocedal および Wright [2] を参照してください。このオプティマイザーでは最大 IterationLimit 回の反復を実行します。反復は、ノルムが StepTolerance 未満になったときに早く停止するか、現在の点における勾配のノルムが GradientTolerance とスカラー τ の積未満であると計算されたときに停止します。ここで

τ=max(1,min(|f|,g0)).

|f| は目的関数のノルム、g0 は初期勾配の無限大ノルムです。

目的関数では、各データ点について少数の非ゼロ特徴量を取得すると同時に、得られた各特徴量の重みをほぼ等しくしようとします。目的関数でどのようにこれらの目標を達成するかについては、Ngiam、Koh、Chen、Bhaskar および Ng [1]を参照してください。

多くの場合、5 から数百程度の比較的小さい値を IterationLimit に設定すると、適切な特徴量が得られます。オプティマイザーに計算を継続させると過学習になる可能性があり、抽出された特徴量が新しいデータに対して適切には汎化されなくなります。

SparseFiltering オブジェクトを構築した後で、transform メソッドを使用して入力データを新しい出力特徴量にマッピングします。

スパース フィルターの目的関数

目的関数を計算するため、スパース フィルター アルゴリズムでは以下のステップを使用します。目的関数は、np 列のデータ行列 X とオプティマイザーが変化させる重み行列 W に依存します。重み行列 W の次元は p x q であり、p は元の特徴量の個数、q は要求された特徴量の個数です。

  1. nq 列の行列 X*W を計算します。近似絶対値関数 ϕ(u)=u2+108X*W の各要素に適用して行列 F を取得します。ϕ は、絶対値関数をほぼ正確に近似する滑らかな非負対称関数です。

  2. 近似 L2 ノルムによって F の列を正規化します。つまり、正規化された行列 F˜(i,j) を次によって定義します。

    F(j)=i=1n(F(i,j))2+108F˜(i,j)=F(i,j)/F(j).

  3. 近似 L2 ノルムによって F˜(i,j) の行を正規化します。つまり、正規化された行列 F^(i,j) を次によって定義します。

    F˜(i)=j=1q(F˜(i,j))2+108F^(i,j)=F˜(i,j)/F˜(i).

    行列 F^ は、X 内の変換された特徴量の行列です。目的関数 h (以下を参照) を最小化する重み W (出力オブジェクト MdlMdl.TransformWeights プロパティに格納されます) が sparsefilt で求められると、関数 transform で同じ変換ステップに従って新しいデータを出力特徴量に変換できます。

  4. 行列 F^(i,j) の 1 ノルム、つまり行列のすべての要素の合計 (構築により非負) として目的関数 h(W) を計算します。

    h(W)=j=1qi=1nF^(i,j).

  5. 名前と値のペア Lambda を厳密に正の値に設定した場合、sparsefilt では次の修正された目的関数を使用します。

    h(W)=j=1qi=1nF^(i,j)+λj=1qwjTwj.

    ここで、wj は行列 W の j 番目の列、λ は Lambda の値です。この項の効果は、重み W を小さくすることです。Lambda が正の場合に W の列をイメージとしてプロットすると、Lambda がゼロの同じイメージと比較して滑らかに見えます。

再構成 ICA アルゴリズム

再構成独立成分分析 (RICA) アルゴリズムは、目的関数の最小化をベースとします。このアルゴリズムでは入力データを出力特徴量にマッピングします。

ICA のソース モデルは次のとおりです。各観測値 x は、以下に従ってランダムなベクトル s によって生成されます。

x=μ+As.

  • x は、長さ p の列ベクトル。

  • μ は、定数項を表す長さ p の列ベクトル。

  • s は、互いが統計的に独立しているゼロ平均かつ単位分散の確率変数である要素をもつ、長さ q の列ベクトル。

  • A は、サイズが pq 列の混同行列。

このモデルを rica で使用して、x の観測値から A を推定できます。混合信号の抽出を参照してください。

RICA アルゴリズムは、観測値 xi から構成される np 列のデータ行列 X から始まります。

X=[x1Tx2TxnT].

各行は 1 つの観測値を、各列は 1 つの測定値を表します。列は特徴量または予測子とも呼ばれます。次に、初期のランダムな pq 列の重み行列 W または名前と値のペア InitialTransformWeights で渡された重み行列を使用します。q は、rica に計算を要求する特徴量の個数です。重み行列 W は、サイズが p 行 1 列の列 wi から構成されます。

W=[w1w2wq].

このアルゴリズムでは、標準的なメモリ制限 Broyden-Fletcher-Goldfarb-Shanno (LBFGS) 準ニュートン オプティマイザーを使用して再構成 ICA の目的関数を最小化しようとします。Nocedal および Wright [2] を参照してください。このオプティマイザーでは最大 IterationLimit 回の反復を実行します。反復は、ノルムが StepTolerance 未満になるか、現在の点における勾配のノルムが GradientTolerance とスカラー τ の積未満であると計算されると停止します。ここで

τ=max(1,min(|f|,g0)).

|f| は目的関数のノルム、g0 は初期勾配の無限大ノルムです。

目的関数では、g(XW) の要素の合計を最小化するほぼ正規直交の重み行列を取得しようとします。ここで、g は要素ごとに XW に適用される関数 (以下で説明します) です。目的関数でどのようにこれらの目標を達成するかについては、Le、Karpenko、Ngiam および Ng [3] を参照してください。

ReconstructionICA オブジェクトを構築した後で、transform メソッドを使用して入力データを新しい出力特徴量にマッピングします。

再構成 ICA の目的関数

目的関数では、名前と値のペア ContrastFcn を使用して指定したコントラスト関数が使用されます。コントラスト関数は、絶対値に似ている滑らかな凸関数です。既定のコントラスト関数は g=12log(cosh(2x)) です。他の使用可能コントラスト関数については、ContrastFcn を参照してください。

np 列のデータ行列 Xq 個の出力特徴量の場合、名前と値のペア Lambda の値として正則化パラメーター λ を指定すると、pq 列の行列 W に対する目的関数は次のようになります。

h=λni=1nWWTxixi22+1ni=1nj=1qσjg(wjTxi)

σj は ±1 である既知の定数です。σj = +1 の場合、目的関数 h を最小化すると、wjTxi のヒストグラムは 0 が鋭いピークになります (優ガウス性)。σj = –1 の場合、目的関数 h を最小化すると、wjTxi のヒストグラムは 0 の付近で平らになります (劣ガウス性)。σj の値を指定するには、rica の名前と値のペア NonGaussianityIndicator を使用します。

λ がゼロの場合、目的関数 h が誤ったゼロの最小値になる可能性があります。このため、rica は 1 に正規化された W に対して h を最小化します。つまり、W の各列 wj は、次によって列ベクトル vj に対して定義されます。

wj=vjvjTvj+108.

rica は vj に対して最小化を実行します。生成される最小行列 W は、入力データ X から出力特徴量 XW への変換を提供します。

参照

[1] Ngiam, Jiquan, Zhenghao Chen, Sonia A. Bhaskar, Pang W. Koh, and Andrew Y. Ng. “Sparse Filtering.” Advances in Neural Information Processing Systems. Vol. 24, 2011, pp. 1125–1133. https://papers.nips.cc/paper/4334-sparse-filtering.pdf.

[2] Nocedal, J. and S. J. Wright. Numerical Optimization, Second Edition. Springer Series in Operations Research, Springer Verlag, 2006.

[3] Le, Quoc V., Alexandre Karpenko, Jiquan Ngiam, and Andrew Y. Ng. “ICA with Reconstruction Cost for Efficient Overcomplete Feature Learning.” Advances in Neural Information Processing Systems. Vol. 24, 2011, pp. 1017–1025. https://papers.nips.cc/paper/4467-ica-with-reconstruction-cost-for-efficient-overcomplete-feature-learning.pdf.

参考

| | |

関連するトピック