predict

Класс: Автоэнкодер

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

Синтаксис

Описание

пример

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