Функции, задающие правила формирования входа нейрона, называются функциями накопления. Как правило, это либо сумма взвешенных входов, либо их поэлементное произведение.
netSUM,DNETSUM | Сумма взвешенных входов |
Блок Simulink:
Синтаксис:
N = netsum(Z1,Z2,...) df = netsum('deriv') | dN_dZi = dnetsum(Zi,N) |
Описание:
Функция N = netprod(Z1, Z2,...) вычисляет функцию накопления потенциала нейрона в виде суммы элементов взвешенных входов Zi размера S´Q, где S – число нейронов
в слое, Q – число элементов вектора входа. Для описания операции, выполняемой этим блоком, можно ввести следующую нотацию:
, (11.4)
где символ обозначает поэлементное сложение.
Функция df = netsum('deriv') возвращает имя М-функции, которая вычисляет производную суммы массивов взвешенных входов.
Функция dN_dZi = dnetprod(Zi, N) вычисляет производную от суммы взвешенных входов N по одному из входов. Здесь N, Zi и dN_dZi – массивы одинакового размера S´Q.
Пример:
Вычислить функцию накопления потенциала для следующих взвешенных входов:
Z1 = [ 1 2 4; 3 4 1];
Z2 = [–1 2 2; –5 –6 1];
|
|
N = netsum(Z1,Z2)
N =
0 4 6
–2 –2 2
Вычислить функцию накопления с учетом вектора смещения b. Поскольку массивы Z1 и Z2 составлены из трех векторов, то с помощью функции concur должен быть создан массив из трех копий вектора смещения b для того, чтобы все размерности совпадали:
b = [0; –1];
N = netsum(Z1,Z2,concur(b,size(Z1,2)))
N =
0 4 6
–3 –3 1
Определим 2 весовые матрицы входа для слоя с тремя нейронами:
Z1 = [0; 1; –1];
Z2 = [1; 0.5; 1.2];
Вычислить вход нейрона N с помощью функции netsum и затем найти производные по каждому из взвешенных входов:
N = netsum(Z1,Z2)
dN_dZ1 = dnetsum(Z1,N)
dN_dZ2 = dnetsum(Z2,N)
N =
0 4 6
–2 –2 2
dN_dZ1 =
1 1 1
1 1 1
dN_dZ2 =
1 1 1
1 1 1
Применение функции:
Функция вычисления потенциала netsum применяется в архитектуре персептрона
и линейных нейронных, формируемых с помощью М-функций newp и newlin.
Чтобы применить функцию вычисления потенциала netsum, следует установить
значение свойства net.layers{i}.netInputFcn равным 'netsum'.
Алгоритм:
Производная суммы по любому элементу этой суммы всегда является массивом
единиц, имеющим те же размеры, что и сумма.
Сопутствующие функции: sim, netprod, concur.
netprod, DNETPROD | Поэлементное произведение взвешенных входов |
Блок Simulink:
Синтаксис:
N = netprod(Z1,Z2,...) df = netprod('deriv') | dN_dZi = dnetprod(Zi,N) |
Описание:
Функция N = netprod(Z1, Z2,...) вычисляет функцию накопления потенциала нейрона в виде поэлементного произведения массивов взвешенных входов Zi размера S´Q, где
S – число нейронов в слое, Q – число элементов вектора входа. Для описания операции, выполняемой этим блоком, можно ввести следующую нотацию:
, (11.5)
где символ обозначает поэлементное произведение.
Функция df = netprod('deriv') возвращает имя М-функции, которая вычисляет производную от поэлементного произведения массивов.
|
|
Функция dN_dZi = dnetprod(Zi, N) вычисляет производную от поэлементного произведения взвешенных входов N по одному из входов. Здесь N, Zi и dN_dZi – массивы одинакового размера S´Q.
Пример:
Вычислить функцию накопления для следующих взвешенных входов:
Z1 = [ 1 2 4; 3 4 1];
Z2 = [–1 2 2; –5 –6 1];
N = netprod(Z1,Z2)
N =
–1 4 8
–15 –24 1
Вычислить функцию накопления с учетом вектора смещения b. Поскольку массивы Z1 и Z2 составлены из трех векторов, то с помощью функции concur должен быть создан массив из трех копий вектора смещения b для того, чтобы все размерности совпадали:
b = [0; –1];
N = netprod(Z1,Z2,concur(b,size(Z1,2)))
N =
0 0 0
15 24 –1
Определим 2 взвешенных входа для слоя с тремя нейронами:
Z1 = [0; 1; –1];
Z2 = [1; 0.5; 1.2];
Вычислить вход нейрона N с помощью функции netprod и затем найти производные по каждому из взвешенных входов:
N = netprod(Z1,Z2); N'
dN_dZ1 = dnetprod(Z1,N); dN_dZ1'
dN_dZ2 = dnetprod(Z2,N); dN_dZ2'
ans = 0 0.5000 –1.2000
ans = NaN 0.5000 1.2000
ans = 0 1 –1
Применение функции:
Функция поэлементного произведения netprod применяется в архитектуре обобщенных регрессионных и вероятностных сетей, формируемых с помощью М-функций newgrnn и newpnn.
Чтобы применить функцию вычисления потенциала netprod, следует установить
значение свойства net.layers{i}.netInputFcn равным 'netprod'.
Алгоритм:
Производная поэлементного произведения взвешенных входов по каждому из них равна поэлементному произведению остальных взвешенных входов, за исключением особого случая, когда взвешенный вход содержит нулевой элемент.
Сопутствующие функции: SIM, NETSUM, CONCUR.