Тархов Д.А1., Симакина А.А.2, Суднева А.И.3
Государственное образовательное учреждение высшего профессионального образования «Санкт-Петербургский Политехнический университет Петра Великого», г. Санкт-Петербург,
dtarkhov@gmail . com
Государственное образовательное учреждение высшего профессионального образования «Санкт-Петербургский Политехнический университет Петра Великого», г. Санкт-Петербург, студент,
Aleksandra.simakina @ gmail .com
Государственное образовательное учреждение высшего профессионального образования «Санкт-Петербургский Политехнический университет Петра Великого», г. Санкт-Петербург, студент,
Sudneva- anastasiya@gmail . com
ОБРАБОТКА ДАННЫХ МЕТОДОМ ТРЕУГОЛЬНЫХ ПРИБЛИЖЕНИЙ
КЛЮЧЕВЫЕ СЛОВА
Нейронные сети, новый метод аппроксимации. АННОТАЦИЯ
Предлагается новый метод построения нейронной сети с радиальными базисными функциями или персептрона с одним скрытым слоем по зашумлённым данным. Полученную нейронную сеть можно использовать для последующего дообучения (уточнения параметров). Метод основан на приближении выборки суммой функций, графиками которых являются равнобедренные треугольники. Для приближения каждой такой функции гауссианом или парой сигмоид используется заранее полученное оптимальное приближение стандартной треугольной функции. Рассматриваются четыре варианта организации алгоритма, проведено их сравнительное тестирование в ряде численных экспериментов. Данный подход может быть применён к построению гибридных алгоритмов поиска решений дифференциальных уравнений, сочетающего классические и нейросетевые методы.
Введение
Нейронные сети достаточно часто применяются для поиска скрытых зависимостей в данных [1-3]. Этими данными могут быть финансовые показатели, результаты экспериментов, медицинские наблюдения и иные временные ряды, связанные с наблюдением за некоторой сложной системой. Главная проблема, которую приходится решать при их обучении состоит в большой длительности этого процесса, если используются сети с десятками, а не единицами нейронов, что является необходимостью при достаточно точной аппроксимации сложных зависимостей. Причина этого состоит в необходимости поиска глобального экстремума функционала ошибки, поверхности уровня которого обычно бывает сильно изрезанными, что затрудняет процесс оптимизации. Метод, предлагаемый в данной работе, позволяет построить достаточно точное приближение к искомой нейронной сети, что сильно сокращает и упрощает процесс обучения.
Идея метода заключается в приближении данных кусочно-линейной функцией, которая представляется линейной комбинацией базисных функций, графики которых имеют вид равнобедренного треугольника. Дальше, используя заранее вычисленное приближение стандартной функции линейной комбинацией базисных функций нейросетевого типа, получаем искомую предобученную нейронную сеть.
Данный метод разумно применять в гибридных алгоритмах построения параметризованных нейросетевых решений [2-5] дифференциальных уравнений и систем. При этом сперва с помощью метода сеток или конечных элементов строятся поточечные или кусочно-линейные решения для набора фиксированных значений параметров, далее с помощью рассмотренных в данной работе методов строятся нейросетевые приближения, которые затем уточняются обычным образом.
Был проведён ряд численных экспериментов с четырьмя алгоритмами, реализующими указанный подход. Приведём их результаты в случае, когда искомая нейронная сеть имеет один
вход и один выход. Обобщение на многомерный случай получается естественным образом. Пусть при наблюдении наблюдений за некоторым процессом был получен набор точек { Х1, у1} .
Алгоритм 1. Треугольник с вершиной в экстремуме
Шаг 1. Среди полученных точек выбираем точку с максимальной по модулю ординатой, которую М, а её абсциссу . Зеркально отражаем все точки, абсциссы которых больше относительно М.
Шаг 2. Используя метод наименьших квадратов, строим линейную зависимость, график которой проходит через точку М ( у=ах+Ь ).
Шаг 3. Отражаем получившуюся прямую так, чтобы образовался равнобедренный треугольник, основание которого лежит на ОХ. Описываем треугольник, как кусочно-заданную функцию.
Рис.1 Приближение поточечной зависимости треугольной функцией
Шаг 4. Рассматриваем разность ординат у; точек, не лежащих на треугольнике, и получившихся треугольных функций (стоит учесть, что функция за пределами треугольника равна 0).
Шаг 5. В результате получаем новый набор точек, с которым проделываем вышеперечисленные итерации N раз. Следует заметить, что чем больше N1, тем меньше получим ошибку на выходе, однако при больших N мы приближаем не только искомую функцию, но и шум.
Шаг 6. В итоге получается N треугольников, каждый из которых аппроксимируем гауссианами или сигмоидами. Приближение гауссианами даёт RBF-сеть (нейронную сеть с радиальными базисными функциями), а сигмоидами - персептрон с одним скрытым слоем.
Метод треугольных приближений был протестирован на различных наборах точек. Рассмотрим подробнее случай синуса с добавкой белого шума, имеющее равномерное распределение с амплитудой 0.3.
1.0
□ л * Л! * \
*Л X *х у х * ч /У* \ 0.6 • Л \ \ / \ ш ^^Ч \
У/ \Д» О! // V
Щ * / у** \\
* \Ч / •
05 1Я £ 0 25 ЗЛ 02 1Л 1; 2.0 25 ЗЛ Ч
Рис.2 График синуса, зашумлённая выборка, приближение её треугольной функцией и RBF-сетью
Из приведённых графиков видно, что после оптимального числа шагов получается приближение, точность которого превышает точность исходных данных. Дальнейшая работа алгоритма только ухудшает конечный результат.
Было интересно проверить поведение рассматриваемого алгоритма для более сложных
Рис.4 График Sin(x)+Sin(4x)/4, выборка, приближение RBF-сетью с помощью алгоритма 1 (для 30 точек и 30
базисных функций)
Данный график показывает, что усложнение приближаемой функции не слишком сказывается на работоспособности алгоритма.
Рис.5 sin(x)+sin(4x)/4,зашумленная выборка, приближение RBF-сетью с помощью алгоритма 1 (для 30 точек и
30 базисных функций)
Видно, что добавление шума вносит искажение, которое, однако, меньше амплитуды шума. Вид графика позволяет сделать вывод, что получившаяся RBF сеть приближает не только целевую функцию, но и шум. Это может свидетельствовать о неоптимальном числе слагаемых. Данный вопрос будет далее исследован подробнее.
Следующие алгоритмы являются вариациями первого.
Алгоритм 2. В первом алгоритме изменим второй шаг. Как и прежде будем строить линейную зависимость, но теперь, строя её, мы не требуем, чтобы точка, соответствующая максимальной координате по оси ординат являлась вершиной треугольника.
Приведём графики для данногоалгоритма:
Рис.6 sin(x]+sin(4x]/4IвыборкаI приближение RBF-сетью с помощью алгоритма 2 (для 30 точек и 30 базисных
функций)
На первый взгляд, данный график свидетельствует о неработоспособности рассматриваемого алгоритма, но этот вывод представляется преждевременным. Во-первых, построенную нейронную сеть можно дообучить и заранее не ясно, какой алгоритм окажется лучше с учётом доучивания. Во-вторых, алгоритм, оказавшийся хуже для одних данных, может оказаться лучше для других. Результаты дальнейшего тестирования приведены ниже.
Рис.7sm(x]+sm(4x]/4,зашумленная выборка, приближение RBF-сетью с помощью алгоритма2 (для 30 точек и
30 базисных функций]
В данном случае оказалось, что ошибка меньше амплитуды шума, но функция оказалась чрезмерно сглаженной. Насколько этот результат хуже или лучше представленного на рис. 5 заранее неясно, это зависит от целей исследования.
Алгоритм 3. Возьмем первые четыре шага первого алгоритма. После четвертого шага запомним сумму квадратов разности ординат точек, не лежащих на треугольнике, и получившихся прямых, также запомним точку с максимальной ошибкой М. Проделаем ещё раз шаги 1-4, но теперь рассматриваем не все точки (отбросим одну самую отдалённую точку от М). Эту процедуру мы проделываем для того, чтобы посмотреть, когда будет минимальная сумма квадратов ошибок по выборке. Затем посмотрим, чему будет равна ошибка, если мы отбросим еще одну точку. Будем повторять эту процедуру до тех пор, пока не дойдем до того, что останется две точки: М и еще
одна. Исходя из нашего метода, мы можем построить треугольник минимум по двум точкам: одна из точек будет вершиной треугольника, а по второй построим одну из сторон. Если в результате эксперимента количество точек достаточно велико или мы хотим упростить вычисления, то можно "откидывать" не одну, а несколько точек, однако в этом случае можно не получить минимальную ошибку. После того, как мы получим все ошибки, ищем наименьшую, и строим соответствующий треугольник. Дальнейшие действия будут как в исходном методе.
Графики для данного метода:
Очевидно, что результат работы этого алгоритма при работе с точными данными лучше, чем у предыдущих двух, однако, его трудоёмкость тоже существенно выше.
При работе с зашумлёнными данными преимущества рассматриваемого алгоритма становятся неочевидными.
Алгоритм 4. В этом методе мы объединим второй и третий. Стороны будем искать с помощью линейной регрессии, не требуя, чтобы точка, соответствующая максимальной ординате, являлась вершиной треугольника. А из метода 3 мы возьмем поиск наименьшей суммы квадратов ошибки, то есть будем откидывать точки и искать такой треугольник, для которого ошибка по выборке будет минимальна.
Данные графики позволяют сделать те же выводы, что и графики 6 и 7. Результаты численных экспериментов
Рассмотрим таблицу среднеквадратических ошибок, вычисленных по истинному значению приближаемой функции для каждого метода на конкретных примерах. Числа во втором столбце (5,15,30]- количество треугольников, по которым построена RBF-функция, 6 - амплитуда ошибки, Ь-количество точек.
Таблица 1.
Sin(x), L=30 Sin(4x), L=30 Sin(x)+Sin(4x)/4, L=30 Sin(x)+Sin(4x)/4, L=200
5 0.2 0.5 0 0 0.3 0.5 0.3
1 метод 5 0.02 0.026 0.16 0.03 0.04 0.04 0.05
15 0.006 0.03 0.1 0.003 0.01 0.08 0.03
30 0.006 0.02 0.05 0.006 0.02 0.06 0.009
2 метод 5 0.006 0.026 0.41 0.03 0.048 0.053 0.02
15 0.006 0.026 0.33 0.03 0.046 0.053 0.017
30 0.006 0.026 0.2 0.03 0.046 0.053 0.017
3 метод 5 0.005 0.01 0.06 0.01 0.02 0.1 0.05
15 0.006 0.05 0.05 0.004 0.16 0.026 0.02
30 0.007 0.056 0.03 0.003 0.02 0.023 0.04
4 метод 5 0.007 0.053 0.084 0.025 0.063 0.03 0.029
15 0.007 0.053 0.06 0.025 0.02 0.03 0.027
30 0.007 0.053 0.06 0.025 0.02 0.03 0.027
т
Формула для вычисления ошибок по выборке: у. — рт(х)) , где х. и у. -
г = 1
координаты ;-й точки выборки.
L
Формула для вычисления ошибок по истинному значению: ^ (f (] — рт())2 , где
г = 1
f (х ] -истинная функция, рт - функция, равная сумме треугольных функций на т-ом шаге.
Формула для вычисления среднеквадратической ошибок по истинному значению получается из предыдущей формулы делением на количество используемых точек I.
По таблице видно, что результаты во многих методах неоднозначны, однако наименьшая среднеквадратическая ошибка по истинному значению функции, наблюдаемая в результате метода 3, всегда остается одной из минимальных. Так же можно заметить, что при увеличении числа экспериментальных точек, при относительно небольшом разбросе, ошибка при разных
количествах треугольников в разных методах может, как и уменьшается, так и увеличиваться. К примеру, в методе 1 минимальная ошибка будет такой же, но достигаться будет при 30, а не 15 треугольниках.
Рассмотрим графики полученных ошибок по выборке и графики ошибок по истинному значению (ось Х-номера треугольников, ось Y-соответствующие ошибки).
Вначале проанализируем случаи, для которых лучше работает не только 3ий метод. Рассмотрим sin(x) с разбросом 0.5 (из таблицы видно, что для него лучше подходят методы 1 и 3).
Алгоритм 3:
* • • • •
10 20 30 45
Рис.12 графики ошибки по выборке (синяя) и по истинному значению (желтая)
Алгоритм 1:
4 *
* * • * " " "
$ ю 19 а в з)
Рис.13 графики ошибки по выборке (синяя) и по истинному значению (желтая)
Во-первых, следует отметить, что ошибки по истинному значению функции ниже, чем по выборке, что говорит о хороших сглаживающих качествах нейронной сети и о возможности использовать ошибку по выборке как индикатор ошибки по истинному значению. Во-вторых, ошибка по истинному значению меньше при работе 3-го алгоритма, чем 1-го для N <5 , дальше она начинает возрастать. Этой тенденции не видно по ошибке по выборке, но она после седьмого и восьмого шагов начинает колебаться и убывает очень медленно, что говорит о нецелесообразности добавления новых функций. То же можно сказать и про первый алгоритм после пятого шага.
Рассмотрим функцию sin(x)+sin(4x)/4 с разброс 0.5. Это ещё один спорный случай из таблицы 1, проанализируем его, используя методы 3 и 4. Алгоритм 3:
■ •
• ••
, ■ • * ■ • ■1 • *
13
эо
40
Рис.14 графики ошибки по выборке (синяя) и по истинному значению (желтая) при работе третьего
алгоритма
Метод 4:
20
15
5
10
20
30
40
Рис.15 графики ошибки по выборке (синяя) и по истинному значению (желтая) при работе четвёртого
алгоритма
При работе четвёртого алгоритма минимальная ошибка достигается после трёх шагов и дальше не изменяется. При работе третьего алгоритма ошибки по выборке и по истинному значению будет меньше, чем при работе четвёртого алгоритма, но она будет достигаться на 18 шаге. В этом случае оба алгоритма работают достаточно эффективно, алгоритм 3 точнее показывает полученную зависимость, но потребует больших расчетов, чем алгоритм 4. Следует заметить, что данные алгоритмы целесообразно применять для достаточно сложных целевых функций, для которых первый алгоритм оказывается недостаточно эффективным.
Проанализируем подробнее работу 3 алгоритма.
Возьмем функцию sin(x)+sin(4x)/4 без разброса.
в
',■. ■ .........
■ ■ ■ ■
10 2D 30 +3
Рис.16 графики ошибки по выборке (синяя) и по истинному значению (желтая)
В данном случае работу алгоритма можно закончить после 7 шагов, причём ошибка по выборке является достаточно хорошим индикатором необходимости прервать его работу. Аналогичные выводы можно сделать и для других численных экспериментов:
• Алгоритм целесообразно применять для заметно меньшего числа шагов, чем число точек выборки.
• Резкое замедление убывания ошибки по выборке является хорошим критерием окончания работы алгоритма.
• Дальнейшее продолжение работы алгоритма целесообразно, если предполагается доучивание получившейся нейронной сети, а погрешность измерений (наблюдений) намного меньше достигнутого среднеквадратичного отклонения.
Можно сделать общий вывод, что третий алгоритм лучше всего приближает нашу функцию, но в случаях с большим разбросом можно также воспользоваться алгоритмами 1 и 4, причём приведённые выше выводы справедливы и для них. Целесообразность применения алгоритма 1 вытекает из его существенно меньшей трудоёмкости, в особенности это актуально при обработке данных в режиме реального времени. Алгоритм 3 является более универсальным в случае ограниченности данных и достаточных вычислительных ресурсов, так как он работает для всех случаев достаточно точно.
Заметим, что изученные алгоритмы достаточно легко распространяются на многомерный
случай.
Благодарность: Статья подготовлена по результатам исследования, выполненного при финансовой поддержке гранта Российского Научного Фонда (проект 14-38-00009) «Программно-целевое управление комплексным развитием Арктической зоны РФ (Санкт-Петербургский политехнический университет Петра Великого).
Литература
1. Бастенс Д.Э., Ван ден Берг, Вуд Д. Нейронные сети и финансовые рынки: принятие решений в торговых операциях. - М: ТВП, 1998. - 236с.
2. Васильев А.Н., Тархов Д.А .- Нейросетевое моделирование. Принципы. Алгоритмы. Приложения. - СПб.:Изд-во Политехн. Ун-та. 2009. - 528 с.
3. Тархов Д.А. Нейросетевые модели и алгоритмы. - М.: Радиотехника, 2014. - 352 с.
4. Vasilyev A.N., Tarkhov D.A. Mathematical Models of Complex Systems on the Basis of Artificial Neural Networks// Nonlinear Phenomena in Complex Systems. - vol. 17, no.3, pp. 327-335 (2014).
5. N. U. Kainov, D. A. Tarkhov, T. A. Shemyakina. Application of Neural Network Modeling to Identification and Prediction Problems in Ecology Data Analysis for Metallurgy and Welding Industry// Nonlinear Phenomena in Complex Systems. vol. 17, no. 1, pp. 57-63 (2014).
1.4 ■2 ID
0.£ 0J6 0.4 02