Современные информационные технологии/2.Вычислительная техника и программирова­ние

 

С.Н. Данилин, М.В. Макаров, С.А. Щаников

Муромский институт Владимирского государственного университета

602245, г. Муром, Владимирской обл., ул. Орловская, 23

E-mail: nauka-murom@yandex.ru

Аппроксимация базовых математических функций с использованием нейросетевых алгоритмов

 

Решение многих практических задач, стоящих перед разработчиками современных систем обработки информации, сдерживается эффективностью вычислительной техники текущего уровня развития. Особенно заметно ограниченность возможностей вычислительной техники с классической фон-неймановской архитектурой проявляется в случаях многократного увеличения размерности пространства решений или необходимости резкого сокращения времени получения результата. Успешный выход из подобных ситуаций оказывается возможным при использовании вычислительных средств, работающих   в нейросетевом логическом базисе [1].

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

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

В процессе исследований для каждой функции синтезировались двухслойные нейронные сети прямого распространения с полными связями. Были выбраны следующие функции активации: для первого слоя – сигмовидная ; для второго слоя – линейная .

В качестве инструментального средства исследований использовался пакет прикладных программ Neural Network Toolbox версии 4, функционирующий под управлением ядра системы Matlab версии 6.5.

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

                                                 (1)

В качестве алгоритма обучения использовался алгоритм Левенберга-Маркварта, дополненный регуляризацией по Байесу. Данный алгоритм находит широкое применение при решении задач аппроксимации нелинейных зависимостей. Он выполняет процедуру обучения, если функции взвешивания, накопления и активации имеют производные. В отличие от других алгоритмов, здесь используется метод регуляризации, который позволяет успешно справится        с проблемой переобучения путём минимизации комбинированного функционала качества обучения, учитывающего не только сумму квадратов ошибок обучения, но и квадраты весов. Для вычисления якобиана функционала качества по переменным веса и смещения применён метод обратного распространения ошибки [2].

Исследуемая структура нейронной сети представлена на рисунке 1.

Рисунок 1. Топология нейронной сети

 

При использовании нейронных сетей математическое выражение аппроксимируемых функций запишется следующим образом:

                           (2)

где - входное значение сети.

Рассмотрим задачу аппроксимации функции вычисления квадратного корня в интервале значений аргумента [0..1] с шагом 0,05.

Входной сигнал нейронной сети для вычисления функции квадратного корня x=[0,…,xi,…,X]=[0;0,05;0.1;…;1].

Выходной сигнал нейронной сети – набор аппроксимированных нейронной сетью значений функции квадратного корня y.

Желаемый выходной сигнал нейронной сети – это набор значений функции квадратного корня , полученный с помощью использования стандартной функции sqrt(x), входящей в состав пакета Matlab, при указанных выше значениях x.

Зависимость значения функционала оптимизации и абсолютной погрешности аппроксимации от числа нейронов в первом слое приведена в таблице 1.

Таблица 1. Зависимость точности аппроксимации функции от числа нейронов в первом слое.

Число нейронов в первом слое

1

2

3

4

5

6

7

8

SSE

0,021

2*10-4

8,67*10-7

1,04*10-8

8,44*10-10

6,3*10-11

2,57*10-11

1,8*10-12

Макс. абс. погрешность

0,1

0,0075

4,5*10-4

5,5*10-5

1,5*10-5

3,8*10-6

2,8*10-6

0,6*10-6

Синтезированная нейронная сеть с пятью нейронами в первом слое и одним во втором обеспечивает абсолютную погрешность 1,5*, что уже лучше погрешности алгоритмов (), построенных по классической схеме преобразования [3-6].

Использование восьми нейронов в первом слое позволяет снизить погрешность на два порядка (рисунок 2) и достичь результата порядка ().

Рисунок 2. Погрешность аппроксимации функции  при восьми нейронах в первом слое.

Рассмотрим задачу аппроксимации функции вычисления обратного числа   в интервале значений аргумента [1..100] с шагом 0.5.

Зависимость значения функционала оптимизации и абсолютной погрешности аппроксимации от числа нейронов в первом слое приведена в таблице 2.

Таблица 2. Зависимость точности аппроксимации функции y=1/х от числа нейронов в первом слое.

Число нейронов в первом слое

2

3

4

5

6

SSE

5,36*

3,47*

1,6*

6,37*10-12

5,42*

Максимальная абсолютная погрешность

1,6*

0,95*10-6

9*

6,5*

0,6*

Синтезированная нейронная сеть с пятью нейронами в первом слое и одним во втором обеспечивает абсолютную погрешность аппроксимации 6,5*10-7, что лучше погрешности алгоритмов (2,2*10-6), построенных по классической схеме преобразования [3-6].

Использование шести нейронов в первом слое позволяет снизить погрешность на целый порядок (таблица 2) и достичь результата порядка (0,6*10-8).        К тому же, быстродействие обученной нейронной сети составляет, как и в первом примере, всего 2 машинных цикла, что практически на порядок меньше любых известных последовательных алгоритмов вычисления рассматриваемых         функций.

Рисунок 3. Погрешность аппроксимации функции y=1/х

при шести нейронах в первом слое.

Как показано на рисунке 3 максимальная погрешность аппроксимации на промежутке от 1 до 100 составляет 0,6*10-8.

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

 

Литература

1. Нейроматематика. Кн.6: Учеб. Пособие для вузов./ Под ред. А.И. Галушкина. – М.: ИПРЖР, 2002. - 448 с. (Серия Нейрокомпьютеры и их применение).

2. Медведев В.С., Потемкин В.Г. Нейронные сети. MATLAB 6. / Под общ. ред. В.Г. Потемкина. – М.: ДИАЛОГ-МИФИ, 2002. – 496 с.

3. Акчурин Э.А. Программная реализация взаимных преобразований алгебраического и экспоненциального представления комплексного сигнала на цифровых сигнальных процессорах // Радиотехника. – 1995 – № 1-2 – С. 21-23.

4. Амосов А.А., Дубинский Ю.А., Копчёнова Н.В. Вычислительные методы для инженеров. – М.: Высш. шк., 1994. – 544 с.

5. Чекушкин В.В. Реализация вычислительных процессов в системах управления и контроля. Учебное пособие. – Муром.: 2001. – 44, 99с.

6. Костров В.В. Оценочно-корреляционная обработка сигналов и ее применение: Учеб. пособие / Владим. гос. ун-т, 1997. – 108 с.