Функции накопления

Функции, задающие правила формирования входа нейрона, называются функциями накопления. Как правило, это либо сумма взвешенных входов, либо их поэлементное произведение.

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.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: