- •В. Г. Потемкин
- •Предисловие
- •Введение
- •Используемые обозначения
- •Часть 1. Ппп Neural Network Toolbox
- •1. Система matlab 6
- •1.1. Операционная среда matlab 6
- •Командное окно
- •Окно предыстории
- •Окно запуска
- •Окно текущего каталога
- •Окно рабочей области
- •Справочная подсистема
- •1.3. Демонстрационные примеры ппп nnt
- •2. Модель нейрона и архитектура сети
- •2.1. Модель нейрона
- •2.1.1. Простой нейрон
- •2.1.2. Функция активации
- •2.1.3. Нейрон с векторным входом
- •2.2. Архитектура нейронных сетей
- •2.2.1. Однослойные сети
- •2.2.2. Многослойные сети
- •2.2.3. Сети с прямой передачей сигнала
- •2.3. Создание, инициализация и моделирование сети Формирование архитектуры сети
- •Инициализация сети
- •Моделирование сети
- •3. Обучение нейронных сетей
- •3.1. Процедуры адаптации и обучения
- •Явление переобучения
- •Свойство обобщения
- •3.1.1. Способы адаптации и обучения
- •Адаптация нейронных сетей
- •Xlabel(''), ylabel('Выходыa(I)'),grid
- •Xlabel(''), ylabel('Весавходовw(I)'),grid
- •Xlabel(' Циклы'), ylabel('Ошибка'),grid
- •Xlabel(''), ylabel('Выходыa(I)'),grid
- •Xlabel(''), ylabel('Весавходовw(I)'),grid
- •Xlabel('Циклы'), ylabel('Ошибка'),grid
- •Xlabel(''), ylabel('Выходыa(I)'),grid
- •Xlabel(''), ylabel('Весавходовw(I)'),grid
- •Xlabel('Циклы'), ylabel('Ошибка'),grid
- •Обучение нейронных сетей
- •3.2. Методы обучения
- •3.2.1. Обучение однослойной сети
- •3.2.2. Обучение многослойной сети
- •Метод обратного распространения ошибки
- •Характеристика методов обучения
- •3.3. Алгоритмы обучения
- •3.3.1. Градиентные алгоритмы обучения Алгоритм gd
- •Алгоритм gdm
- •Алгоритм gda
- •Алгоритм Rprop
- •3.3.2. Алгоритмы метода сопряженных градиентов
- •Алгоритм cgf
- •Алгоритм cgp
- •Алгоритм cgb
- •Алгоритм scg
- •3.3.3. Квазиньютоновы алгоритмы Алгоритм bfgs
- •Алгоритм oss
- •Алгоритм lm
- •3.3.4. Алгоритмы одномерного поиска
- •Алгоритм gol
- •Алгоритм bre
- •Алгоритм hyb
- •Алгоритм cha
- •Алгоритм bac
- •3.3.5. Расширение возможностей процедур обучения
- •Переобучение
- •Метод регуляризации
- •Формирование представительной выборки
- •Предварительная обработка и восстановление данных
- •Пример процедуры обучения
- •4. Персептроны
- •4.1. Архитектура персептрона
- •4.2. Модель персептрона
- •Моделирование персептрона
- •Инициализация параметров
- •4.3. Процедуры настройки параметров
- •Правила настройки
- •Процедура адаптации
- •5. Линейные сети
- •5.1. Архитектура линейной сети
- •5.2. Создание модели линейной сети
- •5.3. Обучение линейной сети
- •Процедура настройки
- •Процедура обучения
- •5.4. Применение линейных сетей Задача классификации векторов
- •Фильтрация сигнала
- •Предсказание сигнала
- •Подавление шумов
- •Многомерные цифровые фильтры
- •6. Радиальные базисные сети
- •Модель нейрона и архитектура сети
- •Создание сети
- •Радиальная базисная сеть с нулевой ошибкой
- •Итерационная процедура формирования сети
- •Примеры радиальных базисных сетей
- •6.1. Сети grnn
- •Архитектура сети
- •Синтез сети
- •6.2. Сети pnn
- •Архитектура сети
- •Синтез сети
- •7. Сети кластеризации и классификации данных
- •7.1. Самоорганизующиеся нейронные сети
- •7.1.1. Слой Кохонена
- •Архитектура сети
- •Создание сети
- •Правило обучения слоя Кохонена
- •Правило настройки смещений
- •Обучение сети
- •7.1.2. Карта Кохонена
- •Топология карты
- •Функции для расчета расстояний
- •Архитектура сети
- •Создание сети
- •Обучение сети
- •Одномерная карта Кохонена
- •Двумерная карта Кохонена
- •Архитектура сети
- •Создание сети
- •Обучение сети Правила настройки параметров
- •Процедура обучения
- •8. Рекуррентные сети
- •8.1. Сети Элмана
- •Архитектура
- •Создание сети
- •Обучение сети
- •Проверка сети
- •8.2. Сети Хопфилда
- •Архитектура сети
- •Синтез сети
- •9. Применение нейронных сетей
- •9.1. Аппроксимация и фильтрация сигналов
- •9.1.1. Предсказание стационарного сигнала Постановка задачи
- •Синтез сети
- •Проверка сети
- •9.1.2. Слежение за нестационарным сигналом
- •Инициализация сети
- •Проверка сети
- •9.1.3. Моделирование стационарного фильтра
- •Постановка задачи
- •Синтез сети
- •Проверка сети
- •9.1.4. Моделирование нестационарного фильтра
- •Постановка задачи
- •Инициализация сети
- •Проверка сети
- •9.2. Распознавание образов
- •Постановка задачи
- •Нейронная сеть
- •Архитектура сети
- •Инициализация сети
- •Обучение
- •Обучение в отсутствие шума
- •Обучение в присутствии шума
- •Повторное обучение в отсутствие шума
- •Эффективность функционирования системы
- •9.3. Нейронные сети и системы управления
- •9.3.1. Регулятор с предсказанием
- •9.3.2. Регулятор narma-l2
- •9.3.3. Регулятор на основе эталонной модели
- •Часть2. Операторы, функции и команды
- •10. Вычислительная модель нейронной сети
- •10.1. Описание сети Описание архитектуры
- •Функции инициализации, адаптации и обучения
- •10.2. Описание элементов сети
- •Описание входов
- •Описание слоев
- •Описание выходов
- •Описание целей
- •Описание смещений
- •Описание весов входа
- •Описание весов слоя
- •Матрицы весов и векторы смещений
- •Информационные поля
- •11. Формирование моделей нейронных сетей
- •11.1. Модели сетей
- •11.1.1. Однослойные сети Персептрон
- •Линейные сети
- •11.1.2. Многослойные сети
- •Радиальные базисные сети
- •Самоорганизующиеся сети
- •Сети – классификаторы входных векторов
- •Рекуррентные сети
- •11.2. Функции активации
- •Персептрон
- •Линейные сети
- •Радиальные базисные сети
- •Самоорганизующиеся сети
- •Рекуррентные сети
- •11.3. Синаптические функции
- •Функции взвешивания и расстояний
- •Функции накопления
- •11.4. Функции инициализации
- •11.5. Функции адаптации и обучения Функции адаптации
- •Функции обучения
- •Градиентные алгоритмы обучения
- •Алгоритмы метода сопряженных градиентов
- •Квазиньютоновы алгоритмы обучения
- •11.5.1. Функции оценки качества обучения
- •11.6. Функции настройки параметров
- •11.6.1. Функции одномерного поиска
- •11.7. Масштабирование и восстановление данных
- •11.8. Вспомогательные функции
- •Утилиты вычислений
- •Операции с массивами данных
- •Графические утилиты
- •Информация о сети и ее топологии
- •11.9. Моделирование нейронных сетей и система Simulink Функции моделирования сети
- •11.9.1. Применение системы Simulink
- •Библиотеки блоков для моделирования нейронных сетей
- •Построение моделей нейронных сетей
- •Индексный указатель Команды, функции и операторы ппп Neural Network Toolbox
- •Предметный указатель
- •Литература Книги на английском языке:
- •Книги на русском языке:
- •Оглавление
11.3. Синаптические функции
Функции этой группы выполняют следующие операции над векторами входов нейронной сети: взвешивание, вычисление расстояний в сетях с топологией, накопление для вычисления потенциала нейрона. При описании синаптических функций описывается не только сама функция, но и ее производные по входным аргументам, если они определены.
Функции взвешивания и расстояний
DOTPROD, DDOTPROD |
Скалярное произведение |
Блок SIMULINK:
Синтаксис:
Z = dotprod(W, P) df = dotprod(‘deriv’) |
dZ_dP = ddotprod('p',W,P,Z) dZ_dW = ddotprod(‘w’,W,P,Z) |
Описание:
Функция Z = dotprod(W, P)вычисляет матрицу взвешенных входов в виде произведенияW*Pмассива входовPразмера RQ и матрицы весовWразмера SR. Результатом является матрицаZразмера SQ.
Функция df = dotprod('deriv')возвращает имя М-функции, которая вычисляет производную скалярного произведения по одному из сомножителей.
Функции dZ_dP = ddotprod('p', W, P, Z)иdZ_dW = ddotprod('w', W, P, Z)имеют следующие входные и выходные аргументы:
W – матрица весов размера SR;
P – массив входов размера RQ;
Z – матрица размера SQ, где S – число нейронов в слое,Q– число векторов входа,R – число элементов каждого вектора входа;
dZ_dP – матрица производной dZ/dP размера SR;
dZ_dW – матрица производной dZ/dW размера RQ.
Примеры:
Вычислим вектор взвешенных входов Z, если заданы случайные матрица весов W и вектор входа P:
W = rand(4,3)
P = rand(3,1); P'
Z = dotprod(W,P); Z'
W =
0.6068 0.4565 0.6154
0.4860 0.0185 0.7919
0.8913 0.8214 0.9218
0.7621 0.4447 0.7382
ans = 0.1763 0.4057 0.9355
ans = 0.8679 0.8340 1.3527 1.0053
Определим имя М-функции, которая вычисляет производную взвешенной функции в виде скалярного произведения:
df = dotprod('deriv')
df = ddotprod
Вычислим производные скалярного произведения по каждому аргументу:
dZ_dP = ddotprod('p',W,P,Z)
dZ_dW = ddotprod('w',W,P,Z)
dZ_dP =
0.6068 0.4565 0.6154
0.4860 0.0185 0.7919
0.8913 0.8214 0.9218
0.7621 0.4447 0.7382
dZ_dW =
0.1763
0.4057
0.9355
Нетрудно убедиться, что производная произведения матрицы весов на вектор входа z=W*P по аргументу P совпадает с матрицей весовW, а производная по аргументуW– с входным векторомp.
Применение функции:
Функция взвешивания dotprod используется по умолчанию при формировании нейронных сетей персептронаnewpи линейных слоевnewlin. Чтобы применить эту функцию для формирования других типов сетей необходимо установить значения свойствnet.inputWeight{i, j}.weightFcnиnet.layerWeight{i, j}.weightFcn равными 'dotprod'.
Алгоритм:
Производная скалярного произведения двух матриц Z=W*Pпо одной из них равна второй матрице, т. е.dZ/dP = W, dZ/dW = P.
Сопутствующие функции: SIM, DIST, NEGDIST, NORMPROD.
nORMPRod |
Нормированное скалярное произведение |
Синтаксис:
Z = normprod(W,P) df = normprod('deriv') |
|
Описание:
Функция взвешивания normprod отличается от функции dotprod тем, что она является нормированной функцией и не имеет производной.
Функция Z = normprod(W,P)вычисляет массив взвешенных входов в виде нормированного скалярного произведенияW*P/sum(P,1), гдеW– матрица весов размера SR,P– массив входов размера RQ. Результатом является массив значений взвешенных входовZразмера SQ.
Функция df = normprod('deriv')возвращает пустую строку ' ', так как производная для функцииnormprodне определена.
Пример:
Определим случайную весовую матрицу W и вектор входа P и рассчитаем соответствующий взвешенный вход Z:
W = rand(4,3)
P = rand(3,1); P'
Z = normprod(W,P); Z'
W =
0.0153 0.4660 0.2026
0.7468 0.4186 0.6721
0.4451 0.8462 0.8381
0.9318 0.5252 0.0196
ans = 0.6813 0.3795 0.8318
ans = 0.1880 0.6482 0.6983 0.4494
Применение функции:
Функция взвешивания normprod применяется в архитектуре обобщенных регрессионных сетей, формируемых с помощью М-функцииnewgrnn.
Чтобы применить функцию взвешивания normprod, следует установить значения для свойствnet.inputWeights{i, j}.weightFcnиnet.layerWeights{i, j}.weightFcnравными'normprod'.
Алгоритм:
Функция normprod возвращает скалярные произведения весовой матрицы на каждый вектор входа, деленные на сумму элементов каждого вектора, в виде следующей матрицы Z:
Z = W*P./sum(P, 1).
Сопутствующие функции: SIM, DOTPROD, NEGDIST, DIST.
Функции расстояний могут использоваться как функции взвешивания, но их основное назначение характеризовать топологию вероятностных и самоорганизующихся сетей путем вычисления расстояний между нейронами в слое.
DIST |
Евклидово расстояние |
Блок SIMULINK:
Синтаксис:
Z = dist(W,P) df = dist('deriv') |
D = dist(pos) |
Описание:
Функция взвешивания Z = dist(W, P) вычисляет евклидово расстояние между каждой строкой wiматрицы весовWи каждым столбцом pj матрицы входовPв соответствии со следующим соотношением:
zij= norm(wi–pj').(11.1)
Функция Z = dist(W, P) вычисляет матрицу взвешенных входов для матрицы входов P размера RQ и матрицы весов W размера SR. Результатом является матрица Z размера SQ.
Функция df= dist('deriv') возвращает пустую строку, поскольку производная не определена.
Функция dist может быть использована как функция для вычисления расстояний между нейронами в слое.
Функция расстояния D = dist(pos) вычисляет расстояние между нейронами для сетей с топологией. Входной аргумент pos – это матрица координат расположения нейронов в N-мерном пространстве размера NS; выходной аргумент D – это матрица расстояний размера SS.
Примеры:
Вычислим вектор взвешенных входов Z, если заданы случайные матрица весов W размера 43 и вектор входа P размера 31:
W = rand(4,3);
P = rand(3,1);
Z = dist(W,P)
Z =
0.6791
0.3994
0.3234
0.5746
Результатом является вектор размера 41, вычисленный в соответствии с соотношением (11.1).
Рассмотрим сеть с топологией, для которой задана случайная матрица координат для 10 нейронов в трехмерном пространстве и требуется рассчитать матрицу евклидовых расстояний между ними.
pos = rand(3,10);
D = dist(pos)
D =
Columns 1 through 7
0 0.5304 0.9195 0.9366 0.5776 1.0651 0.9003
0.5304 0 0.7033 0.4450 0.7648 1.1121 0.8339
0.9195 0.7033 0 0.5551 0.6438 0.7713 0.3219
0.9366 0.4450 0.5551 0 0.9521 1.1444 0.7971
0.5776 0.7648 0.6438 0.9521 0 0.9396 0.6349
1.0651 1.1121 0.7713 1.1444 0.9396 0 0.4624
0.9003 0.8339 0.3219 0.7971 0.6349 0.4624 0
1.1471 0.9753 0.4052 0.8125 0.9155 0.5243 0.2948
0.3750 0.2967 0.6520 0.6215 0.6276 0.8666 0.6631
1.0744 0.9119 0.4235 0.7844 0.8969 0.4576 0.2754
Columns 8 through 10
1.1471 0.3750 1.0744
0.9753 0.2967 0.9119
0.4052 0.6520 0.4235
0.8125 0.6215 0.7844
0.9155 0.6276 0.8969
0.5243 0.8666 0.4576
0.2948 0.6631 0.2754
0 0.8512 0.1166
0.8512 0 0.7709
0.1166 0.7709 0
В результате получаем симметричную матрицу взаимных расстояний между нейронами.
Применение функции:
Функция взвешивания dist используется при формировании вероятностных сетей newpnn и обобщенных регрессионных сетей newgrnn. Чтобы применить эту функцию взвешивания для формирования других типов сетей необходимо установить значения свойствnet.inputWeight{i, j}.weightFcnиnet.layerWeight{i, j}.weightFcn равными 'dist'.
Чтобы применить функцию расстояния dist для сетей с топологией, необходимо установить значение свойстваnet.layers{i}.distanceFcnравным'dist'.
Алгоритм:
Евклидово расстояние dмежду векторамиxиyвычисляется в системеMATLABследующим образом:
d = sqrt((x–y).^2).
Сопутствующие функции: SIM, DOTPROD, NEGDIST, NORMPROD, MANDIST, LINKDIST.
negdist |
Отрицательное евклидово расстояние |
Синтаксис:
Z = negdist(W, P)
df = negdist('deriv')
Описание:
Функция negdistприменяется в самоорганизующихся сетях как функция взвешивания.
Функция взвешивания Z = negdist(W, P) вычисляет отрицательное евклидово расстояние между каждой строкой wiматрицы весовWи каждым столбцом pj матрицы входовPв соответствии со следующим соотношением:
zij= norm(wi–pj').(11.2)
Функция Z = dist(W, P) вычисляет матрицу взвешенных входов для матрицы входов Pразмера RQ и матрицы весовWразмера SR. Результатом является матрицаZразмера SQ.
Функция df = dist('deriv') возвращает пустую строку, поскольку производная не определена.
Пример:
Вычислим вектор взвешенных входов Z, если заданы случайные матрица весов W размера 43 и вектор входа P размера 31:
W = rand(4,3);
P = rand(3,1);
Z = negdist(W,P)
Z =
–0.7558
–0.8090
–0.4755
–0.8113
Применение функции:
Функция взвешивания negdist используется при формировании самоорганизующихся сетей newc и newsom. Чтобы применить эту функцию взвешивания для других сетей, необходимо установить значения свойств net.inputWeight{i, j}.weightFcn и net.layerWeight{i, j}.weightFcn равными 'negdist'.
Алгоритм:
Функция negdist вычисляет взвешенный вход для векторовxиyв системеMATLABследующим образом:
z = –sqrt(sum(x – y).^2).
Сопутствующие функции: sim, dotprod, dist.
mandist |
Расстояние суммарного координатного смещения |
Синтаксис:
Z = mandist(W, P) df = mandist('deriv') |
D = mandist(pos) |
Описание:
Функция взвешивания Z = mandist(W, P) вычисляет расстояние в виде суммарного координатного смещения между каждой строкой wiматрицы весовWи столбцом pj матрицы входовPв соответствии со следующим соотношением:
zij= sum(abs(wi–pj')).(11.3)
Функция Z = mandist(W, P) вычисляет матрицу взвешенных входов для матрицы входов P размера RQ и матрицы весов W размера SR. Результатом является матрица Z размера SQ.
Функция df = dist('deriv') возвращает пустую строку, поскольку производная не определена.
Функция mandist может быть использована как функция для вычисления расстояний между нейронами в слое.
Функция расстояния D = mandist(pos) вычисляет расстояние между нейронами для сетей с топологией. Входной аргумент pos – это матрица координат расположения нейронов вN-мерном пространстве размера NS; выходной аргумент D – это матрица расстояний размераSS.
Пример:
Вычислим вектор взвешенных входов Z, если заданы случайные матрица весов W размера 43 и вектор входа P размера 31:
W = rand(4,3);
P = rand(3,1);
Z = mandist(W,P)
Z =
0.8265
0.9830
1.0359
1.7712
Результатом является вектор размера 41, вычисленный в соответствии с соотношением (11.2).
Рассмотрим сеть с топологией, для которой задана случайная матрица координат для 10 нейронов в трехмерном пространстве и требуется рассчитать матрицу евклидовых расстояний между ними.
pos = rand(3,10);
D = mandist(pos)
D =
Columns 1 through 7
0 0.8589 0.6427 1.2565 0.8813 0.5815 0.7340
0.8589 0 0.6227 0.9084 1.2433 1.4404 0.7770
0.6427 0.6227 0 0.8333 1.5239 1.1681 1.2451
1.2565 0.9084 0.8333 0 0.9730 1.0287 1.5443
0.8813 1.2433 1.5239 0.9730 0 0.7039 1.1153
0.5815 1.4404 1.1681 1.0287 0.7039 0 1.2512
0.7340 0.7770 1.2451 1.5443 1.1153 1.2512 0
0.8268 0.8910 0.9289 1.7622 1.7081 1.3523 1.1911
1.0852 0.9757 0.4425 1.0977 1.9665 1.6107 1.5981
0.7504 1.1124 1.3930 1.2194 0.7122 0.9397 0.4031
Columns 8 through 10
0.8268 1.0852 0.7504
0.8910 0.9757 1.1124
0.9289 0.4425 1.3930
1.7622 1.0977 1.2194
1.7081 1.9665 0.7122
1.3523 1.6107 0.9397
1.1911 1.5981 0.4031
0 0.8238 1.5772
0.8238 0 1.8356
1.5772 1.8356 0
Применение функции:
Функция суммарного координатного смещения используется в сетях с топологией, например в картах Кохонена newsom. Чтобы применить эту функцию для других сетей с топологией, необходимо установить значение свойства net.layerWeight{i,j}.distanceFcn равным 'mandist'.
Чтобы применить функцию взвешивания mandist, следует установить свойствоnet.inputWeight{i, j}.weightFcnравным'mandist'.
Алгоритм:
Сумммарное координатное смещение dмежду векторамиxиyвычисляется в системеMATLABследующим образом:
d = sum(abs(x–y)).
Сопутствующие функции: sim, dist, linkdist.
BOXDIST |
Максимальное координатное смещение |
Синтаксис:
d = boxdist(pos)
Описание:
Функция d = boxdist(pos) вычисляет расстояния максимального координатного смещения между нейронами слоя, если задан массив координат нейронов pos размера NS, гдеN– размерность пространства расположения нейронов. Выходом является массив расстояний размераSS.
Функция boxdistобычно используется в сетях с функцией топологииgridtop.
Пример:
Пусть задан массив случайных координат трехмерного пространства, в которых размещены 10 нейронов. Требуется вычислить массив максимальных координатных смещений между этими нейронами.
pos = rand(3,10);
d = boxdist(pos)
d =
0 0.1614 0.6100 0.5123 0.4512 0.3767
0.1614 0 0.5282 0.3509 0.2898 0.2714
0.6100 0.5282 0 0.4374 0.4965 0.3608
0.5123 0.3509 0.4374 0 0.3044 0.1805
0.4512 0.2898 0.4965 0.3044 0 0.1358
0.3767 0.2714 0.3608 0.1805 0.1358 0
0.2785 0.1967 0.4536 0.4855 0.4244 0.3499
0.4603 0.3119 0.6149 0.5709 0.5097 0.4353
0.5502 0.4720 0.6900 0.3611 0.6655 0.5298
0.2442 0.3926 0.5860 0.4280 0.5862 0.4504
0.2785 0.4603 0.5502 0.2442
0.1967 0.3119 0.4720 0.3926
0.4536 0.6149 0.6900 0.5860
0.4855 0.5709 0.3611 0.4280
0.4244 0.5097 0.6655 0.5862
0.3499 0.4353 0.5298 0.4504
0 0.2623 0.5234 0.4422
0.2623 0 0.7839 0.7045
0.5234 0.7839 0 0.4659
0.4422 0.7045 0.4659 0
Применение функции:
Функция максимального координатного смещения используется в сетях с топологией, например в картах Кохонена newsom. Чтобы применить эту функцию для других сетей с топологией, необходимо установить значение свойстваnet.layerWeight{i,j}.distanceFcnравным 'boxdist'.
Алгоритм:
Максимальное координатное смещение dмежду векторамиxиyвычисляется в системеMATLABследующим образом:
d = max(abs(x–y)).
Сопутствующие функции: SIM, DIST, MANDIST, LINKDIST.
linkdist |
Расстояния связи между нейронами слоя |
Синтаксис:
d = linkdist(pos)
Описание:
Функция d = linkdist(pos) вычисляет расстояния связи между нейронами слоя, если задан массив координат нейронов pos размера NS, гдеN– размерность пространства расположения нейронов. Выходом является массив расстояний размераSS.
Пример:
Пусть задан массив случайных координат трехмерного пространства, в которых размещены 10 нейронов. Требуется вычислить массив расстояний связи между этими нейронами (рис. 11.41):
pos = rand(3,10);
Рис. 11.41
d = linkdist(pos)
d =
0 1 1 1 1 1 1 1 1 1
1 0 1 1 1 1 1 1 1 1
1 1 0 1 1 1 1 1 1 1
1 1 1 0 2 1 2 1 1 1
1 1 1 2 0 1 1 1 2 2
1 1 1 1 1 0 1 1 1 1
1 1 1 2 1 1 0 1 1 1
1 1 1 1 1 1 1 0 1 1
1 1 1 1 2 1 1 1 0 1
1 1 1 1 2 1 1 1 1 0
Применение функции:
Функция расстояния связи linkdistиспользуется для оценки топологии при формировании слоя Кохоненаnewcи карты Кохоненаnewsom.
Чтобы применить функцию расстояния связи linkdist, следует установить значение свойстваnet.layers{i}.distanceFcnравным'linkdist'.
Алгоритм:
Расстояние связи dij между двумя позициями векторовposi иposjиз множестваSвекторов определяется соотношением
Сопутствующие функции: sim, dist, mandist.