Нормированная функция веса точечного продукта
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)