Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

predict

クラス: Autoencoder

学習済みの自己符号化器を使用した入力の再構成

説明

Y = predict(autoenc,X) は、自己符号化器 autoenc を使用して、入力データ X の予測 Y を返します。結果 YX の再構成です。

入力引数

すべて展開する

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

入力データ。標本の行列、イメージ データの cell 配列、または 1 つのイメージ データの配列として指定します。

各列が 1 つの標本を表す行列に対して自己符号化器 autoenc に学習させる場合、Xnew は各列が 1 つの標本を表す行列でなければなりません。

イメージの cell 配列に対して自己符号化器 autoenc に学習させる場合、Xnew はイメージ データの cell 配列または 1 つのイメージ データの配列でなければなりません。

データ型: single | double | cell

出力引数

すべて展開する

入力データ Xnew の予測。イメージ データの行列または cell 配列として返されます。

  • Xnew が行列の場合、Y も行列になります。ここで、各列は 1 つの標本 (観測値または例) に対応します。

  • Xnew がイメージ データの cell 配列の場合、Y もイメージ データの cell 配列になります。各セルには 1 つのイメージのデータが含まれます。

  • Xnew が 1 つのイメージ データの配列の場合、Y も 1 つのイメージ データの配列になります。

すべて展開する

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

X = iris_dataset;

学習データには、アヤメの花に関する次の 4 つの属性の測定値が含まれています。がく片の長さ、萼片の幅、花弁の長さ、花弁の幅。

符号化器の正の飽和線形伝達関数および複号化器の線形伝達関数を使用して、学習データに対して自己符号化器に学習させます。

autoenc = trainAutoencoder(X,'EncoderTransferFunction',...
'satlin','DecoderTransferFunction','purelin');

Figure Neural Network Training (27-Jul-2023 15:27:38) contains an object of type uigridlayout.

学習済みのネットワーク autoenc を使用して測定値を再構成します。

xReconstructed = predict(autoenc,X);

予測した測定値を学習データセットの実際の値と共にプロットします。

for i = 1:4
h(i) = subplot(1,4,i);
plot(X(i,:),'r.');
hold on 
plot(xReconstructed(i,:),'go');
hold off;
end
title(h(1),{'Sepal';'Length'});
title(h(2),{'Sepal';'Width'});
title(h(3),{'Petal';'Length'});
title(h(4),{'Petal';'Width'});

Figure contains 4 axes objects. Axes object 1 with title Sepal Length contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 2 with title Sepal Width contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 3 with title Petal Length contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 4 with title Petal Width contains 2 objects of type line. One or more of the lines displays its values using only markers

赤い点は学習データ、緑の円は再構成されたデータを表します。

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

XTrain = digitTrainCellArrayData;

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

25 個のニューロンが含まれる隠れ層を使用して自己符号化器に学習させます。

hiddenSize = 25;
autoenc = trainAutoencoder(XTrain,hiddenSize,...
        'L2WeightRegularization',0.004,...
        'SparsityRegularization',4,...
        'SparsityProportion',0.15);

テスト データを読み込みます。

XTest = digitTestCellArrayData;

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

学習済みの自己符号化器 autoenc を使用してテスト イメージ データを再構成します。

xReconstructed = predict(autoenc,XTest);

実際のテスト データを表示します。

figure;
for i = 1:20
    subplot(4,5,i);
    imshow(XTest{i});
end

再構成されたテスト データを表示します。

figure;
for i = 1:20
    subplot(4,5,i);
    imshow(xReconstructed{i});
end

バージョン履歴

R2015b で導入