Обычно функции предварительной активации на нейрон представляют собой комбинацию внутреннего продукта (или точечного произведения в умножении векторного вектора) и одно дополнение для введения смещения. Один нейрон может быть описан как
z = b + w1*x1 + x2*x2 + ... + xn*xn
= b + w'*x
h = activation(z)
, где b
является аддитивным членом (смещения нейрона) и каждый h
является выходом одного слоя и соответствует входу следующего слоя. В случае «выходного слоя» это y = h
. Слой может также состоять из нескольких нейронов или - как в вашем примере - только одиночных нейронов.
В описанном случае, похоже, что никакого смещения не используется. Я понимаю это следующим образом:
Для каждого входного нейрона x1
до x9
используется только один вес, здесь ничего не интересного. Поскольку существует девять входов, это делает 9 весовых коэффициентов, в результате чего-то вроде:
hidden_out = sigmoid(w1*x1 + w2*x2 + ... + w9*x9)
Для того, чтобы соединить скрытый слой к выходу, то же самое правило: вход выходного слоя взвешивают, а затем суммируются по всем входы. Поскольку существует только один вход, только один вес должен быть «суммированный», таким образом, что
output = w10*hidden_out
иметь в виду, что функция сигмовидной давит на его вход выходного диапазона 0..1, поэтому умножением его вес снова масштабирует его до требуемого диапазона выходного сигнала.
Я думаю, что лучше, если вы предоставите бумагу, если возможно – malioboro