Нормированная функция веса точечного продукта
Z = normprod(W,P,FP)
dim = normprod('size',S,R,FP)
dw = normprod('dz_dw',W,P,Z,FP)
normprod является весовой функцией. Весовые функции применяют веса к входу, чтобы получить взвешенные входы.
Z = normprod(W,P,FP) принимает эти входы,
W |
|
P |
|
FP | Массив ячеек строк параметров функции (необязательно, проигнорировано) |
и возвращает S-by- Q матрица нормализованных точечных продуктов.
dim = normprod('size',S,R,FP) принимает размерность слоя S, входная размерность R, и параметры функции, и возвращает размер веса [S-by- R].
dw = normprod('dz_dw',W,P,Z,FP) возвращает производную Z относительно W.
Здесь вы задаете матрицу случайного веса W и входной вектор P и вычислите соответствующий взвешенный вход Z.
W = rand(4,3); P = rand(3,1); Z = normprod(W,P)
Можно создать стандартную сеть, которая использует normprod по вызову newgrnn.
Чтобы изменить сеть, чтобы вес входа использовал normprod, задать net.inputWeights{i,j}.weightFcn на 'normprod'. Для веса слоя задайте net.layerWeights{i,j}.weightFcn на 'normprod'.
В любом случае звоните sim чтобы симулировать сеть с normprod. Посмотрите newgrnn для примеров симуляции.
normprod возвращает скалярный продукт, нормированное суммой входных векторных элементов.
z = w*p/sum(p)