Класс: Автокодировщик
Реконструируйте входные данные с помощью обученного автокодера
autoenc - Обученный автокодировщикAutoencoder объектОбученный автокодировщик, возвращенный как объект Autoencoder класс.
Xnew - Входные данныеВходные данные, определенные как матрица выборок, массив ячеек данных изображения или массив одиночных данных изображения.
Если автокодировщик autoenc был обучен на матрице, где каждый столбец представляет один образец, затем Xnew должен быть матрицей, где каждый столбец представляет одну выборку.
Если автокодировщик autoenc был обучен на клеточном массиве изображений, затем Xnew должен быть либо массивом данных изображения ячейки, либо массивом данных одного изображения.
Типы данных: single | double | cell
Y - Прогнозы для входных данных XnewПрогнозы для входных данных 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'});

Красные точки представляют обучающие данные, а зеленые круги - восстановленные данные.
Загрузите данные обучения.
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

Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.