Параллельное решение краевой задачи для ДУЧП с помощью

advertisement
ISBN 978-5-7262-1775-8 НЕЙРОИНФОРМАТИКА-2013. Часть 2
А.П. КАРПЕНКО, В.В. КОВАЛЕВ
Московский государственный технический университет им. Н.Э. Баумана
apkarpenko@mail.ru
ПАРАЛЛЕЛЬНОЕ РЕШЕНИЕ КРАЕВОЙ ЗАДАЧИ ДЛЯ ДУЧП С
ПОМОЩЬЮ РБФ НЕЙРОННОЙ СЕТИ
1.
Предложен алгоритм решения краевой задачи для дифференциального
уравнения в частных производных (ДУЧП) с помощью нейронной сети с
радиально-базисными функциями (РБФ). Выполнена программная реализация алгоритма на однопроцессорной ЭВМ, а также на параллельном
графическом процессорном устройстве. Исследована эффективность принятых алгоритмических и программных решений.
Ключевые слова: нейронная сеть, радиально-базисная функция, краевая задача, дифференциальное уравнение в частных производных, графическое процессорное устройство, CUDA
Введение
В математической физике и многих приложениях имеется широкий круг
проблем, относящихся, как правило, к системам с распределенными параметрами, которые приводят к краевым задачам для ДУЧП. В последние
годы наблюдается повышенный интерес к применению нейронных сетей
для решения таких задач. Этот интерес, по-видимому, продуцируют следующие основные факторы: быстрый рост числа приложений, приводящих к
краевым задачам для ДУЧП; высокая математическая и вычислительная
сложность многих таких задач, обусловленная сложностью их геометрии,
нелинейностью моделей, их высокой размерностью, неточностью параметров уравнений, а также краевых и начальных условий; трудности применения стандартных методов к решению этих задач и попытки найти новые
интеллектуальные методы; возрастающая доступность нейрокомпьютеров и
универсальных параллельных вычислительных систем, на которых
нейросетевые методы могут быть эффективно реализованы.
Работа посвящена перспективному методу решения краевых задач для
ДУЧП с помощью нейронных сетей с радиально-базисными функциями, а
также с помощью гетерогенных нейронных сетей, в которых один из слоев построен на основе радиально-базисных нейронов. Известно значительное число публикаций, посвященных этому подходу к решению укаУДК 004.032.26(08) Нейронные сети
1
ISBN 978-5-7262-1775-8 НЕЙРОИНФОРМАТИКА-2013. Часть 2
занных задач. Отметим, прежде всего, монографию [1] и большое число
других публикаций ее авторов. Большое внимание рассматриваемым вопросам уделено в книге [2]. Бессеточным методам решения задач данного
класса, к которым относятся нейросетевые методы, посвящена фундаментальная работа [3]. Среди множества журнальных публикаций отметим
работу [4].
Любые методы решения краевой задачи для ДУЧП, включая нейросетевой метод, имеют высокую вычислительную сложность, так что всякая
сколь-нибудь значимая задача этого класса может быть решена за приемлемое время только на параллельной вычислительной системе. В силу
потенциально очень высокой производительности и доступности, в качестве таких систем в настоящее время все активнее используют графические процессорные устройства (ГПУ), на которые ориентирована и данная
работа.
Известны две близкие технологии программирования ГПУ - CUDA
компании Nvidia и OpenCL. В настоящей работе для программной реализации рассматриваемого нейросетевого алгоритма на ГПУ использована
технология CUDA [5].
1. Постановка задачи
Рассматриваем эллиптическую краевую задачу в области   R3 с
гладкой границей  [1]. Требуется найти функцию u( x, y, z ) – решение
уравнения Лапласа
 2u  2u  2u


0,
(1)
x 2 y 2 z 2
u
 u

удовлетворяющую краевым условиям    u   f , где
–
n

n


производная по нормали к границе  . Условия   0,   1 ;   1,   0
являются условиями Дирихле и Неймана, соответственно .
2. Алгоритм решения задачи
Используем однослойную РБФ сеть. В качестве функции активации iго нейрона скрытого слоя применяем функцию Гаусса и мультиквадратичную функцию
2
УДК 004.032.26(08) Нейронные сети
ISBN 978-5-7262-1775-8 НЕЙРОИНФОРМАТИКА-2013. Часть 2
i

X  ci
  exp   r
2

, i
ai2 


X  ci
ri  ai2
(2)

соответственно. Здесь скалярный параметр ai  0 определяет ширину
РБФ, векторный параметр ci  (ci, x , ci, y , ci, z ) - положение ее максимума;
i
ri  X  ci .
Функционал суммарной погрешности
n


n


