У меня есть набор данных, содержащий 34 входных столбца и 8 выходных столбцов. Один из способов решения этой проблемы - взять 34 входа и построить индивидуальную модель регрессии для каждого выходного столбца. Мне интересно, если эта проблема может быть решена с помощью только одной модели, особенно с помощью нейронной сети.
Я использовал многослойный персептрон, но для этого нужно несколько моделей, таких как линейная регрессия. Может ли последовательность к обучению последовательности 1 быть жизнеспособным вариантом? Я пытался использовать TensorFlow, он не может обрабатывать значения с плавающей точкой.
Будем благодарны за любые предложения по решению этой проблемы с использованием только одной унифицированной модели, особенно с использованием нейронной сети.
- Илья Суцкевер, Oriol Vinyals & Quoc V. Le (2014). Последовательность к последовательности обучения с нейронными сетями. Достижения в нейронных системах обработки информации , 27. ( pdf )
Ответы:
Нейронная сеть с несколькими исходами имеет вид Если ваш результат имеет размерность , то будет иметь размерность .
Это означает, что вы предполагаете, что каждый результат разделяет ВСЕ параметры в скрытых слоях и имеет только разные параметры для получения самой верхней производной переменной и привязки ее к результату.
Это реалистичное предположение для вашего контекста?
источник
Сначала я думал, что комментарий к generic_user был остановкой шоу, но я просто понял, что это не так:
Если я обучу d разных сетей на d разных выходах, то каждая из них будет соответствовать этому измерению, не обращая внимания на другие.
Но если я обучу одну сеть с d выходами и использую все выходы для обратного распространения, то каждый вес в каждом слое в сети будет отрегулирован так, чтобы все d выходов были более точными.
То есть: каждый сетевой параметр будет регулироваться суммой градиентов (как каждый выход изменяется в зависимости от « колебания » в этом параметре), так что настройка его в выбранном направлении вверх или вниз приводит к более точному выводу в целом - даже если регулировка При таком весе некоторые параметры выходных данных будут менее точными.
Так что, да, вещь, которая в конечном итоге отличает каждый выход, - это просто линейное уравнение, закодированное в последнем слое, но при обучении одной сети с несколькими выходами каждый слой будет лучше представлять последний слой чем-то, что позволяет ему лучше выполнять свою работу , Следовательно, отношения между выходами будут учитываться этой архитектурой.
Возможно, вы сможете добиться большего успеха, чем полностью подключенная сеть, если ваша архитектура будет отражать любые известные отношения в выходных данных, так же как глубокие сети работают лучше, чем мелкие, используя «композиционные» отношения между входами .
источник
Вы можете сделать это только с одной нейронной сетью. Но ваша нейронная сеть должна выглядеть так:
Входной слой: 34 узла (по одному на ваш входной столбец)
Выходной слой: 8 узлов (по одному на ваш выходной столбец)
Вы можете добавить столько, сколько и сколько скрытых слоев вы хотите в нейронной сети. Таким образом, нейронная сеть выводит 8 прогнозируемых значений, и каждое значение будет представлять собой разные регрессии входных данных.
источник
Мне было интересно то же самое; вот мои идеи:
Я предполагаю, что если выходные данные имеют некоторые скрытые закономерности, то обучение может выиграть от одновременного изучения регрессии для всех выходных данных.
Было бы интересно попробовать архитектуру, в которой вы строите нейронную сеть для каждого выхода, но все нейронные сети имеют несколько уровней (например, первые полуслои). Затем вы можете обучать каждую нейронную сеть одновременно: внутри цикла обучения каждая нейронная сеть обучается один шаг (с одним пакетом) последовательно.
Это было бы похоже на передачу знаний, но с той разницей, что при передаче знаний каждая нейронная сеть полностью обучается, прежде чем повторно использовать какую-то ее часть для обучения другой нейронной сети.
Бьюсь об заклад, кто-то думал об этом раньше, но я не имею на это никаких ссылок.
источник