Main Content

decode

クラス: Autoencoder

符号化されたデータの復号化

説明

Y = decode(autoenc,Z) は、自己符号化器 autoenc を使用して、復号化されたデータ Y を返します。

入力引数

すべて展開する

学習済みの自己符号化器。関数 trainAutoencoder によって Autoencoder クラスのオブジェクトとして返されます。

autoenc で符号化されたデータ。行列として指定します。Z の各列は符号化されたサンプル (観測値) を表します。

データ型: single | double

出力引数

すべて展開する

復号化されたデータ。イメージ データの行列または cell 配列として返されます。

イメージ データの cell 配列に対して自己符号化器 autoenc に学習させる場合、Y もイメージの cell 配列になります。

行列に対して自己符号化器 autoenc に学習させる場合、Y も行列になります。この場合、Y の各列は 1 つのサンプル、つまり観測値に対応します。

すべて展開する

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

X = digitTrainCellArrayData;

X は 1 行 5000 列の cell 配列です。各セルには、手書きの数字の合成イメージを表す 28 行 28 列の行列が含まれます。

隠れサイズが 15 の学習データを使用して、自己符号化器に学習させます。

hiddenSize = 15;
autoenc = trainAutoencoder(X,hiddenSize);

自己符号化器を使用して新しいイメージの符号化されたデータを抽出します。

Xnew = digitTestCellArrayData;
features = encode(autoenc,Xnew);

自己符号化器からの符号化されたデータを復号化します。

Y = decode(autoenc,features);

Y は 1 行 5000 列の cell 配列です。各セルには、手書きの数字の合成イメージを表す 28 行 28 列の行列が含まれます。

アルゴリズム

自己符号化器への入力がベクトル xDx である場合、符号化器は以下のようにベクトル x を別のベクトル zD(1) にマッピングします。

z=h(1)(W(1)x+b(1)),

ここで、上付き文字 (1) は最初の層を示します。h(1):D(1)D(1) は符号化器の伝達関数、W(1)D(1)×Dx は重み行列、b(1)D(1) はバイアス ベクトルです。次に、復号化器が、符号化された表現 z を以下のように元の入力ベクトル x の推定に逆マッピングします。

x^=h(2)(W(2)z+b(2)),

ここで、上付き文字 (2) は 2 番目の層を表します。h(2):DxDx は復号化器の伝達関数、W(1)Dx×D(1) は重み行列、b(2)Dx はバイアス ベクトルです。

バージョン履歴

R2015b で導入