. Результатом работы нейрона является выход-
ной сигнал
output y
=
,
1
{ ,..., }
m
y
y
y
∈
, принимающий одно
из возможных значений
1
{ ,..., }
m
y
y
.
Работа всей совокупности нейронов определяется
множеством логических правил с оценками, имеющих
следующий вид:
1
( ( ), ( ),...,
( ), ( )
)
m
i P i X i
X i Y i
r
∀
→
(1)
где
1,..,
i
n
=
— переменная по объектам — индексам
нейронов.
( )
j
X i ∈
— предикаты из заданного множества вход-
ных предикатов
, описывающих входы
j
нейронов
i
N
( 1,.., )
i
n
=
. К примеру, в простейшем случае данные пре-
дикаты могут быть заданы как
( ) (
( )
)
j
k
r
X i
input i
x
=
=
, где
r
x
— некоторые константы из области значении входя-
щих сигналов, которые могут быть заданы, к примеру, пу-
тем квантования диапазона возможных значений соответ-
ствующих входов нейронов.
( )
j
Y i ∈
— предикаты из заданного множества выход-
ных предикатов
, описывающих выходы нейронов
i
N
( 1,.., )
i
n
=
и имеющих вид
( ) (
( )
)
j
r
Y i
output i
y
=
=
, где
r
y
— некоторые константы из набора значений выходных
сигналов.
( )
P i ∈
— предикаты из набора предикатов
, задан-
ные на множестве индексов нейронов. Смысл данного
набора — сужать область применения правил вида (1) до
конкретных нейронов или групп нейронов. К примеру,
в простейшем случае данные предикаты могут иметь вид
(
)
i j
=
, где
1,..,
j
n
=
. Эти предикаты будут принимать
значение «истина» только для конкретных нейронов
1,..,
j
n
=
. В эксперименте, описанном ниже, использова-
лись предикаты
(( mod 2) 0)
i
=
и
(( mod 2) 1)
i
=
, принима-
ющие значение «истина» соответственно только для чет-
ных либо только для нечетных индексов нейронов.
r
— награда, максимизация которой является посто-
янной задачей нейрона.
Данные закономерности предсказывают, что если на
вход нейрона
i
N
,
1,..,
i
n
=
будут поданы сигналы, удовле-
творяющие входным предикатам
1
( ),...,
( )
m
X i
X i
из по-
сылки правила, и нейрон подаст на свой выход сигнал, ука-
занный в выходном предикате ( )
Y i , то математическое
ожидание награды будет равно некоторой величине
r
.
Поясним важность введения множества предикатов
.
В том случае, если правила (1) не содержит предикатов из
, то они будут иметь вид
1
( ( ),...,
( ), ( )
)
m
i X i
X i Y i
r
∀
→
и будут описывать закономерности, общие для всех
нейронов
i
N
,
1,..,
i
n
=
. Добавление в посылку правила
предиката из
автоматически суживает область приме-
нения правила до какого-либо конкретного нейрона либо
группы нейронов. Таким образом, правила, содержащие
предикаты из
, описывают закономерности, специфич-
ные для конкретных нейронов либо групп нейронов.
Основной задачей системы управления является до-
стижение определенной цели. По факту достижения
этой цели система получает от внешней среды награду.
Функция награды задается в зависимости от конечной
цели и служит оценкой качества управления. Таким об-
разом, задачей обучения системы управления является
обнаружение таких правил функционирования нейронов,
которые бы обеспечивали получение максимальной на-
грады.
Для нахождения правил вида (1) используется алго-
ритм, основанный на идеях семантического вероятност-
ного вывода, описанного в работах [12,13]. При помощи
данного алгоритма анализируется множества данных,
хранящих статистику работы нейронной сети (вход-выход
нейронов и полученная награда) и извлекаются все стати-
стически значимые закономерности вида (1). В данной ра-
боте мы не будем приводить описание алгоритма семан-
тического вероятностного вывода. Подробное описание
можно найти в работах [12,13].
Преимущество использования семантического вероят-
ностного вывода и правил вида (1) состоит в организации
«Молодой учёный» . № 28 (132) . Декабрь 2016 г.
12
Информатика
поиска правил таким образом, что сначала будут обна-
руживаться правила, общие для всех нейронов, а только
затем — более сложные, включающие специфичные для
конкретных нейронов и групп нейронов правила. В ре-
зультате, в задачах управления модульными роботами,
если хотя бы часть модулей имеет схожие функции, ко-
торые можно описать общими правилами, предложенный
подход позволяет существенно сократить время поиска
решения.
Функционирование нейронной сети в целом проис-
ходит следующим образом. На каждом такте работы сети
на входы нейронов поступают входящие сигналы. После
чего последовательно для каждого нейрона запускается
процедура принятия решения, в процессе которой из мно-
жества правил, описывающих работу нейронов, выбира-
ются те, которые применимы к текущему нейрону на те-
кущих входных сигналах. Затем среди отобранных правил
выбирается одно правило, прогнозирующее максимальное
значение математического ожидания награды r. Далее на
выход нейрона подается выходной сигнал output = y, ука-
занный в правиле. В начальной стадии функционирования
сети, когда множество правил, описывающих работу ней-
ронов, еще пусто, либо когда нет правил, применимых
к текущему набору входящих сигналов, выход нейрона
определяется случайным образом. После того, как все
нейроны сгенерируют свои выходные сигналы, запуска-
ются на выполнения все действия модулей, иницииру-
емые данными сигналами. Если в результате выполнения
этих действий система достигает поставленную цель, то от
внешней среды поступает награда и осуществляется обу-
чение, в процессе которого ищутся новые и корректиру-
ются текущие правила работы в соответствии с предло-
женным алгоритмом поиска закономерностей.
3. Симулятор модульного робота
Эксперименты с предложенной моделью системы
управления осуществлялись при помощи специально
разработанного трехмерного симулятора с физическим
движком, позволяющего моделировать сложные меха-
нические системы в виртуальном окружении. Программа
специально создавалась для проведения экспериментов
по обучению и управлению различными моделями роботов
в среде, приближенной к реальному миру. Программа об-
ладает возможностями визуализации виртуальной среды
и записью экспериментов в видео-файл. В качестве фи-
зического движка в симуляторе используется открытая
библиотека Open Dynamic Library (ODE) [14], которая
позволяет моделировать динамику твердых тел с различ-
ными видами сочленений. Преимуществом данной библи-
отеке является скорость, высокая стабильность интегри-
рования, а также встроенное обнаружение столкновений.
Основной задачей эксперимента являлась проверка
возможностей предложенной модели успешно обнаружи-
вать эффективные управляющие правила для различных
типов модулей. С этой целью в симуляторе была создана
модель многоного робота, состоящая из двух повторяю-
щихся типов модулей (рис. 1). Четные модули имеют пару
Г-образных конечностей с правой и левой стороны, спо-
собные двигаться только в горизонтальной плоскости.
Нечетные модули имеют пару прямых конечностей, спо-
собных двигаться только в вертикальной плоскости. Мо-
дули поочередно соединены друг с другом посредством
жестких сочленений. Всего робот имеет шесть модулей:
три модуля с Г-образными конечностями и три — с пря-
мыми.
Задачей системы управления являлось обучение эф-
фективному способу движения вперед данной модели ро-
бота. Очевидно, что робот может эффективно двинуться
вперед только за счет продвижения Г-образных конеч-
ностей назад. Однако поскольку Г-образная конечность
может двигаться только в горизонтальной плоскости,
то для того, чтобы забросить ее вперед для следующего
шага и при этом не сдвинуть робота в обратном направ-
лении, необходимо задействовать прямые конечности,
чтобы приподнять робота над землей. В результате, эф-
фективное движение робота возможно только при согла-
сованной работе модулей разных типов. Таким образом,
выбранная конструкция робота, несмотря на простоту,
является хорошей тестовой моделью для проверки воз-
Рис.
1. Модель робота в 3D-симуляторе
“Young Scientist” . #28 (132) . December 2016
13
Computer Science
можностей системы обнаруживать согласованные управ-
ляющие правила для различных типов модулей.
4. Система управления движением робота
Рис.
2. Схема нейронного контура управления роботом
Схема нейронного контура, выбранного для управле-
ния роботом, состояла из шести нейронов — по одному
нейрону на каждый модуль робота. Каждый нейрон
i
N
,
1,...,6
i =
контролировал движения левой и правой конеч-
ности своего модуля, подавая активирующие сигналы на
соответствующие угловые двигатели, вращающие конеч-
ности в суставе. Для упрощения задачи движения левой
и правой конечностей каждого модуля были синхронизи-
рованы таким образом, что одна конечность зеркально по-
вторяла движения другой. Таким образом, каждому
нейрону достаточно было выдавать только один активиру-
ющий сигнал, чтобы привести в движение сразу обе ко-
нечности.
Первый нейрон
1
N
получает на свой вход информацию
о положении конечностей первого модуля. Эта же инфор-
мация поступает на входы всех остальных нейронов
i
N
,
2,...,6
i =
. Таким образом, в данной схеме состояние пер-
вого модуля, по сути, можно рассматривать как своеоб-
разный счетчик тактов для всех остальных модулей.
Награда для системы управления рассчитывалась по
факту завершения цикла выполнения шага и возврата ко-
нечностей первого модуля в исходную точку. Под шагом
подразумевается вся последовательность действий, кото-
рая была выполнена в промежуток времени между теку-
щим и предыдущим фактами нахождения конечностей
в исходном состоянии. В качестве исходной точки было
выбрано максимальное вертикальное положение конеч-
ностей первого модуля.
Вычисление награды осуществлялось следующим обра-
зом. Пусть в текущий момент времени
1
t
положение конеч-
ностей первого модуля соответствуют исходной точке
начала шага. Пусть
0
t
— предыдущий момент времени, ко-
гда эти конечности находились в исходной точке. Тогда все
действия в промежутке времени от
0
(
1)
t +
до
1
t
будут вхо-
дить в цикл выполнения шага, а награда для этих моментов
времени
t
, где
0
1
(
1)
t
t t
+ ≤ ≤
и
0
1
(
1)
t
t
+ <
, будет равна
1
0
1
(
(
)
/
)
r
t
S t −
+
=
. Где
S
— расстояние, которое преодо-
леет робот по направлению вперед за этот же промежуток
времени (от
0
(
1)
t +
до
1
t
). В случае «пустого» шага, т. е.
когда
1
0
(
1)
t
t
=
+
и конечности первого модуля просто оста-
ются в исходной точке два такта подряд, награда для мо-
мента времени
1
t
устанавливается равной 0. Данная функ-
ция награды стимулирует систему управления находить та-
кие последовательности действий, которые бы позволяли
преодолевать как можно большее расстояние при совер-
шении как можно меньшего числа действий.
Схема нейронного контура, выбранного для управле-
ния роботом, состояла из шести нейронов — по одному
нейрону на каждый модуль робота. Каждый нейрон
i
N
,
1,...,6
i =
контролировал движения левой и правой конеч-
ности своего модуля, подавая активирующие сигналы на
соответствующие угловые двигатели, вращающие конеч-
ности в суставе. Для упрощения задачи движения левой
и правой конечностей каждого модуля были синхронизи-
рованы таким образом, что одна конечность зеркально по-
вторяла движения другой. Таким образом, каждому
нейрону достаточно было выдавать только один активиру-
ющий сигнал, чтобы привести в движение сразу обе ко-
нечности.
Первый нейрон
1
N
получает на свой вход информацию
о положении конечностей первого модуля. Эта же инфор-
мация поступает на входы всех остальных нейронов
i
N
,
2,...,6
i =
. Таким образом, в данной схеме состояние пер-
вого модуля, по сути, можно рассматривать как своеоб-
разный счетчик тактов для всех остальных модулей.
Награда для системы управления рассчитывалась по
факту завершения цикла выполнения шага и возврата ко-
нечностей первого модуля в исходную точку. Под шагом
подразумевается вся последовательность действий, кото-
рая была выполнена в промежуток времени между теку-
щим и предыдущим фактами нахождения конечностей
в исходном состоянии. В качестве исходной точки было
выбрано максимальное вертикальное положение конеч-
ностей первого модуля.
Вычисление награды осуществлялось следующим обра-
зом. Пусть в текущий момент времени
1
t
положение конеч-
ностей первого модуля соответствуют исходной точке
начала шага. Пусть
0
t
— предыдущий момент времени, ко-
гда эти конечности находились в исходной точке. Тогда все
действия в промежутке времени от
0
(
1)
t +
до
1
t
будут вхо-
дить в цикл выполнения шага, а награда для этих моментов
времени
t
, где
0
1
(
1)
t
t t
+ ≤ ≤
и
0
1
(
1)
t
t
+ <
, будет равна
1
0
1
(
(
)
/
)
r
t
S t −
+
=
. Где
S
— расстояние, которое преодо-
леет робот по направлению вперед за этот же промежуток
времени (от
0
(
1)
t +
до
1
t
). В случае «пустого» шага, т. е.
когда
1
0
(
1)
t
t
=
+
и конечности первого модуля просто оста-
ются в исходной точке два такта подряд, награда для мо-
мента времени
1
t
устанавливается равной 0. Данная функ-
ция награды стимулирует систему управления находить та-
кие последовательности действий, которые бы позволяли
преодолевать как можно большее расстояние при совер-
шении как можно меньшего числа действий.
Используя симулятор 3D-симулятор, был проведен ряд
успешных экспериментов по обучению рассмотренной си-
стемы управления способам передвижения. В серии экс-
периментов системе управления удавалось стабильно
обнаруживать правила управления, обеспечивающие со-
гласованные движения конечностей модулей разных типов,
приводящие к эффективному перемещению робота вперед.
На рисунке 3 приведен пример оптимальной последова-
тельности движений, найденной в процессе обучения.
«Молодой учёный» . № 28 (132) . Декабрь 2016 г.
14
Информатика
Рис.
3. Последовательность движений робота при перемещении вперед
5. Заключение
В данной работе описан новый подход к созданию обуча-
ющихся систем управления для модульных роботов, осно-
ванный на использовании свойств функциональной схожести
модулей и логико-вероятностного алгоритма направленного
поиска правил. Важной особенность подхода является то,
что при обучении системы появляется возможность исполь-
зовать не только статистические данные о ее взаимодействии
со средой, но и дополнительную информацию о конструк-
тивных особенностях самой системы, а именно: функцио-
нальную симметрию модулей. Данная возможность позво-
ляет существенно сократить пространство поиска решений
и увеличить скорость обучения. Результаты проведен-
ного эксперимента подтвердили, что предложенный подход
может быть с успехом использован для управления модуль-
ными роботами, состоящими из разных типов модулей.
6. Благодарности
Работа выполнена при финансовой поддержке гранта
РФФИ № 14–07–00386.
Литература:
1. Yim M. H., Duff D. G., Roufas K. D. Modular reconfigurable robots, an approach to urban search and rescue // 1st
International Workshop on Human Welfare Robotics Systems (HWRS2000). — 2000. — pp. 19–20.
2. Stoy K., Brandt D., Christensen D. J. Self-Reconfigurable robots: an introduction // Intellegent robotics and auton-
omous agents series. — MIT Press, 2010. — 216 p.
3. Bongard J. C. Evolutionary Robotics // Communications of the ACM. — 2013. — Vol. 56. — No. 8. — pp. 74–83.
4. Kamimura A., Kurokawa H., Yoshida E., Tomita K., Murata S., Kokaji S. Automatic locomotion pattern generation
for modular robots // Proceedings of 2003 IEEE International Conference on Robotics and Automation. — 2003. —
pp. 714–720.
5. Ito K., Matsuno F. Control of hyper-redundant robot using QDSEGA // Proceedings of the 41st SICE Annual Con-
ference (2002). — 2002. — V. 3. — pp. 1499–1504.
6. Marbach D., Ijspeert A. J. Co-evolution of configuration and control for homogenous modular robots // Proceedings
of the eighth conference on Intelligent Autonomous Systems (IAS8). — IOS Press, 2004. — pp. 712–719.
7. Valsalam V. K. Miikkulainen R. Modular neuroevolution for multilegged locomotion // In Proceedings of GECCO. —
2008. — pp. 265–272.
8. Демин А. В. Адаптивное управление модульным хоботовидным манипулятором // Молодой ученый. — 2016. —
№ 3. — С. 47–52.
9. Демин А. В. Обучающаяся система управления движением для 3D модели многоногого робота // Молодой
ученый. — 2015. — № 19 (99). — С. 74–78.
10. Демин А. В. Обучение способам передвижения виртуальной модели змеевидного робота // Молодой ученый. —
2014. — № 19 (78) — С. 147–150.
11. Demin A. V. Adaptive Locomotion Control System for Modular Robots // International Journal of Automation, Con-
trol and Intelligent Systems. — 2015. — Vol. 1. — No. 4. — pp. 92–96.
“Young Scientist” . #28 (132) . December 2016
15
Computer Science
12. Демин А. В. Адаптивное управление роботами с модульной конструкцией // Системы управления, связи и без-
опасности. — 2015. — № 4. — С. 180–197.
13. Демин А. В., Витяев Е. Е. Логическая модель адаптивной системы управления // Нейроинформатика. —
2008. — Т. 3. — № 1. — С. 79–107.
14. Smith R. Open Dynamics Engine. — URL: http://ode.org/.
Роль процесса оптимизации в работе систем баз данных
Иванов Константин Константинович, студент;
Ефремов Анатолий Александрович, студент;
Ващенко Илья Александрович, студент;
Научный руководитель: Сухомлинов Анатолий Иванович, профессор
Дальневосточный федеральный университет (г. Владивосток)
К
ак известно, под оптимизацией в информатике пони-
мается модификация системы для улучшения её эф-
фективности. Однако, казалось бы, этот процесс не имеет
никакого отношения к таблицам с данными. И это на
самом деле так. Но, когда речь заходит об обработке этих
данных, обойтись без оптимизации никак нельзя.
Оптимизация является одной из сильных сторон реля-
ционных баз данных [1], так как производится автомати-
чески на довольно высоком семантическом уровне. Здесь
оптимизатор (программа, выполняющая оптимизацию)
представляет собой некий аналог искусственного интел-
лекта, а именно экспертной системы [2]. Это обусловлено
тем, что в оптимизаторе «реализованы знания и опыт
лучших из лучших программистов», благодаря чему этими
знаниями и опытом могут воспользоваться менее ква-
лифицированные специалисты. В противовес вышеска-
занному в нереляционных базах данных возможна лишь
ручная оптимизация, при которой пользователь сам опре-
деляет, последовательность каких низкоуровневых про-
цедур будет соответствовать определенному запросу.
Данный подход является большим минусом подобных си-
стем баз данных, так как любое неверно принятое пользо-
вателем решение не может быть исправлено системой [1].
Для того, чтобы наяву убедиться в том, что автомати-
ческая оптимизация жизненно необходима системам баз
данных, рассмотрим следующий пример. Пусть нам необ-
ходимо выбрать номера групп, в которых обучается хотя
бы один отличник за все время обучения. Всего есть 100
групп и 5000 студентов, причем только 50 из них являются
отличниками. Информация о группах хранится в пере-
менной отношения A, а информация о студентах (для каж-
дого студента проставлен его средний балл по итогам всех
аттестаций за все время обучения) — в переменной отно-
шения B, причем первичный ключ переменной отношения
A является внешним по отношению к переменной отно-
шения B. Имеется два возможных варианта выполнения
поставленной задачи:
1. При использовании первого из них сначала прои-
зойдет соединение переменных отношения A и B по внеш-
нему ключу, для выполнения которого потребуется найти
для каждой из 5000 записей о студентах одну соответ-
ствующую запись из ста об учебных группах. В резуль-
тате соединения будет получена новая переменная отно-
шения (допустим, C) из 5000 соединенных кортежей, для
хранения которой, вполне возможно, может даже не хва-
тить места в оперативной памяти, из-за чего придется за-
писать эту переменную отношения C на диск. Затем будет
проведена выборка тех кортежей, в которых атрибут со
значением среднего балла студента за все время обу-
чения будет равен 5, но для проведения выборки потре-
буется опять загрузить переменную отношения C в опе-
ративную память. Так как отличников всего 50, то новая
полученная переменная отношения сможет поместиться
в оперативной памяти. После этого будет проведена по-
следняя операция, в ходе которого будет сформирован
список групп, в которой обучаются эти отличники.
2. При использовании второго из них сначала будет
проведена операция выборки, в результате которой будет
сформирована переменная отношения, содержащая лишь
записи о 50 студентах-отличниках. Затем эта переменная
отношения будет соединена с переменной отношения,
хранящей сведения об учебных группах, по внешнему
ключу, причем новая переменная отношения также будет
содержать 50 кортежей. Последний шаг с формирова-
нием списка групп полностью идентичен последнему шагу
из первого варианта.
Представленный выше пример ярко демонстрирует
важность оптимизации. Ведь если по каким-то причинам
был бы выбран первый вариант и отсутствовала автома-
тическая оптимизация, то подобная операция выполня-
лась бы в разы медленнее, чем она могла бы, при этом ис-
пользуя относительно большой объем памяти.
Тем не менее, варианты выполнения не всегда на-
столько сильно разнятся, что выбор можно сделать прак-
тически моментально. Поэтому для принятия правиль-
ного решения оптимизатор использует большой набор
статистических показателей базы данных [1]. Обычно, это
набор представляет собой следующие сведения:
«Молодой учёный» . № 28 (132) . Декабрь 2016 г.
Dostları ilə paylaş: |