exponenta event banner

предсказать

Класс: Автокодировщик

Реконструируйте входные данные с помощью обученного автокодера

Описание

пример

Y = predict(autoenc,X) возвращает прогнозы Y для входных данных X, с использованием автокодера autoenc. Результат Y является реконструкцией X.

Входные аргументы

развернуть все

Обученный автокодировщик, возвращенный как объект Autoencoder класс.

Входные данные, определенные как матрица выборок, массив ячеек данных изображения или массив одиночных данных изображения.

Если автокодировщик autoenc был обучен на матрице, где каждый столбец представляет один образец, затем Xnew должен быть матрицей, где каждый столбец представляет одну выборку.

Если автокодировщик autoenc был обучен на клеточном массиве изображений, затем Xnew должен быть либо массивом данных изображения ячейки, либо массивом данных одного изображения.

Типы данных: single | double | cell

Выходные аргументы

развернуть все

Прогнозы для входных данных Xnew, возвращается в виде матрицы или массива ячеек данных изображения.

  • Если Xnew является матрицей, то Y также является матрицей, где каждый столбец соответствует одному образцу (наблюдение или пример).

  • Если Xnew является массивом ячеек данных изображения, то Y является также массивом данных изображения, где каждая ячейка содержит данные для одного изображения.

  • Если Xnew является массивом данных одного изображения, то Y также является массивом данных одного изображения.

Примеры

развернуть все

Загрузите данные обучения.

X = iris_dataset;

Обучающие данные содержат измерения по четырем атрибутам цветков радужки: Длина чашелистика, ширина чашелистика, длина лепестка, ширина лепестка.

Обучение автокодера обучающим данным с использованием положительной насыщающей линейной передаточной функции в кодере и линейной передаточной функции в декодере.

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

Figure contains 4 axes. Axes 1 with title Sepal Length contains 2 objects of type line. Axes 2 with title Sepal Width contains 2 objects of type line. Axes 3 with title Petal Length contains 2 objects of type line. Axes 4 with title Petal Width contains 2 objects of type line.

Красные точки представляют обучающие данные, а зеленые круги - восстановленные данные.

Загрузите данные обучения.

XTrain = digitTrainCellArrayData;

Обучающие данные представляют собой массив ячеек 1 на 5000, где каждая ячейка содержит матрицу 28 на 28, представляющую синтетическое изображение рукописной цифры.

Обучить автокодер скрытым слоем, содержащим 25 нейронов.

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

Загрузите данные теста.

XTest = digitTestCellArrayData;

Тестовые данные представляют собой массив ячеек 1 на 5000, причем каждая ячейка содержит матрицу 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