Нули как вход нейронной сети

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

double NewWeight(double oldWeight){
return oldWeight+(MeanSquaredError*input*learningRate);
}

Это формула для нового веса в соответствии с http://natureofcode.com/book/chapter-10-neural-networks/

Во-первых, если у меня будет нулевой ввод независимо от ошибки, вес останется прежним. Это решается с помощью смещения?

Во-вторых, нейронные сети часто имеют более двух входов (например, в XOR). В этом случае, вам нужно добавить два входа? Или, возможно, найти среднее значение веса с отдельными входами?

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

1

Решение

Во-первых, уклон ничего не меняет. Обычно смещение реализуется путем дополнительного ввода с постоянной 1 и весом в качестве смещения. Увидеть https://en.wikipedia.org/wiki/Perceptron#Definitions.

Во-вторых, вы рассчитываете веса для каждого ребра в вашей сети. Итак, если у вас есть два входа, вы рассчитываете веса для каждого из них.

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

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector