Main Content

predict

클래스: Autoencoder

훈련된 오토인코더를 사용하여 입력값 재생성

설명

예제

Y = predict(autoenc,X)는 오토인코더 autoenc를 사용하여 입력 데이터 X에 대한 예측값 Y를 반환합니다. 결과 YX를 재생성한 것입니다.

입력 인수

모두 확장

훈련된 오토인코더로, Autoencoder 클래스의 객체로 반환됩니다.

입력 데이터로, 샘플로 구성된 행렬, 영상 데이터로 구성된 셀형 배열 또는 단일 영상 데이터로 구성된 배열로 지정됩니다.

오토인코더 autoenc가 각 열이 하나의 샘플을 나타내는 행렬에 대해 훈련된 경우, Xnew는 각 열이 하나의 샘플을 나타내는 행렬이 되어야 합니다.

오토인코더 autoenc가 영상으로 구성된 셀형 배열에 대해 훈련된 경우, Xnew는 영상 데이터로 구성된 셀형 배열 또는 단일 영상 데이터로 구성된 배열이 되어야 합니다.

데이터형: single | double | cell

출력 인수

모두 확장

입력 데이터 Xnew에 대한 예측값으로, 영상 데이터로 구성된 행렬 또는 셀형 배열로 반환됩니다.

  • Xnew가 행렬인 경우, Y도 행렬이 됩니다. 여기서 각 열은 단일 샘플(관측값 또는 예)에 대응됩니다.

  • Xnew가 영상 데이터로 구성된 셀형 배열인 경우, Y도 영상 데이터로 구성된 셀형 배열이 됩니다. 여기서 각 셀은 단일 영상에 대한 데이터를 포함합니다.

  • Xnew가 단일 영상 데이터로 구성된 배열인 경우, Y도 단일 영상 데이터로 구성된 배열이 됩니다.

예제

모두 확장

훈련 데이터를 불러옵니다.

X = iris_dataset;

훈련 데이터는 붓꽃의 4가지 특성에 대한 측정값을 포함합니다. 4가지 특성은 꽂받침 길이, 꽃받침 너비, 꽃잎 길이, 꽃잎 너비입니다.

인코더에서 양의 포화 선형 전달 함수를 사용하고 디코더에서 선형 전달 함수를 사용하여 훈련 데이터에 대해 오토인코더를 훈련시킵니다.

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

Figure Neural Network Training (25-Jan-2024 15:28:32) 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;

훈련 데이터는 각 셀에 손으로 쓴 숫자를 표현한 합성 영상을 나타내는 28×28 행렬이 있는 1×5,000 셀형 배열입니다.

25개의 뉴런을 포함하는 은닉 계층 1개를 갖는 오토인코더를 훈련시킵니다.

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

테스트 데이터를 불러옵니다.

XTest = digitTestCellArrayData;

테스트 데이터는 각 셀에 손으로 쓴 숫자를 표현한 합성 영상을 나타내는 28×28 행렬이 있는 1×5,000 셀형 배열입니다.

훈련된 오토인코더 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에 개발됨

참고 항목