Программные системы для выполнения аппроксимации

Программные системы для выполнения задач аппроксимации могут быть реализованы несколькими различными способами:

1. Составление самостоятельного приложения, для работы которого требуется только компьютер с установленным программным обеспечением.

2. Исполнение программы в виде надстройки к одной из популярных программ персональной системе управления базами данных.

3. Выполнение программы в виде сценария.

4. Написание модулей на встроенных языках систем для выполнения математических расчетов (Mathematica, MathLab и т. д.).

5. Составление моделей в системах анализа данных (PolyAnalist, NeuroShell2 и т. д.).

Программные средства рассматриваются в разрезе выполнения задач аппроксимации и прогнозирования, даже если они являются более функциональными.

Большая часть наиболее популярных программных пакетов, например GAUSS (AptechSystems), Maple (Maplesoft), MathCad (MathSoft), Mathematica (WolframResearch), Mathlab (MathWorks), Statistica (StatSoft), предоставляют возможности для выполнения стандартного регрессионного анализа и позволяют использовать собственные модули (или модули сторонних разработчиков) для выполнения более сложных задач аппроксимации и прогнозирования, основанных на методах НС, РА и МГУА.

Для программного пакета Mathlab для реализации задач аппроксимации и прогнозирования предназначены следующие модули:

– NeuralNetworkToolbox (построение нейросетевых моделей);

– StatisticsToolbox (построение регрессионных моделей).

В других упомянутых программных системах также реализованы модули аналогичной функциональности [11].

Нейросетевая зависимость

В течение последних лет наблюдается взрыв интереса к нейронным сетям, которые успешно применяются в самых различных областях – бизнесе, медицине, технике, геологии, физике. НС вошли в практику везде, где нужно решать задачи прогнозирования, классификации или автоматизации. Такой успех определяется несколькими причинами:

1. Богатыми возможностями, НС – мощный метод моделирования, позволяющий воспроизводить чрезвычайно сложные зависимости. Нейросети нелинейны по своей природе.

2. Простотой в использовании, ведь НС учатся на примерах. Пользователь НС подбирает представительные данные, а затем запускает алгоритм обучения, который автоматически воспринимает структуру данных. От пользователя, конечно, требуется какой-то набор эвристических знаний о том, как следует отбирать и подготавливать данные, выбирать нужную архитектуру сети и интерпретировать результаты, однако уровень знаний, необходимый для успешного применения НС, гораздо скромнее, чем, например, при использовании традиционных методов статистики.

Основные понятия

НС – это система, состоящая из многих простых вычислительных элементов, работающих параллельно, функция которых определяется структурой сети, силой взаимосвязанных связей, а вычисления производятся в самих элементах или узлах. НС – это набор нейронов, определенным образом связанных между собой. Работу искусственного нейрона можно описать следующим образом (рисунок 1.5).

Программные системы для выполнения аппроксимации - student2.ru

Рисунок 1.5 – Нейрон

Нейрон получает входные сигналы (исходные данные либо выходные сигналы других нейронов нейросети) через несколько входных каналов. Каждый входной сигнал проходит через соединение, имеющее определенную интенсивность (или вес), которая определяет влияние входных значений на уровень активности элемента. Веса могут быть положительными (возбуждающими) или отрицательными (тормозящими).

С каждым нейроном связано определенное пороговое значение. Вычисляется взвешенная сумма входов, из нее вычитается пороговое значение, и в результате получается величина активации нейрона. Сигнал активации преобразуется с помощью функции активации (или передаточной функции). В результате получается выходной сигнал нейрона:

s = (x,w) = w0 + Программные системы для выполнения аппроксимации - student2.ru , (1)

Одной из наиболее распространённых функций является нелинейная функция с насыщением, так называемая сигмоидальная (логистическая) функция:

Программные системы для выполнения аппроксимации - student2.ru (2)

Эту функцию часто называют «сигмоидой». Параметр Программные системы для выполнения аппроксимации - student2.ru определяет наклон функции.

При Программные системы для выполнения аппроксимации - student2.ru , равном нулю, функция вырождается в пороговую функцию, которая принимает значение 1, если уровень активности положителен, и 0 в противном случае.

Программные системы для выполнения аппроксимации - student2.ru . (3)

Программные системы для выполнения аппроксимации - student2.ru

Рисунок 1.6 - Функция активации «сигмоида»

