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');

훈련된 신경망 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'});

빨간색 점은 훈련 데이터를 나타내고 녹색 원은 재생성된 데이터를 나타냅니다.

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

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에 개발됨