J (W , C, A)   ux ( X i )  uy ( X i )  u z ( X i )  p( X i ) 2   u( X j )  p1 ( X j ) 2 
i 1
n
j 1


  nx ( X j ) ux ( X j )  n y ( X j ) u y ( X j )  nz ( X j ) u z ( X j )  p2 ( X j ) 2
j 1
(3)
представляет собой сумму квадратичной ошибки решения и штрафных
слагаемых для краевых условий. Здесь приняты следующие обозначения:
m
Х – трехмерный вектор с компонентами x, y, z ; u( X )   wi i ( X ) - исl 1
комая
нейросетевая
аппроксимация
решения
задачи
(1);
u ( X j ),  {x, y, z} – первые частные производные функции u(X ) по
{x, y, z} в точке X j   ; u ( X i ) – аналогичные вторые частные производные в точке X i   ; n( X j )  (nx ( X j ), n y ( X j ), nz ( X j )) – трехмерный
вектор
внешней
нормали
к
границе
Г
в
точке
Xj;
p( X ), p1 ( X ), p2 ( X ), p3 ( X ) – известные функции, вид которых определяют граничные условия; W  ( w1 , w2 ,..., wm ) – (m  1) -вектор весов
нейронов; C  (c1 , c 2 ,..., cm ) – (3 m 1) -вектор координат центров РБФ;
A  (a1 , a 2 ,..., am ) – (m  1) -вектор ширин РБФ; X i , X j – заданные случайным образом точки внутри области  и на ее границе  соответственно; n, n – числа этих точек.
Погрешность решения оцениваем величиной
 u( X )  u ( X ) 
 u (X )

J e (W , C , A) 
i 1
i

i 1
e
2
e
i
2
,
(4)
i
где u( X ), ue ( X ) - нейросетевое и точное решения соответственно;  –
число контрольных точек.
УДК 004.032.26(08) Нейронные сети
3
ISBN 978-5-7262-1775-8 НЕЙРОИНФОРМАТИКА-2013. Часть 2
Схема алгоритма имеет следующий вид.
 Инициализация нейронной сети.
 Генерация обучающих точек X i   , X j   ; i [1 : n] , j [1 : n ] .
 Обучение нейронной сети:
- коррекция весов нейронов wi ,
- коррекция центров РБФ ci ,
- коррекция ширин РБФ ai ,
- настройка корректирующего коэффициента  весов нейронов,
- настройка корректирующих коэффициентов  и  центров и ширин РБФ соответственно,
 Генерация контрольных точек и дообучение нейронной сети.
 Оценка качества нейросетевой аппроксимации решения.
 Проверка условий окончания итераций.
Инициализация. Используем выбранные случайным образом начальные значения параметров wi , ai и значения компонентов вектора ci ,
равномерно распределенные в области  . В развитие работы планируется поиск начальных значений последнего параметра с помощью вспомогательной персептронной нейронной сети.
Генерация обучающих точек. Вообще говоря, обучающие точки могут выбираться детерминированным или случайным образом внутри области  и на ее границе  . В нашей реализации алгоритма используем
случайные точки, равномерно распределенные в области  и на границе  . Предусмотрена возможность перегенерации обучающих точек после заданного числа циклов обучения.
Обучение нейронной сети. Используем двухшаговый алгоритм градиентного спуска: на первом шаге оптимизируем значения весов нейронов
wi , а на втором шаге –координаты центров ci и ширин РБФ ai .
Коррекцию весов нейронов выполняем по формуле
J (W (t ), C (t ), A(t ))
,
(5)
wi (t  1)  wi (t )  (t )
wi
где (t ) – текущее значение корректирующего коэффициента весов
нейронов. Коррекцию значений компонентов вектора ci и параметра ai
выполняем по аналогичной формуле с заменой параметра  на параметры ,  соответственно. Как в случае гауссовой, так и мультквадратич-
4
УДК 004.032.26(08) Нейронные сети
ISBN 978-5-7262-1775-8 НЕЙРОИНФОРМАТИКА-2013. Часть 2
ной функций активации, используем полученные нами аналитические
J
J
J
выражения для частных производных
,
, {x, y, z} ,
.
ai
wi ci ,
Текущее значение корректирующего коэффициента  полагаем равным [4]

(t )  2
n
i 1
Bi (t ) Di (t )   j 1 E j (t ) Fj (t )   j 1 G j (t ) H j (t )
n

n
i 1
n
Di2 (t )   j 1 Fj2 (t )   j 1 H 2j (t )
n
n
,
(6)
где Bi (t ), Di (t ),..., H i (t ) – известные функции. Значения коэффициента 
варьируем в соответствии с выражением [4]
0,1 b, J (W (t ), C (t ), A(t ))  J (W (t ), A(t  1),B(t  1)),
(t )  
èí à÷å.
 10 b,