Как правило, передаточные функции всех нейронов в сети фиксированы, а веса являются параметрами сети и могут изменяться. Если сеть предполагается для чего-то использовать, то у нее должны быть входы (принимающие значения интересующих нас переменных из внешнего мира) и выходы (прогнозы или управляющие сигналы). Кроме этого в сети может быть еще много промежуточных (скрытых) нейронов, выполняющих внутренние функции. Входные, скрытые и выходные нейроны должны быть связаны между собой.

Наиболее распространенными являются многослойные сети, в которых нейроны объединены в слои. Слой – это совокупность нейронов, на которые в каждый такт времени параллельно поступает информация от других нейронов сети. После того, как определено число слоев и число элементов в каждом из них, нужно найти значения для весов и порогов сети, которые минимизировали бы ошибку прогноза, выдаваемого сетью. Именно для этого служат алгоритмы обучения. С использованием собранных исторических данных веса и пороговые значения автоматически корректируются с целью минимизации этой ошибки.

По сути, этот процесс представляет собой подгонку модели, которая реализуется сетью, к имеющимся обучающим данным. Ошибка для конкретной конфигурации сети определяется путем прогона через сеть всех имеющихся наблюдений и сравнения реально выдаваемых выходных значений с желаемыми (целевыми) значениями. Все такие разности суммируются в функцию ошибок, значение которой и есть ошибка сети. В качестве функции ошибок чаще всего берется сумма квадратов ошибок:

Программные системы для выполнения аппроксимации - student2.ru (4)

где d – желаемый выход сети,

у – реальный выход сети.

В качестве примера простейшей НС приведём трёхнейронный персептрон, нейроны которого имеют активационную функцию в виде единичной пороговой. На n входов поступают некие сигналы, проходящие по синапсам на 3 нейрона, образующие единственный слой этой НС и выдающие три выходных сигнала:

Программные системы для выполнения аппроксимации - student2.ru . (5)

Программные системы для выполнения аппроксимации - student2.ru

Рисунок 1.7 - Однослойный персептрон

Таким образом, процесс, происходящий в НС, может быть записан в матричной форме:

Y = F(XW), (6)

где X и Y - соответственно, входной и выходной сигнальные векторы,

F(V) - активационная функция, применяемая поэлементно к компонентам вектора V.

Программные системы для выполнения аппроксимации - student2.ru

Рисунок 1.8 – Многослойный персептрон

Многослойный персептрон содержит чередующиеся слои нейронов и связей. Основная часть вычислений проводится на слоях связей. Поэтому обычно количество слоев персептрона считают по слоям связей. Иногда учитывают только внутренние слои персептрона. Так изображенный на рисунке двухслойный персептрон может также называться трехслойным, если считать число слоев нейронов, или содержащим один скрытый слой.

Общая формула, связывающая выходы нейронной сети с ее входами выглядит следующим образом.

Программные системы для выполнения аппроксимации - student2.ru . (7)

Другой класс нейронных сетей, называемый нейронными сетями с радиально-базисными функциями (РБФ) (рисунок 1.9).

Сети РБФ имеют ряд преимуществ перед рассмотренными многослойными сетями. Они моделируют произвольную нелинейную функцию с помощью всего одного промежуточного слоя, тем самым избавляя разработчика от необходимости решать вопрос о числе слоев. Только нейроны скрытого слоя имеют нелинейную активационную функцию.

Программные системы для выполнения аппроксимации - student2.ru

Рисунок 1.9 – Нейронные сети с радиальными базисными функциями

Параметры линейной комбинации в выходном слое можно полностью оптимизировать с помощью хорошо известных методов линейной оптимизации, которые работают быстро и не испытывают трудностей с локальными минимумами, так мешающими при обучении с использованием алгоритма обратного распространения ошибки. Синаптические веса связей входного и скрытого слоев равны единице. Сеть РБФ обучается очень быстро – на порядок быстрее, чем с использованием алгоритма ОР.

Недостатки сетей РБФ: данные сети обладают плохими экстраполирующими свойствами и получаются весьма громоздкими при большой размерности вектора входов.

Общий вид радиально-базисной функции:

Программные системы для выполнения аппроксимации - student2.ru , (8)

где х - вектор входных сигналов,

σ – ширина окна функции,

φ(у) – убывающая функция [12].

Наши рекомендации