Искусственные нейронные сети

Я хочу знать, можно ли применять искусственные нейронные сети к дискретным входам значений? Я знаю, что их можно применить к непрерывным входам, но можно ли их применить к дискретным? Кроме того, будет ли хорошо работать с дискретными входными данными?


person TimeToCodeTheRoad    schedule 17.09.2011    source источник
comment
Связано с stackoverflow.com/questions/3066353/   -  person Don Reba    schedule 18.09.2011
comment
Если все входы дискретны, у вас есть только конечное количество входных комбинаций. Если это число не является неоправданно большим, вы можете даже рассчитать оптимальный результат, вообще не используя искусственную нейронную сеть.   -  person Andre Holzner    schedule 18.09.2011


Ответы (4)


Что ж, позвольте мне сказать хороший вопрос!

Прежде всего позвольте мне прямо ответить утвердительно на ваш вопрос!

Ответ предполагает рассмотрение нескольких аспектов использования и реализации самой сети.

Тогда позвольте мне объяснить, почему:

  • Самый простой способ - нормализовать ввод, как обычно, это первое практическое правило с NN, чем позволить нейронной сети вычислить задачу, и как только вы получите результат, инвертируйте нормализацию, чтобы получить результат в исходном диапазоне, но все еще непрерывный , чтобы получить обратно конкретные значения, просто рассмотрите целую часть вашего вывода. Легко, работает и нормально, СДЕЛАНО! Хороший результат зависит только от топологии, которую вы проектируете для своей сети.

В качестве плюса вы могли бы рассмотреть использование «ступенчатой» передаточной функции вместо «желтовато-сигмовидной» между слоями, чтобы усилить и имитировать своего рода оцифровку, вынуждая вывод быть только 0 или 1. Но вам следует пересмотреть также и начало нормализации, а также использование хорошо настроенных пороговых значений.

NB: в этом последнем приеме нет необходимости, но он может дать некоторые второстепенные преимущества; возможно, протестируйте его на втором этапе разработки и посмотрите на различия.

PS: Позвольте мне предложить кое-что, что должно относиться к вашей проблеме; если бы вы были умны, примите во внимание использование некоторой нечеткой логики в вашем алгоритме обучения ;-)

Ваше здоровье!

person DrFalk3n    schedule 17.09.2011
comment
Почему этот ответ получил отрицательный голос без объяснения причин? - person dwjohnston; 05.07.2013

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

person Predictor    schedule 24.12.2011

Я опаздываю с этим вопросом, но это может кому-то помочь.

Допустим, у вас есть категориальная выходная переменная, например 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.

person Fernando    schedule 05.12.2013

Назначение нейронной сети - аппроксимация сложных функций путем интерполяции выборок. Как таковые, они, как правило, плохо подходят для дискретных данных, если только эти данные не могут быть выражены пороговым значением непрерывной функции. В зависимости от вашей проблемы, вероятно, будут гораздо более эффективные методы обучения.

person Don Reba    schedule 17.09.2011