rica
再構成 ICA の使用による特徴抽出
説明
は、p 個の変数が含まれている予測子データのテーブルまたは行列 Mdl
= rica(X
,q
)X
に再構成独立成分分析 (RICA) を適用した結果が含まれている RICA モデル オブジェクトを返します。q
は X
から抽出する特徴量の個数なので、rica
は p 行 q
列の変換の重み行列を学習します。特徴量の表現が劣完備または過完備である場合、q
はそれぞれ、予測子変数の個数より少なかったり多かったりする可能性があります。
学習済みの変換の重みにアクセスするには、
Mdl.TransformWeights
を使用します。学習済みの変換を使用して
X
を新しい一連の特徴量に変換するには、Mdl
とX
をtransform
に渡します。
は、1 つ以上の Mdl
= rica(X
,q
,Name,Value
)Name,Value
引数のペアによって指定された追加オプションを使用します。たとえば、予測子データを標準化したり、目的関数の再構成項におけるペナルティ係数の値を指定することができます。
例
再構成 ICA オブジェクトの作成
関数 rica
を使用して ReconstructionICA
オブジェクトを作成します。
イメージ パッチ SampleImagePatches
を読み込みます。
data = load('SampleImagePatches');
size(data.X)
ans = 1×2
5000 363
5,000 個のイメージ パッチがあり、それぞれに 363 個の特徴量が含まれています。
100 個の特徴量をデータから抽出します。
rng default % For reproducibility q = 100; Mdl = rica(data.X,q,'IterationLimit',100)
Warning: Solver LBFGS was not able to converge to a solution.
Mdl = ReconstructionICA ModelParameters: [1x1 struct] NumPredictors: 363 NumLearnedFeatures: 100 Mu: [] Sigma: [] FitInfo: [1x1 struct] TransformWeights: [363x100 double] InitialTransformWeights: [] NonGaussianityIndicator: [100x1 double] Properties, Methods
ステップ サイズの制限または勾配サイズの制限に達したのではなく反復制限に達したために停止したので、rica
は警告を発します。しかし、関数 transform
を呼び出すことにより、返されたオブジェクトに含まれている学習済み特徴量を使用できます。
入力引数
X
— 予測子データ
数値行列 | テーブル
予測子データ。n 行 p 列の数値行列またはテーブルを指定します。行は各観測値に、列は各予測子変数に対応します。X
がテーブルの場合、そのすべての変数が数値ベクトルでなければなりません。
データ型: single
| double
| table
q
— 抽出する特徴量の個数
正の整数
予測子データから抽出する特徴量の個数。正の整数を指定します。
rica
は、p 行 q
列の変換の重み行列を Mdl.TransformWeights
に格納します。したがって、非常に大きい値を q
に設定した場合、メモリ消費量が増加し、計算時間が長くなる可能性があります。
データ型: single
| double
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名、Value
は対応する値です。名前と値の引数は他の引数の後ろにする必要がありますが、ペアの順序は関係ありません。
R2021a より前では、名前と値をそれぞれコンマを使って区切り、Name
を引用符で囲みます。
例: Mdl = rica(X,q,'IterationLimit',200,'Standardize',true)
は、最適化反復を 200 回に制限し、予測子データを標準化して、rica
を実行します。
IterationLimit
— 最大反復回数
1000
(既定値) | 正の整数
最大反復回数。'IterationLimit'
と正の整数で構成されるコンマ区切りのペアとして指定します。
例: 'IterationLimit',1e6
データ型: single
| double
VerbosityLevel
— 詳細レベル
0
(既定値) | 非負の整数
アルゴリズムの収束を監視するための詳細レベル。'VerbosityLevel'
と次の表の値から構成されるコンマ区切りのペアとして指定します。
値 | 説明 |
---|---|
0 | rica は収束情報をコマンド ラインに表示しません。 |
正の整数 | rica は収束情報をコマンド ラインに表示します。 |
収束情報
見出し | 意味 |
---|---|
FUN VALUE | 目的関数の値。 |
NORM GRAD | 目的関数の勾配のノルム。 |
NORM STEP | 反復ステップのノルム。前の点と現在の点の間の距離を意味します。 |
CURV | OK は弱 Wolfe 条件が満たされていることを意味します。この条件は、目的関数の十分な減少と曲率条件の組み合わせです。 |
GAMMA | ステップの内積に勾配差分を乗算し、勾配差分と勾配差分自体との内積で除算した値。勾配差分は、現在の点における勾配から前の点における勾配を減算した値です。目的関数の曲率に関する診断情報を提供します。 |
ALPHA | ステップ方向乗数。直線探索が実行された場合、1 以外になります。 |
ACCEPT | YES は取り得るステップがアルゴリズムで見つかったことを意味します。 |
例: 'VerbosityLevel',1
データ型: single
| double
Lambda
— 正則化係数の値
1
(既定値) | 正の数値スカラー
変換の重み行列に対する正則化係数の値。'Lambda'
と正の数値スカラーから構成されるコンマ区切りのペアとして指定します。0
を指定した場合、目的関数に正則化項は含まれません。
例: 'Lambda',0.1
データ型: single
| double
Standardize
— 予測子データを標準化するためのフラグ
false
(既定値) | true
ContrastFcn
— コントラスト関数
'logcosh'
(既定値) | 'exp'
| 'sqrt'
コントラスト関数。'logcosh'
、'exp'
または 'sqrt'
を指定します。コントラスト関数は、絶対値関数に似ている滑らかな関数です。rica
の目的関数には、次の項が含まれます。
ここで、g はコントラスト関数を表します。wj は最適化の対象となる変数、 はデータです。
次の 3 つのコントラスト関数を使用できます。
'logcosh'
—'exp'
—'sqrt'
—
例: 'ContrastFcn','exp'
InitialTransformWeights
— 最適化を初期化する変換の重み
randn(p,q)
(既定値) | 数値行列
最適化を初期化する変換の重み。'InitialTransformWeights'
と p 行 q
列の数値行列から構成されるコンマ区切りのペアとして指定します。p は X
の列数または変数の個数でなければならず、q
は q
の値です。
ヒント
以前に返された変換の重み行列は、再度 rica
を呼び出すときに初期値として渡すことにより、最適化を継続できます。出力されるモデル オブジェクト Mdl
では、学習済みの変換の重み行列が TransformWeights
プロパティに格納されます。
例: 'InitialTransformWeights',Mdl.TransformWeights
データ型: single
| double
NonGaussianityIndicator
— ソースの非ガウス性
ones(q,1)
(既定値) | ±1 による長さ q
のベクトル
ソースの非ガウス性。±1 による長さ q
のベクトルを指定します。
NonGaussianityIndicator(k) = 1
は、rica
がk
番目のソースを鋭いピークが 0 にある優ガウス性としてモデル化したことを意味します。NonGaussianityIndicator(k) = -1
は、rica
がk
番目のソースを劣ガウス性としてモデル化したことを意味します。
データ型: single
| double
GradientTolerance
— 勾配ノルムに対する収束の相対許容誤差
1e-6
(既定値) | 正の数値スカラー
勾配ノルムに対する収束の相対許容誤差。'GradientTolerance'
と正の数値スカラーから構成されるコンマ区切りのペアとして指定します。この勾配は目的関数の勾配です。
例: 'GradientTolerance',1e-4
データ型: single
| double
StepTolerance
— ステップ サイズに対する収束の絶対許容誤差
1e-6
(既定値) | 正の数値スカラー
ステップ サイズに対する収束の絶対許容誤差。'StepTolerance'
と正の数値スカラーから構成されるコンマ区切りのペアとして指定します。
例: 'StepTolerance',1e-4
データ型: single
| double
出力引数
Mdl
— 学習済みの再構成 ICA モデル
ReconstructionICA
モデル オブジェクト
学習済みの再構成 ICA モデル。ReconstructionICA
モデル オブジェクトとして返されます。
Mdl
のプロパティにアクセスするには、ドット表記を使用します。以下に例を示します。
学習済みの変換の重みにアクセスするには、
Mdl.TransformWeights
を使用します。当てはめ情報の構造体にアクセスするには、
Mdl.FitInfo
を使用します。
アルゴリズム
関数 rica
は、入力特徴量から出力特徴量への線形変換を作成します。この変換は、出力特徴量の統計的な独立性と出力特徴量を使用した入力特徴量の再構成能力とを大体釣り合わせるような非線形目的関数の最適化をベースにしています。
詳細は、再構成 ICA アルゴリズムを参照してください。
バージョン履歴
R2017a で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)