Main Content

stack

クラス: Autoencoder

複数の自己符号化器から集めた符号化器の積み重ね

説明

stackednet = stack(autoenc1,autoenc2,...) は、自己符号化器 autoenc1autoenc2 などの符号化器を積み重ねて作成した network オブジェクトを返します。

stackednet = stack(autoenc1,autoenc2,...,net1) は、自己符号化器の符号化器とネットワーク オブジェクト net1 を積み重ねて作成したネットワーク オブジェクトを返します。

自己符号化器とネットワーク オブジェクトは、それらの次元が一致する場合のみ積み重ねることができます。

入力引数

すべて展開する

学習済みの自己符号化器。Autoencoder オブジェクトとして指定します。

学習済みの自己符号化器。Autoencoder オブジェクトとして指定します。

学習済みニューラル ネットワーク。network オブジェクトとして指定します。net1 は、関数 trainSoftmaxLayer を使用して学習させた、ソフトマックス層にできます。

出力引数

すべて展開する

積層ニューラル ネットワーク (深いネットワーク)。network オブジェクトとして返されます。

すべて展開する

学習データを読み込みます。

[X,T] = iris_dataset;

サイズが 5 の隠れ層と複号化器用の線形伝達関数を使用して自己符号化器に学習させます。L2 重み正則化項を 0.001、スパース正則化項を 4、スパース率を 0.05 に設定します。

hiddenSize = 5;
autoenc = trainAutoencoder(X, hiddenSize, ...
    'L2WeightRegularization', 0.001, ...
    'SparsityRegularization', 4, ...
    'SparsityProportion', 0.05, ...
    'DecoderTransferFunction','purelin');

Figure Neural Network Training (20-Jul-2024 16:59:32) contains an object of type uigridlayout.

隠れ層で特徴を抽出します。

features = encode(autoenc,X);

features を使用して、分類用としてソフトマックス層に学習させます。

softnet = trainSoftmaxLayer(features,T);

Figure Neural Network Training (20-Jul-2024 16:59:44) contains an object of type uigridlayout.

符号化器とソフトマックス層を積み重ねて、深いネットワークを形成します。

stackednet = stack(autoenc,softnet);

積層ネットワークを表示します。

view(stackednet);

ヒント

  • ある自己符号化器の隠れ表現のサイズは、スタック内の次の自己符号化器またはネットワークの入力サイズに一致しなければなりません。

    積層ネットワークの最初の入力引数は、最初の自己符号化器の入力引数です。最初の自己符号化器の符号化器の出力引数は、積層ネットワーク内の 2 番目の自己符号化器の入力です。2 番目の自己符号化器の符号化器の出力引数は、積層ネットワーク内の 3 番目の自己符号化器の入力引数であり、以降も同様になります。

  • 積層ネットワーク オブジェクト stacknet は、最後の入力引数 net1 から学習パラメーターを継承します。

バージョン履歴

R2015b で導入