1

Обычно довольно легко объединить несколько глубоких сетей, чтобы улучшить статистику во время предсказания. Это часто так же просто, как принимать выходные прогнозы и усреднять их вместе. В рекуррентной нейронной сети это не так просто, поскольку мы делаем прогнозы по последовательности выходов.Каков подход для создания повторяющихся нейронных сетей?

Как мы собираем повторяющиеся нейронные сети? Вы прогнозируете выходы на каждом временном шаге с использованием нескольких моделей, усредняете выходы, затем используете прогноз из среднего для возврата в каждую отдельную модель (полоскание, повторение)? Похоже, было бы довольно громоздко реализовать в общих библиотеках ML (я использую Tensorflow).

+0

Относится ли это к выпадению? –

+0

Нет, не имеет отношения. Это задание об обучении нескольких моделей отдельно, а затем их объединение во время тестирования для повышения производительности. – jstaker7

ответ

2

Кажется, что то, о чем вы говорите, можно обобщить как «стратегии декодирования» для RNN. Например:

  1. Вы выбираете слово с наивысшей вероятностью из одной модели и подаете его и выбираете в качестве следующего входа (декодирование argmax).
  2. Вы можете написать образец слово из распределения вероятности выхода и использовать его в качестве следующего ввода.
  3. Вы можете сделать поиск луча, где вы держите вокруг k лучших кандидатов, и выберите другой луч в качестве следующего входа.
  4. Подобно тому, что вы предлагаете, вы можете использовать несколько моделей или другую более сложную стратегию декодирования, чтобы выбрать следующий вход.

Это определенно не тривиально для реализации, но это тоже неплохо. В Tensorflow вы должны использовать функцию raw_rnn для этого. В принципе, это похоже на цикл while, и вы можете использовать произвольно сложную функцию для выбора вывода и следующего ввода для RNN.

 Смежные вопросы

  • Нет связанных вопросов^_^