Я хочу знать, можно ли применять искусственные нейронные сети к дискретным входам значений? Я знаю, что их можно применить к непрерывным входам, но можно ли их применить к дискретным? Кроме того, будет ли хорошо работать с дискретными входными данными?
Искусственные нейронные сети
Ответы (4)
Что ж, позвольте мне сказать хороший вопрос!
Прежде всего позвольте мне прямо ответить утвердительно на ваш вопрос!
Ответ предполагает рассмотрение нескольких аспектов использования и реализации самой сети.
Тогда позвольте мне объяснить, почему:
- Самый простой способ - нормализовать ввод, как обычно, это первое практическое правило с NN, чем позволить нейронной сети вычислить задачу, и как только вы получите результат, инвертируйте нормализацию, чтобы получить результат в исходном диапазоне, но все еще непрерывный , чтобы получить обратно конкретные значения, просто рассмотрите целую часть вашего вывода. Легко, работает и нормально, СДЕЛАНО! Хороший результат зависит только от топологии, которую вы проектируете для своей сети.
В качестве плюса вы могли бы рассмотреть использование «ступенчатой» передаточной функции вместо «желтовато-сигмовидной» между слоями, чтобы усилить и имитировать своего рода оцифровку, вынуждая вывод быть только 0 или 1. Но вам следует пересмотреть также и начало нормализации, а также использование хорошо настроенных пороговых значений.
NB: в этом последнем приеме нет необходимости, но он может дать некоторые второстепенные преимущества; возможно, протестируйте его на втором этапе разработки и посмотрите на различия.
PS: Позвольте мне предложить кое-что, что должно относиться к вашей проблеме; если бы вы были умны, примите во внимание использование некоторой нечеткой логики в вашем алгоритме обучения ;-)
Ваше здоровье!
Да, искусственные нейронные сети могут применяться к данным с дискретными входными переменными. В наиболее часто используемых архитектурах нейронных сетей (которые являются числовыми) дискретные входные данные обычно представлены серией фиктивных переменных, как и в статистической регрессии. Также, как и в случае с регрессией, необходимо на единицу меньше фиктивных переменных различных значений. Есть и другие способы, но самый простой.
Я опаздываю с этим вопросом, но это может кому-то помочь.
Допустим, у вас есть категориальная выходная переменная, например 3 разных категории (0, 1 и 2),
выходы
0
2
1
2
1
0
затем становится
1, 0, 0
0, 0, 1
0, 1, 0
0, 0, 1
0, 1, 0
1, 0, 0
Возможный результат вывода NN:
0.2, 0.3, 0.5 (winner is categ 2)
0.05, 0.9, 0.05 (winner is categ 1)
...
Тогда ваш холм NN имеет 3 выходных узла в этом случае, поэтому возьмите максимальное значение. Чтобы улучшить это, используйте энтропию в качестве меры ошибки и активацию softmax на выходном слое, чтобы сумма выходных данных равнялась 1.
Назначение нейронной сети - аппроксимация сложных функций путем интерполяции выборок. Как таковые, они, как правило, плохо подходят для дискретных данных, если только эти данные не могут быть выражены пороговым значением непрерывной функции. В зависимости от вашей проблемы, вероятно, будут гораздо более эффективные методы обучения.