Как рассчитать выход нейронной сети?

1

Я только начал узнавать о ANN около недели назад без классической подготовки. Просто просматривая видеоролики и читаю блоги/белые документы, я получил это далеко.

У меня вопрос о окончательном выходе ANN.

Скажем, например, я строил XOR с двумя входными узлами, тремя узлами в одном скрытом слое и одним узлом на выходном уровне. A 2 x 3 x 1.

Сначала я хотел бы убедиться, что у меня есть первая часть права.

Поэтому каждый узел имеет вес, связанный с ним для каждого узла в скрытом слое, если у вас есть 5 узлов в скрытом слое, входной узел будет вычислять его вход и умножать на вес, связанный с каждым узлом в скрытом слое.

Поэтому для вычисления сигмоида для первого узла вы должны взять все входы и умножить его на вес (нет + для смещения) и применить сигмоидную функцию для суммы входов * весов. Затем мы вышвырнули это значение сигмоидом и получим 0.5866175789173301.

По существу, это было бы (1 x.25) + (1 x.10) =.35.

Теперь я просто делаю это три раза для каждого узла и получаю 3 раздавленных номера.

  // (input1 * HiddenNode(x)Weight) + (input2 * HiddenNode(x)Weight)
  activationFunction((1 * .25) + (1 * .10)) // 0.5866175789173301
  activationFunction((0 * .40) + (1 * .60)) // 0.6456563062257954
  activationFunction((1 * .20) + (0 * .80)) // 0.549833997312478

Теперь, из того, что я понимаю, я снова суммирую и раздаю эти ответы:

  activationFunction(hidden1 + hidden2 + hidden3) // 0.8559569515861635

До сих пор я это исправляю?

Мой вопрос заключается в том, что если вы кормите двумя масштабированными числами, чтобы предсказать оценки, 89 и 6.5 = (сорт/часы сна)

Как бы вы вычислили выход с.8559 на число, подобное 93, и вычислить ошибку на этом значении? Я что-то пропустил, кроме предвзятости?

Если бы я вступил в процент изменений для последних 3 изменений цен на акции, и я хотел, чтобы он угадал четвертую цену, как бы я мог бы преобразовать такой ответ:

 activationFunction(hidden1 + hidden2 + hidden3) // 0.8559569515861635

на ответ на.10 (процентное изменение цены акций) или любой другой реальный ответ?

Заранее спасибо!

Теги:
ecmascript-6
machine-learning
neural-network
genetic-programming

1 ответ

1

В отличие от упомянутых людей. Входы не должны быть двоичными. Они должны находиться между определенным диапазоном (0,1 для сигмоида, -1,1 для TanH).

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

// Completely right, each hidden node gets input from 2 input nodes
activationFunction((1 * .25) + (1 * .10)) // 0.5866175789173301
activationFunction((0 * .40) + (1 * .60)) // 0.6456563062257954
activationFunction((1 * .20) + (0 * .80)) // 0.549833997312478

// However, all the hidden nodes are connected the output node
output = activationFunction((0.59 * weight1) + (0.64 * weight2) + (0.55 * weight3))

Всегда имейте в виду, что узлы могут соединяться только с другими узлами соединениями, которые всегда имеют вес.

Мой вопрос заключается в том, что если вы кормите двумя масштабированными числами, чтобы предсказать оценки, 89 и 6.5 = (сорт/часы сна)

Сначала вы масштабируете входы (подробнее здесь):

89 > 0.89
6.5 > 6.4 / 24 = 0.27

Так что если новый уровень, который вы получили, 0.8559 100, а ваш результат 0.8559 тогда ошибка на вашем выходном узле составляет 1.00 - 0.8559 = 0.1441. Затем вы возвращаете это через сеть, но я не прав, чтобы объяснить это вам.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню