- •В. Г. Потемкин
- •Предисловие
- •Введение
- •Используемые обозначения
- •Часть 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.7. Масштабирование и восстановление данных
В этом разделе описаны функции масштабирования, препроцессорной обработки и восстановления данных, применяемые для повышения эффективности формирования нейронных сетей.
PREMNMX |
Приведение данных к интервалу [–1 1] |
Синтаксис:
[pn,minp,maxp,tn,mint,maxt] = premnmx(p,t)
[pn,minp,maxp] = premnmx(p)
Описание:
Функция premnmx выполняет препроцессорную обработку обучающей последовательности путем приведения значений элементов векторов входа и цели к интервалу [–1 1].
Входные аргументы:
p – матрица векторов входа размера RQ;
t – матрица векторов целей размера SQ.
Выходные аргументы:
pn – матрица нормированных векторов входа размера RQ;
minp – вектор минимальных элементов входа размера R1;
maxp – вектор максимальных элементов входа размера R1;
tn – матрица нормированных векторов целей размера SQ;
mint – вектор минимальных элементов векторов целей размера S1;
maxt – вектор максимальных элементов векторов целей размера S1.
Пример:
Следующие команды нормализуют приведенный набор данных так, чтобы значения входа и цели попадали в интервал [–1,1]:
p = [–10 –7.5 –5 –2.5 0 2.5 5 7.5 10];
t = [0 7.07 –10 –7.07 0 7.07 10 7.07 0];
[pn,minp,maxp,tn,mint,maxt] = premnmx(p,t)
pn = –1.0000 –0.7500 –0.5000 –0.2500 0 0.2500 0.5000 0.7500 1.0000
minp = –10
maxp = 10
tn = 0 0.7070 –1.0000 –0.7070 0 0.7070 1.0000 0.7070 0
mint = –10
maxt = 10
Если требуется нормировать только вектор входа, то можно использовать следующий оператор:
[pn,minp,maxp] = premnmx(p);
Алгоритм:
Приведение данных к диапазону [–1 1] выполняется по формуле
pn = 2 * (p – minp)/(maxp – minp) – 1.
Сопутствующие функции: PRESTD, PREPCA, POSTMNMX.
PRESTD |
Приведение данных к нормальному закону распределения |
Синтаксис:
[pn,meanp,stdp,tn,meant,stdt] = prestd(p,t)
[pn,meanp,stdp] = prestd(p)
Описание:
Функция prestd выполняет препроцессорную обработку обучающей последовательности путем приведения значений элементов векторов входа к нормальному закону распределения cнулевым средним и дисперсией, равной 1.
Входные аргументы:
p – матрица векторов входа размера RQ;
t – матрица векторов целей размера SQ.
Выходные аргументы:
pn – матрица приведенных векторов входа размера RQ;
meanp – вектор средних значений векторов входа размера R1;
stdp – вектор среднеквадратичных отклонений векторов входа размера R1;
tn – матрица приведенных векторов целей размера S Q;
meant – вектор средних значений векторов целей размера S1;
stdt – вектор среднеквадратичных отклонений векторов целей размера S1.
Пример:
Задана следующая обучающая последовательность векторов входа и целей. Требуется выполнить ее приведение к нормальному закону распределения с параметрами [0 1].
p = [–0.92 0.73 –0.47 0.74 0.29;
–0.08 0.86 –0.67 –0.52 0.93];
t = [–0.08 3.4 –0.82 0.69 3.1];
[pn,meanp,stdp,tn,meant,stdt] = prestd(p,t)
pn =
–1.3389 0.8836 –0.7328 0.8971 0.2910
–0.2439 1.0022 –1.0261 –0.8272 1.0950
meanp =
0.0740
0.1040
stdp =
0.7424
0.7543
tn = –0.7049 1.1285 –1.0947 –0.2992 0.9704
meant = 1.2580
stdt = 1.8982
Если задана только последовательность векторов входа, то следует применить оператор
[pn,meanp,stdp] = prestd(p);
Алгоритм:
Приведение данных к нормальному закону распределения с параметрами [0 1] выполняется по формуле
pn = (p – meanp)/stdp.
Сопутствующие функции: PREMNMX, PREPCA.
PREРСА |
Выделение главных компонентов |
Синтаксис:
[ptrans,transMat] = prepca(P,min_frac)
Описание:
Функция prepca выполняет препроцессорную обработку обучающей последовательности, применяя факторный анализ. Это позволяет преобразовать входные данные так, чтобы векторы входа оказались некоррелированными. Кроме того, может быть уменьшен и размер векторов путем удержания только тех компонентов, дисперсия которых превышает некоторое заранее установленное значение min_frac.
Входные аргументы:
P – матрица центрированных векторов входа размера RQ;
min_frac – нижняя граница значения дисперсии удерживаемых компонентов.
Выходные аргументы:
ptrans – преобразованный набор векторов входа;
transMat – матрица преобразований.
Примеры:
Зададим массив двухэлементных векторов входа и выполним их факторный анализ, удерживая только те компоненты вектора, дисперсия которых превышает 2 % общей дисперсии. Сначала с помощью функции prestd приведем входные данные к нормальному закону распределения, а затем применим функцию prepca.
P = [–1.5 –0.58 0.21 –0.96 –0.79;
–2.2 –0.87 0.31 –1.4 –1.2];
[pn,meanp,stdp] = prestd(P)
pn =
–1.2445 0.2309 1.4978 –0.3785 –0.1058
–1.2331 0.2208 1.5108 –0.3586 –0.1399
meanp =
–0.7240
–1.0720
stdp =
0.6236
0.9148
[ptrans,transMat] = prepca(pn,0.02)
ptrans = 1.7519 –0.3194 –2.1274 0.5212 0.1738
transMat = –0.7071 –0.7071
Поскольку в данном примере вторая строка массива Pпочти кратна первой, то в результате факторного анализа преобразованный массив содержит только одну строку.
Алгоритм:
Функция prepca для выделения главных компонентов использует процедуру SVD-разложения матрицы центрированных векторов входа по сингулярным числам. Векторы входа умножаются на матрицу, строки которой являются собственными векторами ковариационной матрицы векторов входа. В результате получаем векторы входа с некоррелированными компонентами, которые упорядочены по величине дисперсий. Те компоненты, дисперсия которых не превышает заданное значение, удаляются; в результате сохраняются только главные компоненты [22]. Предполагается, что входные данные центрированы с помощью функции prestd так, что их среднее значение равно 0, а дисперсия – 1.
Сопутствующие функции: PRESTD, PREMNMX.
POSTMNMX |
Восстановление данных после масштабирования функцией premnmx |
Синтаксис:
[p,t] = postmnmx(pn,minp,maxp,tn,mint,maxt)
p = postmnmx(pn,minp,maxp)
Описание:
Функция postmnmx выполняет постпроцессорную обработку, связанную с восстановлением данных, которые были масштабированы к диапазону [–1 1] с помощью функции premnmx.
Входные аргументы:
pn – матрица нормированных векторов входа размера RQ;
minp – вектор минимальных элементов исходного массива p размера R1;
maxp – вектор максимальных элементов исходного массива p размера R1;
tn – матрица нормированных векторов целей размера SQ;
mint – вектор минимальных элементов исходного массива t размера S1;
maxt – вектор максимальных элементов исходного массива t размера S1.
Выходные аргументы:
p – восстановленная матрица векторов входа размера RQ;
t – восстановленная матрица векторов целей размера SQ.
Пример:
В этом примере сначала с помощью функции premnmx выполняется масштабирование обучающей последовательности к диапазону [–1 1], затем создается и обучается нейронная сеть прямой передачи, выполняется ее моделирование и восстановление выхода с помощью функции postmnmx.
P = [–0.92 0.73 –0.47 0.74 0.29;
–0.08 0.86 –0.67 –0.52 0.93];
t = [–0.08 3.40 –0.82 0.69 3.10];
[pn,minp,maxp,tn,mint,maxt] = premnmx(P,t);
net = newff(minmax(pn),[5 1],{'tansig' 'purelin'},'trainlm');
net = train(net,pn,tn);
an = sim(net,pn)
an = –0.6493 1.0000 –1.0000 –0.2844 0.8578
a = postmnmx(an,mint,maxt)
a = –0.0800 3.4000 –0.8200 0.6900 3.1000
Восстановленный вектор выхода нейронной сети совпадает с исходным вектором целей.
Алгоритм:
Восстановление данных, масштабированных к диапазону [–1 1], выполняется по формуле
p = 0.5*(pn + 1)*(maxp – minp) + minp.
Сопутствующие функции: PREMNMX, PREPCA, POSTSTD.
POSTSTD |
Восстановление данных после применения функции prestd |
Синтаксис:
[p,t] = poststd(pn,meanp,stdp,tn,meant,stdt)
p = poststd(pn,meanp,stdp)
Описание:
Функция poststd выполняет постпроцессорную обработку, связанную с восстановлением данных, которые были масштабированы к нормальному закону распределения с параметрами [0 1] с помощью функции prestd.
Входные аргументы:
pn – матрица масштабированных векторов входа размера RQ;
meanp – вектор средних значений исходного массива входов размера R1;
stdp – вектор среднеквадратичных отклонений исходного массива входов размера R1;
tn – матрица масштабированных векторов целей размера SQ;
meant – вектор средних значений массива целей размера S1;
stdt – вектор среднеквадратичных отклонений массива целей размера S1.
Выходные аргументы:
p – восстановленная матрица векторов входа размера RQ;
t – восстановленная матрица векторов целей размера SQ.
Примеры:
В этом примере сначала с помощью функции prestd выполняется масштабирование обучающей последовательности к нормальному закону распределения с параметрами [0 1], затем создается и обучается нейронная сеть прямой передачи, выполняется ее моделирование и восстановление выхода с помощью функции poststd.
p = [–0.92 0.73 –0.47 0.74 0.29;
–0.08 0.86 –0.67 –0.52 0.93];
t = [–0.08 3.40 –0.82 0.69 3.10];
[pn,meanp,stdp,tn,meant,stdt] = prestd(p,t);
net = newff(minmax(pn),[5 1],{'tansig' 'purelin'},'trainlm');
net = train(net,pn,tn);
an = sim(net,pn)
an = –0.7049 1.1285 –1.0947 –0.2992 0.9704
a = poststd(an,meant,stdt)
a = –0.0800 3.4000 –0.8200 0.6900 3.1000
Восстановленный вектор выхода нейронной сети совпадает с исходным вектором целей.
Алгоритм:
Восстановление данных, масштабированных к нормальному закону распределения с параметрами [0 1], выполняется по формуле
p = stdp * pn + meanp.
Сопутствующие функции: PREMNMX, PREPCA, POSTMNMX, PRESTD.
POSTREG |
Постпроцессорная обработка выхода сети с расчетом линейной регрессии |
Синтаксис:
[m,b,r] = postreg(A,T)
Описание:
Функция [m, b, r] = postreg(A, T) выполняет постпроцессорную обработку выхода нейронной сети и рассчитывает линейную регрессию между векторами выхода и цели.
Входные аргументы:
A – 1Q массив выходов сети, каждый элемент которого выход сети;
T – 1Q массив целей, каждый элемент которого целевой вектор.
Выходные аргументы:
m – наклон линии регрессии;
b – точка пересечения линии регрессии с осью Y;
r – коэффициент регрессии.
Примеры:
В данном примере с помощью функции prestd нормализуется множество обучающих данных, на нормализованных данных вычисляются главные компоненты, создается и обучается сеть, затем сеть моделируется. Выход сети с помощью функции poststd денормализуется и вычисляется линейная регрессия между выходом (ненормализованным) сети и целями, чтобы проверить качество обучения сети.
P = [–0.92 0.73 –0.47 0.74 0.29;
–0.08 0.86 –0.67 –0.52 0.93];
T = [–0.08 3.40 –0.82 0.69 3.10];
[pn,meanp,stdp,tn,meant,stdt] = prestd(P,T);
[ptrans,transMat] = prepca(pn,0.02);
net = newff(minmax(ptrans),[5 1],{'tansig' 'purelin'},'trainlm');
net = train(net,ptrans,tn);
an = sim(net,ptrans)
an = –0.7049 1.1285 –1.0947 –0.2992 0.9704
a = poststd(an,meant,stdt)
a = –0.0800 3.4000 –0.8200 0.6900 3.1000
[m,b,r] = postreg(a,t) % Рис.11.61
m = 1.0000
b = 5.6881e–014
r = 1.0000
В данном примере параметры линейной регрессии свидетельствуют о хорошей согласованности векторов выхода нейронной сети и цели, и это означает, что синтезированная нейронная сеть успешно реализует свою функцию.
Рис. 11.61
Сопутствующие функции: PREMNMX, PREPCA.
TRAMNMX |
Масштабирование текущих входов к диапазону [–1 1] |
Синтаксис:
pn = tramnmx(p,minp,maxp)
Описание:
Функция pn = tramnmx(p, minp, maxp) приводит текущие входные данные к диапазону [–1 1], если известны их минимальное и максимальное значения. Эта функция применяется, когда нейронная сеть обучена с помощью данных, нормированных функцией premnmx.
Входные аргументы:
p – матрица векторов входа размера RQ;
minp – вектор минимальных элементов входа размера R1;
maxp – вектор максимальных элементов входа размера R1.
Выходные аргументы:
pn – матрица нормированных векторов входа размера RQ.
Пример:
Следующие операторы масштабируют обучающую последовательность к диапазону [–1 1], формируют и обучают нейронную сеть прямой передачи.
p = [–10 –7.5 –5 –2.5 0 2.5 5 7.5 10];
t = [0 7.07 –10 –7.07 0 7.07 10 7.07 0];
[pn,minp,maxp,tn,mint,maxt] = premnmx(p,t);
net = newff(minmax(pn),[5 1],{‘tansig’ ‘purelin’},’trainlm’);
net = train(net,pn,tn);
Если в дальнейшем к обученной сети будут приложены новые входы, то они должны быть масштабированы с помощью функции tramnmx. Выход сети должен быть восстановлен с помощью функции postmnmx.
p2 = [4 –7];
pn = tramnmx(p2,minp,maxp);
an = sim(net,pn)
an = 0.9552 0.8589
a = postmnmx(an,mint,maxt)
a = 9.5518 8.5893
Алгоритм:
Масштабирование текущих данных к диапазону [–1 1] выполняется по формуле
pn = 2 * (p – minp)/(maxp – minp) – 1.
Сопутствующие функции: PREMNMX, PRESTD, PREPCA, TRASTD, TRAPCA.
TRASTD |
Масштабирование текущих входов к нормальному закону распределения |
Синтаксис:
pn = trastd(p,meanp,stdp)
Описание:
Функция pn = trastd(p, meanp, stdp) приводит текущие входные данные к нормальному закону распределения с параметрами [0 1], если они принадлежат к множеству с известными средним значением и среднеквадратичным отклонением. Эта функция применяется, когда нейронная сеть была обучена с помощью данных, нормированных функцией prestd.
Входные аргументы:
p – матрица векторов входа размера RQ;
meanp – вектор средних значений элементов входа размера R1;
stdp – вектор среднеквадратичных отклонений элементов входа размера R1.
Выходные аргументы:
pn – матрица нормированных векторов входа размера RQ.
Пример:
Следующие операторы масштабируют обучающую последовательность к нормальному закону распределения с параметрами [0 1], формируют и обучают нейронную сеть прямой передачи.
p = [–0.92 0.73 –0.47 0.74 0.29;
–0.08 0.86 –0.67 –0.52 0.93];
t = [–0.08 3.4 –0.82 0.69 3.1];
[pn,meanp,stdp,tn,meant,stdt] = prestd(p,t);
net = newff(minmax(pn),[5 1],{'tansig' 'purelin'},'trainlm');
net = train(net,pn,tn);
Если в дальнейшем к обученной сети будут приложены новые входы, то они должны быть масштабированы с помощью функции trastd. Выход сети должен быть восстановлен с помощью функции poststd.
p2 = [1.5 –0.8;
0.05 –0.3];
pn = trastd(p2,meanp,stdp);
an = sim(net,pn)
an = 0.8262 –1.0585
a = poststd(an,meant,stdt)
a = 2.8262 –0.7512
Алгоритм:
Масштабирование текущих данных к нормальному закону распределения с параметрами [0 1] выполняется по формуле
pn = (p – meanp)/stdp.
Сопутствующие функции: PREMNMX, PREPCA, PRESTD, TRAPCA, TRAMNMX.
TRAPCA |
Масштабирование текущих входов с учетом факторного анализа |
Синтаксис:
Ptrans = trapca(P,TransMat)
Описание:
Функция Ptrans = trapca(P, TransMat) преобразует текущие входные данные с учетом факторного анализа, примененного к обучающей последовательности. Эта функция применяется, когда нейронная сеть была обучена с помощью данных, предварительно обработанных функциями prestd и prepca.
Входные аргументы:
P – матрица текущих векторов входа размера RQ;
TransMat – матрица преобразования, связанная с факторным анализом.
Выходные аргументы:
Ptrans – преобразованный массив векторов входа.
Пример:
Следующие операторы выполняют главный факторный анализ обучающей последовательности, удерживая только те компоненты, которые имеют дисперсию, превышающую значение 0.02.
P = [–1.5 –0.58 0.21 –0.96 –0.79;
–2.2 –0.87 0.31 –1.40 –1.20];
t = [–0.08 3.4 –0.82 0.69 3.1];
[pn,meanp,stdp,tn,meant,stdt] = prestd(P,t);
[ptrans,transMat] = prepca(pn,0.02)
ptrans = 1.7519 –0.3194 –2.1274 0.5212 0.1738
transMat = –0.7071 –0.7071
net = newff(minmax(ptrans),[5 1],{'tansig' 'purelin'},'trainlm');
net = train(net,ptrans,tn);
Если в дальнейшем к сети будут приложены новые входы, то они должны быть масштабированы с помощью функций trastd и trapca. Выход сети должен быть восстановлен с помощью функции poststd:
p2 = [1.50 –0.8;
0.05 –0.3];
p2n = trastd(p2,meanp,stdp);
p2trans = trapca(p2n,transMat)
p2trans = –3.3893 –0.5106
an = sim(net,p2trans)
an = 0.7192 1.1292
a = poststd(an,meant,stdt)
a = 2.6231 3.4013
Алгоритм:
Масштабирование текущих данных с учетом факторного анализа выполняется по формуле
Ptrans = TransMat * P.
Сопутствующие функции: PRESTD, PREMNMX, PREPCA, TRASTD, TRAMNMX.