Нейронная сеть ввода / вывода - PullRequest
3 голосов
/ 30 июля 2009

Может кто-нибудь объяснить мне, как делать более сложные наборы данных, такие как статистика команды, погода, игральные кости, типы комплексных чисел

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

если бы кто-то мог привести примеры на python, это было бы большой помощью

Ответы [ 4 ]

3 голосов
/ 30 июля 2009

Вы должны закодировать ваш вход и выход во что-то, что может быть представлено единицами нейронной сети. (например, 1 для «x имеет определенное свойство p» -1 для «x не имеет свойства p», если диапазон ваших единиц находится в [-1, 1])

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

Кроме того, существует множество алгоритмов "нейронных сетей" и правил обучения для различных задач (обратное распространение, машины Больцмана, самоорганизующиеся карты).

2 голосов
/ 30 июля 2009

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


Входы

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

  • Погода: [температура сегодня, влажность сегодня, температура вчера, влажность вчера ...] связь между сегодняшней температурой и сегодняшней влажностью устанавливается внутри
  • Статистика команды: [средний рост, средний вес, максимальный рост, высший балл, ...]
  • Dice: не уверен, что я понимаю это, вы имеете в виду, как кодировать дискретные значения? *
  • Комплексный номер: [a, ai , b, bi , ...]

* Дискретные объекты сложны, но все еще могут быть закодированы как (0.0,1.0). Проблема в том, что они не обеспечивают градиент для изучения порога.


Выходы

Вы сами решаете, что вы хотите, чтобы вывод означал, а затем кодировали свои обучающие примеры в этом формате. Чем меньше выходных значений, тем легче обучаться.

  • Погода: [завтра вероятность дождя, завтра температура, ...] **
  • Командная статистика: [шанс выиграть, шанс выиграть более чем на 20, ...]
  • Комплексный номер: [x, xi , ...]

** Здесь ваши тренировочные векторы будут: 1,0, если на следующий день будет дождь, 0,0, если нет


Конечно, может ли проблема на самом деле моделироваться нейронной сетью - это другой вопрос.

0 голосов
/ 19 декабря 2013

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

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

Другим аспектом кодирования является то, что вы должны оценить количество входных и скрытых единиц в зависимости от количества данных. Слишком много единиц, связанных с данными, может дать плохую аппроксимацию из-за проблемы размерности курса. В некоторых случаях вы можете каким-то образом объединять некоторые входные данные, чтобы избежать этой проблемы, или использовать какой-либо механизм сокращения как PCA.

0 голосов
/ 30 июля 2009

Более сложные данные обычно означают добавление большего количества нейронов во входной и выходной слои.

Вы можете подавать каждое «поле» вашего регистра, должным образом закодированное как действительное значение (нормализованное и т. Д.), Каждому входному нейрону, или, возможно, вы можете даже еще больше разложить на битовые поля, назначив насыщенные входы 1 или 0 для нейронов ... для вывода, это зависит от того, как вы тренируете нейронную сеть, она будет пытаться имитировать выходы обучающего набора.

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