Аналогичное выражение определяет правило варьирования коэффициента . Здесь b  0 – заданная константа.
Генерацию контрольных точек выполняем аналогично генерации обучающих точек.
Качество нейросетевой аппроксимации оцениваем с помощью контрольных точек по формуле (3).
В качестве условия окончания итераций программно реализована стагнация процесса обучения в течение заданного числа итераций.
3. Исследование эффективности алгоритма
Реализация алгоритма выполнена на языке программирования C++ в
среде Microsoft Visual Studio. Исследование эффективности принятых алгоритмических и программных решений осуществлено на двух краевых
задачах для ДУЧП с известным аналитическими решениями [4]. Эксперименты выполнены на персональном компьютере с параметрами Intel Core
i5-750 (8M Cache; 2,66 GHz), 12 GB RAM.
Двухмерная краевая задача 1:
 2u  2u

 sin ( x) sin ( y) ,   {( x, y) | x [0;1], y [0;1]},
x 2 y 2
u ( x, y )  0 | ( x , y ) .
Точное решение задачи равно
УДК 004.032.26(08) Нейронные сети
5
ISBN 978-5-7262-1775-8 НЕЙРОИНФОРМАТИКА-2013. Часть 2
1
sin ( x) sin ( y).
2 2
Исследование выполнено для обучающих наборов, содержащих по
n  48, n  16 и n  192, n  64 точек. Результаты исследования иллюстрирует табл. 1, где Т – время решения задачи,  (W , C, A) – средняя погрешность решения.
Таблица 1. Результаты исследования: задача 1; n  192, n  64
ue ( x, y)  
РБФ
т
4
8
16
32
4
8
16
32
(2)
(3)
Т, с
3261
17630
40821
116311
3035
17208
41297
115631
J e (W , C , A)
 (W , C, A)
0,491
0,375
0,035
0,024
0,427
0,363
0,034
0,024
0,078
0,046
0,010
0,008
0,073
0,043
0,010
0,008
Аналогичная двухмерная задача 2:
 2u  2u

 ( 2   2 ) exp ( x   y) ,   {( x, y) | x [0;1], y [0;1]} ,
x 2 y2
y  0, y  1,
 exp ( x   y ),
u ( x, y )  
 exp ( x   y ), x  0, x  1,
ue ( x, y )  exp ( x   y ).
Результаты исследования задачи 2 иллюстрирует табл. 2.
Таблица 2. Результаты исследования: задача 2; n  192, n  64
РБФ
(2)
(3)
6
т
4
8
16
32
4
8
Т, с
3750
20274
46945
133758
3460
19617
J e (W , C , A)
 (W , C, A)
