Как создать "Denoising Autoencoder" в Matlab? - PullRequest
0 голосов
/ 08 октября 2018

Я знаю, что в Matlab есть функция TrainAutoencoder(input, settings) для создания и обучения автоэнкодера.Результат может выполнять две функции: " Encode " и " Decode * ".Но это применимо только к случаю обычных автоэнкодеров.Что если вы хотите иметь шумоподавляющий автоэнкодер ?Я искал и нашел несколько примеров кодов, где они использовали функцию «Сеть» для преобразования автоэнкодера в обычную сеть, а затем Train(network, noisyInput, smoothOutput), как шумоподавляющий автоэнкодер.

Но есть несколько пропущенных частей:

  1. Как использовать этот новый сетевой объект для «кодирования» новых точек данных?он не поддерживает encode ().
  2. Как получить "скрытые" переменные для функций из этой "сети"?

Я ценю, если кто-нибудь сможет помочьмне решить эту проблему. Спасибо, -Moein

Ответы [ 2 ]

0 голосов
/ 23 июля 2019

Если вы «симуляция» означает предсказание / вывод, просто используйте активации (...) для вывода выходных данных из любых промежуточных (скрытых) слоев, как я упоминал ранее, чтобы вы могли проверить их.

Другим способом является создание идентичной сети, но только с частью кодирования, копирование в нее обученных параметров и подача имитируемых сигналов.

0 голосов
/ 10 июня 2019
  1. В настоящее время (2019a) MATALAB не позволяет пользователям добавлять слои вручную в автоэнкодере.Если вы хотите создать свой собственный, вы должны начать с нуля, используя слои, предоставленные MATLAB;
  2. Чтобы использовать TrainNetwork (...) для обучения вашей модели, вы найдетеспособ вставить ваши данные в объект с именем imDatastore.Сложность для данных автоэнкодера заключается в том, что нет метки NO, которая требуется для imDatastore, поэтому вам придется найти умный способ ее избежать - по сути, вам приходится иметь дело с так называемой проблемой OCC (One Class Classification)..

https://www.mathworks.com/help/matlab/ref/matlab.io.datastore.imagedatastore.html

Использование активаций (...) для вывода выходных данных из промежуточных (скрытых) слоев

https://www.mathworks.com/help/deeplearning/ref/activations.html?searchHighlight=activations&s_tid=doc_srchtitle

Я переключился между использованием MATLAB и Python (Keras) для глубокого изучения в течение пары недель, в конце концов я выбрал последнее, хотя я являюсь долгосрочным и лояльным пользователем MATLAB и новичком в Python.Мои два цента в том, что в первом слишком много ограничений в отношении глубокого обучения.

Удачи. :-)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...