Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Медведев В.С., Потемкин В.Г. Нейронные сети. MATLAB 6.doc
Скачиваний:
857
Добавлен:
07.03.2016
Размер:
15.55 Mб
Скачать

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

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

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.