0,427
0,326
0,030
0,021
0,380
0,323
0,068
0,040
0,009
0,006
0,065
0,038
УДК 004.032.26(08) Нейронные сети
ISBN 978-5-7262-1775-8 НЕЙРОИНФОРМАТИКА-2013. Часть 2
16
32
47078
131819
0,030
0,021
0,009
0,007
Из представленных результатов следует, прежде всего, работоспособность алгоритма и программного обеспечения. Для обеих задач средняя
погрешность решения оказывается равной ~ 0,1 уже при числе нейронов
m  4 . Погрешность решения быстро убывает с ростом числа нейронов и
медленно – с ростом чисел обучающих точек n, n . С ростом числа
нейронов экспоненциально возрастает время решения задачи. Так, обучение сети со 128 нейронами на указанном выше персональном компьютере
требует около 100 часов машинного времени. Оба типа РБФ показывают
близкие результаты по точности и времени решения задачи.
4. Распараллеливание алгоритма
Основные особенности вычислений общего назначения на ГПУ заключаются в следующем [5].
- С точки зрения топологии, ГПУ следует рассматривать как одно-,
двух- или трехмерную решетку процессорных элементов, так что обрабатываемые ГПУ данные целесообразно представлять в виде массивов соответствующих размерностей.
- ГПУ относится к классу векторных ЭВМ, в которых процессорные
элементы одновременно производят арифметические операции над всеми
элементами векторов данных.
- Имеет место низкая скорость обмена данными между ГПУ и hostпроцессором системы, поэтому следует увеличить отношение объема вычислений к объему этих данных.
- Обмен данными между программами (потоками), выполняемыми на
различных процессорных элементах, осуществляется через разделяемую
память ГПУ и может приводить к значительной потере производительности.
С целью уменьшения числа обменов данными между host-процессором
и ГПУ, генерация случайных обучающих точек реализована на самом
ГПУ с применением библиотеки NVIDIA CUDA RandomNumberGenerationLibrary.
Обучение нейронной сети реализовано по схеме master-slave, где master-процесс выполняется на host-процессоре, а подчиненные slaveпроцессы оформлены в виде потоков, выполняемых на ГПУ. Каждому из
УДК 004.032.26(08) Нейронные сети
7
ISBN 978-5-7262-1775-8 НЕЙРОИНФОРМАТИКА-2013. Часть 2
нейронов поставлен в соответствие один поток, последовательно выполняющий коррекцию параметров wi, ci,x, ci,y, ci,z, ai по формулам вида (5).
Вычисление значений корректирующих коэффициентов , ,  реализовано на host-процессоре. При этом для каждого из нейронов необходимые значения РБФ и их производных вычисляются в отдельных потоках на ГПУ. По аналогичной схеме реализовано параллельное вычисление
погрешности решения (3).
Для тестирования разработанной CUDA-программы выполнено параллельное решение задач 1, 2 (п. 3). Результаты решения показали корректность параллельного варианта алгоритма и соответствующего программного обеспечения.
5. Вычислительный эксперимент
Исследование эффективности параллельного алгоритма выполнено для
поставленной в п. 1 трехмерной эллиптической краевой задачи в кубической области  . В качестве ГПУ использована графическая карта GeForce GTX 480. Числа обучающих точек во всех случаях равны
n  48, n  16 . Некоторые результаты исследования в случае использования гауссовых РБФ (2), представлены в табл. 3. Таблицу иллюстрирует
рис. 1, на котором принято, что ускорение параллельных вычислений
T
SGPU равно S GPU  CPU , где TCPU , TGPU - времена последовательного и
TGPU
параллельного решения задачи соответственно.
Таблица 3. Результаты вычислительного эксперимента
Вычислитель
CPU
GPU
8
m
4
8
16
32
4
8
16
32
T, с
781
6273
14196
46359
992
6423
4732
6623
J e (W , C , A)
0,661
0,435
0,034
0,019
0,635
0,418
0,033
0,018
УДК 004.032.26(08) Нейронные сети
ISBN 978-5-7262-1775-8 НЕЙРОИНФОРМАТИКА-2013. Часть 2
Рис. 1. Ускорение вычислений в функции числа нейронов
Аналогичное исследование выполнено для нейронной сети на основе
мультиквадратичных РБФ (3), а также для нейронной сети с комбинированными РБФ (когда часть нейронов имеют гауссову РБФ, а часть - мультиквадратичную).
Результаты вычислительного эксперимента показывают, что 16 и более нейронов позволяют получить высокую точность решения рассматриваемой краевой задачи. При числе нейронов m , превышающем восемь, наблюдается квадратичный рост ускорения вычислений, так, что
m  32 обеспечивает более чем семикратное ускорение. Замедление вычислений при m  8 объясняется высокой долей коммуникационных
расходов в этом случае.
Заключение
В работе предложен нейросетевой алгоритм решения краевой задачи
для ДУЧП, использующий нейроны с радиально-базисными функциями
активации. Выполнена программная реализация алгоритма на однопроцессорной ЭВМ. С помощью вычислительного эксперимента подтверждена работоспособность алгоритма и исследована его эффективности.
Предложена схема распараллеливания алгоритма для графического процессорного устройства с архитектурой CUDA. Выполнена программная
реализация алгоритма и исследование его эффективности, показавшее
перспективность его развития. Новизна алгоритма заключается в методике параллельного обучения нейронной сети.
УДК 004.032.26(08) Нейронные сети
9
ISBN 978-5-7262-1775-8 НЕЙРОИНФОРМАТИКА-2013. Часть 2
В развитие работы планируются эксперименты с увеличением числа
нейронов m с тем, чтобы найти оптимальное значение этого числа т* –
значение, при котором имеет место насыщение функции SGPU(m).
Список литературы
1. Васильев А.Н., Тархов Д.А. Нейросетевое моделирование. Принципы. Алгоритмы. Приложения. СПб.: Изд-во Политехнического университета, 2009.
2. Горбаченко В.И. Применение нейрокомпьютеров для решения краевых задач теории поля. Учеб.пособие для вузов / Общая ред. А.И. Галушкина. М.: ИПРЖР, 2002.
3. Liu G.R., Gu Y.T. An Introduction to Meshfree Methods and Their Programming. Springer, 2005.
4. Jianyu L., Siwei L., Yingjiana Q., Yapinga H.J. Numerical solution of
elliptic partial differential equation using radial basis function neural networks
// Neural Networks, 2003. 16(5/6). Р. 729–734.
5. Боресков А.В., Харламов А.А. Основы работы с технологией
CUDA. М.: ДМК Пресс, 2010.
10
УДК 004.032.26(08) Нейронные сети
Download