Модуль lsfit содержит четыре подпрограммы для линейной аппроксимации: LSFitLinear (простейшая задача - нет ограничений, W - единичная матрица), LSFitLinearW (взвешенная аппроксимация без ограничений), LSFitLinearC (аппроксимация с ограничениями, без весовых коэффициентов) и LSFitLinearWC (аппроксимация с индивидуальными весовыми коэффициентами и ограничениями).
2.7 Нелинейные решения проблем стандартного МНК
2.7.1 Аппроксимация линейным или нелинейным МНК
Метод наименьших квадратов (часто называемый МНК) обычно упоминается в двух контекстах. Во-первых, широко известно его применение в регрессионном анализе, как метода построения моделей на основе зашумленных экспериментальных данных. При этом помимо собственно построения модели обычно осуществляется оценка погрешности, с которой были вычислены её параметры, иногда решаются и некоторые другие задачи. Во-вторых, МНК часто применяется просто как метод аппроксимации, без какой-либо привязки к статистике. На этой странице МНК рассматривается как метод аппроксимации. Также следует отметить, что модуль lsfit, рассматриваемый на этой странице, решает задачи общего вида. Модули для работы с полиномами, сплайнами, рациональными функциями содержат подпрограммы схожей функциональности, позволяющие осуществлять аппроксимацию этими функциями.
2.7.2 Нелинейный МНК: с использованием гессиана или без него
Нелинейная задача МНК значительно сложнее линейной: аппроксимант уже не представляется в виде линейной комбинации базисных функций. Для аппроксимации используется функция общего вида, зависящая от M аргументов и K параметров:
Нам известны значения аргументов x в N точках, требуется найти значения параметров c, при которых отличие f от заданных значений y будет минимально. Задача при этом имеет следующую формулировку:
Для решения используется метод Левенберга-Марквардта, реализованный в модуле minlm. Алгоритм использует ту же схему обратной коммуникации для вычисления значения функции, что и модуль minlm - вам необходимо ознакомиться с ней перед использованием алгоритма. Как и в модуле minlm, пользователь может выбирать несколько схем оптимизации: FG (использование функции f и её градиента) и FGH (использование функции, градиента и гессиана). Пользователь может задать индивидуальные весовые коэффициенты (на что указывает суффикс W) или решать задачу без них. Итого имеем четыре версии подпрограмм для оптимизации: LSFitNonlinearWFG, LSFitNonlinearFG, LSFitNonlinearWFGH, LSFitNonlinearFGH.
В случае оптимизации с использованием схемы FG (градиент известен, гессиан неизвестен) возможны две ситуации: "дорогой" градиент, трудоемкость вычисления которого равна O((M+K) 2), и "дешевый" градиент, трудоемкость вычисления которого существенно ниже, чем O((M+K) 2). Первый вариант - это градиент, вычисленный при помощи разностной схемы, либо аналитический градиент сложной функции. Второй вариант - аналитический градиент функции с регулярной структурой, допускающей ускоренное вычисление градиента (пример: обучение нейронных сетей). Во втором случае можно использовать гибридный вариант алгоритма Левенберга-Марквардта, входящий в состав ALGLIB - этот вариант позволяет значительно ускорить решение задач с "дешевыми" градиентами. "Стоимость" градиента обозначается параметром CheapFG подпрограмм LSFitNonlinearWFG и LSFitNonlinearFG.
Замечание 1
Если для оптимизации используется гессиан, то всегда используется гибридный алгоритм - в таких задачах его применение всегда оправдано.
Замечание 2
Предпочтительным вариантом является использование аналитического градиента. Из-за возможных проблем с низкой точностью не рекомендуется использовать для вычисления градиента разностную схему. Если вы все же используете её, ни в коем случае не используйте двухточечную схему - используйте как минимум четырехточечную схему.
2.7.3 Нелинейный МНК какобратная коммуникация
Алгоритм аппроксимации в ходе своей работы должен получать значения функции/градиента/... в выбранных им точках. В большинстве программных пакетов эта проблема решается путем передачи указателя на функцию (C++, Delphi) или делегата (C#), который осуществляет эту операцию.
Пакет ALGLIB, в отличие от других библиотек, использует для решения этой задачи обратную коммуникацию. Когда требуется вычислить значение функции (или её производных), состояние алгоритма сохраняется в специальной структуре, после чего управление возвращается в вызвавшую программу, которая осуществляет все вычисления и снова вызывает вычислительную подпрограмму.
Таким образом, работа с алгоритмом аппроксимации осуществляется в следующей последовательности:
1. Подготовка структуры данных LSFitState при помощи одной из подпрограмм инициализации алгоритма (LSFitNonlinearWFG, LSFitNonlinearFG, LSFitNonlinearWFGH, LSFitNonlinearFGH).
2. Вызов подпрограммы LSFitNonlinearIteration.
3. Если подпрограмма вернула False, работа алгоритма завершена и минимум найден (сам минимум может быть получен при помощи подпрограммы LSFitNonlinearResults).
4. Если подпрограмма вернула True, подпрограмма требует информацию о функции. В зависимости от того, какие поля структуры LSFitState установлены в True (ниже этот вопрос рассмотрен более подробно), вычислите функцию/градиент/гессиан.
5. После того, как вся требуемая информация загружена в структуру LSFitState, требуется повторно вызвать подпрограмму LSFitNonlinearIteration.
Для обмена информацией с пользователем используются следующие поля структуры LSFitState:
· LSFitState.X[0..M-1] – массив, хранящий координаты точки, информация о которой запрашивается алгоритмом
· LSFitState.C[0..K-1] – массив, хранящий значение параметров функции
· LSFitState.F – в это поле следует поместить значение функции F (если оно было запрошено)
· LSFitState.G[0..K-1] – в это поле следует поместить градиент df(x,c)/dci (если он был запрошен)
· LSFitState.H[0..K-1,0..K-1] – в это поле следует поместить гессиан d 2f(x,c)/dcij ^2 (если он был запрошен)
В зависимости от того, что именно требуется вычислить, подпрограмма LSFitNonlinearIteration может устанавливать в True одно и только одно из следующих полей:
· NeedF – сигнализирует о том, что требуется вычислить значение функции F
· NeedFG – сигнализирует о том, что требуется вычислить значения функции F и градиента F
· NeedFGH – сигнализирует о том, что требуется вычислить значение функции F, градиент F и гессиан F
2.8 Решение параметров регрессионного уравнения с использованием аппроксимации ковариационной матрицы по данным ГК при обучении НС
Актуальность работы определяется проблемой регрессионных методов, когда оценка параметров затруднена дефицитом априорной информации о помехах или обратная автоковариационная матрица входных регрессоров является вырожденной. Целевое направление работы – создание алгоритма оценки параметров регрессионной модели измерений при аппроксимации дисперсионных характеристика методом главных компонентов. Основная решаемая задача заключается в нахождении соотношения характеристик главных компонентов и регрессионных уравнений. Эффективность достигается за счет решения главных компонентов средствами нейронных сетей на основе фильтра Хебба.
пространственный стохастический адаптивный алгоритм регрессионный
Рисунок 2.3 - Алгебраические компоненты модели ГК и регрессионного анализа
Конкретно в текущей работе было выполнены следующие этапы построения представляемого метода (рис. 2.3):
– рассмотрение алгебраической модели данных метода главных компонентов для выявления структурных соотношений с регрессионным анализом;
– анализ структуры и метода обучения нейронных сетей для решения аппроксимации ковариации входного сигнала методом главных компонент;
– поиск оптимального параметра отклика регрессионными методами и по данным анализа главных компонентов;
– решение поверхности отклика по данным АГК, в условиях, когда обратная матрица автоковариации входных регрессоров вырождена.
Рисунок 2.4 - Отношения ГК и входного пространства
В основе метода главных компонентов находится задача наилучшей аппроксимации конечного множества точек линейными многообразиями типа прямых и плоскостей (рис. 2.4). Эти линейные многообразия определяются ортонормированным набором векторов, линейных по параметрам. По входным координатам, относительно каждого базиса многообразия, рассчитывается минимальная квадратичная сумма до их проекции. Таким образом, формируется главная компонента, связанная с максимальной дисперсией проекции входа относительно элемента базиса. Совокупность проекций отдельного направления и их главная компонента в свою очередь образуют собственные подпространства, ортогональные по отношению друг к другу.
Рисунок 2.5 - Эффект решения задачи ГК для проблем регрессионного анализа
Таким образом, формируется распределение максимальных дисперсий аппроксимируемых точек в пространстве компонент (рис. 2.5). Проекция искажений, или помех, ортогональна и не коррелированны с данными. То есть дисперсия помех минимальна, что соответствует задачам регрессионного анализа. Но расчет всех главных компонентов – аналитически сложная задача оптимизации. Эффект ее решения это нахождение: