Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Литература / Потемкин В.Г. MATLAB 6.doc
Скачиваний:
5
Добавлен:
07.09.2025
Размер:
15.55 Mб
Скачать

Самоорганизующиеся сети

COMPET

Конкурирующая функция активации

Блок Simulink:

Синтаксис:

A = compet(N)

info = compet(code)

Описание:

Функция A = compet(N) реализует конкурирующую функцию активации.

Функция info = compet(code) сообщает информацию о функции compet.

Функция compet не имеет производной.

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

Пример:

Информация о функции активации compet:

name = compet('name')

dname = compet('deriv')

inrange = compet('active')

outrange = compet('output')

name = Competitive

dname = ''

inrange = –Inf Inf

outrange = 0 1

Зададим следующий вектор входа конкурирующей функции активации, вычислим выход и представим входы и выходы в виде столбцовых диаграмм (рис. 11.37):

n = [0; 1; –0.5; 0.5];

a = compet(n);

subplot(2,1,1), bar(n), ylabel('n')

subplot(2,1,2), bar(a), ylabel('a') % Рис.11.37

Рис. 11.37

Применение функции:

Функция активации compet используется при формировании вероятностных и самоорганизующихся нейронных сетей с помощью М-функций newc и newpnn. Для задания функции активации compet следует установить значение свойства net.layers{i}.transferFcn равным 'compet'.

Сопутствующие функции: SIM, SOFTMAX.

softmax

Конкурирующая функция активации с мягким максимумом

Блок Simulink:

Синтаксис:

A = softmax(N)

info = softmax(code)

Описание:

Функция A = softmax(N) реализует конкурирующую функцию активации с мягким максимумом.

Функция info = softmax(code) сообщает информацию о функции softmax.

Функция softmax не имеет производной.

Пример:

Информация о функции активации softmax:

name = softmax('name')

dname = softmax('deriv')

inrange = softmax('active')

outrange = softmax('output')

name = Soft Max

dname = ''

inrange = –Inf Inf

outrange = 0 1

Зададим следующий вектор входа конкурирующей функции активации с мягким максимумом, вычислим выход и представим входы и выходы в виде столбцовых диаграмм:

n = [0; 1; –0.5; 0.5];

a = softmax(n);

subplot(2,1,1), bar(n), ylabel('n')

subplot(2,1,2), bar(a), ylabel('a') % Рис.11.38

Рис. 11.38

Применение функции:

Функция активации softmax используется при формировании вероятностных и самоорганизующихся нейронных сетей с помощью М-функций newc и newpnn. Для задания функции активации softmax следует установить значение свойства net.layers{i}.transferFcn равным 'softmax'.

Сопутствующие функции: sim, compet.

Рекуррентные сети

logsig, DLOGSIG

Логистическая функция

Блок Simulink:

Синтаксис:

A = logsig(N)

info = logsig(code)

dA_dN = dlogsig(N,A)

Описание:

Функция A = logsig(N) реализует логистическую сигмоидальную функцию активации.

Функция info = logsig(code) сообщает информацию о функции logsig.

Функция dA_dN = logsig(N, A) вычисляет производную функции logsig.

Пример:

Информация о функции активации logsig:

name = logsig('name')

dname = logsig('deriv')

inrange = logsig('active')

outrange = logsig('output')

name = Log Sigmoid

dname = dlogsig

inrange = –4 4

outrange = 0 1

Построим график функции активации logsig(рис. 11.39):

n = –5:0.1:5;

a = logsig(n);

plot(n,a) % Рис.11.39

Рис. 11.39

Зададим следующий вектор входа логистической функции активации для слоя из трех нейронов и рассчитаем вектор выхода A и производную dA_dN:

N = [0.1; 0.8; –0.7];

A = logsig(N)

dA_dN = dlogsig(N,A)

A =

0.5250

0.6900

0.3318

dA_dN =

0.2494

0.2139

0.2217

Применение функции:

Функция активации logsig используется при формировании нейронных сетей прямой передачи с помощью М-функций newff и newcf. Для задания функции активации logsig следует установить значение свойства net.layers{i}.transferFcn равным 'logsig'.

Алгоритм:

Функция активации logsig и ее производная dlogsig определяются следующими соотношениями:

;

.

Сопутствующие функции: sim, dlogsig, dtansig.

TANSIG, DTANSIG

Гиперболическая тангенциальная функция

Блок Simulink:

Синтаксис:

A = tansig(N)

info = tansig(code)

dA_dN = dtansig(N,A)

Описание:

Функция A = tansig(N) реализует гиперболическую тангенциальную функцию активации.

Функция info = tansig(code) сообщает информацию о функции tansig.

Функция dA_dN = tansig(N, A) вычисляет производную функции tansig.

Пример:

Информация о функции активации tansig:

name = tansig('name')

dname = tansig('deriv')

inrange = tansig('active')

outrange = tansig('output')

name = Tan Sigmoid

dname = dtansig

inrange = –2 2

outrange = –1 1

Следующая последовательность команд строит график функции активации tansig:

n = –3:0.1:3;

a = tansig(n);

plot(n,a) % Рис.11.40

Рис. 11.40

Зададим следующий вектор входа гиперболической тангенциальной функции активации для слоя из трех нейронов и рассчитаем вектор выхода A и производную dA_dN:

N = [0.1; 0.8; –0.7];

A = tansig(N)

dA_dN = dtansig(N,A)

A =

0.0997

0.6640

–0.6044

dA_dN =

0.9901

0.5591

0.6347

Применение функции:

Функция активации tansig используется при формировании нейронных сетей прямой передачи с помощью М-функций newff и newcf. Для задания функции активации tansig следует установить значение свойства net.layers{i}.transferFcn равным 'tansig'.

Алгоритм:

Функция активации tansig и ее производная dtansig определяются следующими соотношениями:

;

.

Приведенное выражение для функции tansig(n) математически эквивалентно функции tanh(N), но отличается тем, что выполняется быстрее, чем реализация функции tanh в системе MATLAB. Для нейронных сетей, где быстродействие играет важную роль, это весьма существенно [42].

Сопутствующие функции: sim, dtansig, logsig.