5.4. Организация вычислений в сети.
После создания внутреннего представления сети в памяти в виде совокупности связанных между собой элементов сети, сеть готова к вычислениям. Вычисления инициируются с некоторого выбранного подмножества элементов сети, называемых выходами сети. Каждый элемент имеет свой метод, реализующий операцию данной вершины сети и результат которого интерпретируется как значение выходного сигнала или значение выхода. Аргументами этого метода являются значения выходов у входов элемента в предыдущие моменты времени, и, возможно, в текущий момент. При этом, естественно, возможен бесконечный цикл в случае неправильной спецификации сети. На этот случай в систему предполагается добавить некоторый предварительный анализатор корректности топологии сети. Распараллеливание здесь возможно при вычислении значений выходов для элементов одного порядка, поскольку они являются независимыми.
Так как параметр времени в систему введен явно, существует необходимость в сообщении каждому элементу о наступлении следующего такта вычислений. При получении такого сообщения, каждый элемент выполняет завершительные операции для данного такта либо может просто проигнорировать сообщение. В реализации механизма передачи сообщений использован объектный шаблон Цепочка Обработчиков [Gamma]. Суть его состоит в следующем. Предположим существует некоторая иерархия классов или цепочка, где каждый предшествующий класс является родительским для следующего, например ЭлементСети Нейрон Нейрон2. У ЭлементаСети определен (виртуальный в терминах языка C++) метод обработки сообщения обработать_сообщение(Сообщение). В этом методе у каждого класса при вызове определяется, может ли данный метод обработать данное сообщение. Если да, то выполняется обработка. Затем в любом случае вызывается метод обработки сообщения родительского класса, если он существует. Например, метод обработки сообщений у ЭлементаСети увеличивает счетчик тактов (счетчик времени) при получении сообщения СледующийТакт (потомок класса Сообщение). Объект СредаСКонечнымАвтоматом, являющийся потомком ЭлементаСети и КонечногоАвтомата при получении данного сообщения выполняет чтение входного слова, и, естественно, вызывает обработку сообщения для своих родительских классов.
5.5. Анализаторы работы сети.
Для отладки сетей часто необходимо знать разнообразную информацию о состояниии сети и отдельных ее элементов в некоторые моменты времени. Сети предполагаются гетерогенные, то есть состоящими из разных элементов-экземпляров классов-потомков ЭлементаСети, и состояние каждого элемента в некоторые моменты времени может характеризоваться, вообще говоря, некоторым своим набором параметров, помимо значения выходного и входного сигналов. Например, КА лучше охарактеризовать состоянием, в котором находится автомат. Поэтому схема была выбрана следующая: ЭлементСети является производным классом от Летописец, который имеет методы для записи объектов Событие в некоторую временную последовательность История, которую хранит каждый Летописец. В процессе работы сети каждый Летописец записывает в Историю один из своих или общих объектов подкласса Событие. Например, КА записывает помимо прочих событие СостояниеКА, в котором есть поле для указания состояния КА в данный момент времени. Каждый (потомок класса) АнализаторРаботыСети умеет обрабатывать Истории, извлекая оттуда необходимую информацию, и затем выдавая ее в удобном виде на экран. В примере 5.8.1 приведен результат работы программы, где изображена диаграмма выходных сигналов выбранных ЭлементовСети, имена которых выведены в первой строке диаграммы. Диаграмма получена как результат обработки Истории выбранных ЭлементовСети АнализаторомРаботыСети.
5.6. Реализация БОС.
Задача блока оценки состояния в конечном счете заключается в сопоставлении выходному вектору среды W некоторой оценки или числа. Фактически, речь идет о задании некоторого функционала над BN, где N - размерность выходного вектора среды W. Функционал задается как табличная функция, значения которой перечисляются в специальной секции файла спецификации. Здесь указываются типы аргумента и самой табличной функции, может быть указано значение по умолчанию, а затем перечисляются входные и соответствующие выходные значения.
[Evaluator]
set type for in BinaryVector
set type for out Integer
set default value for out=0
in=0111,out=15
in=1011,out=10
in=1101,out=5
in=1110,out=20
Пример 5.6.1. Спецификация табличной функции БОС.
Нейросетевая реализация этого блока нами не создавалась. Предполагается, что ее можно построить из двух простых подсетей, из которых одна представляет собой распознающую нейросеть, формирующую образы вектора in, а другая - комбинационную схему из нейронов, выдающую сигнал на выход с номером out в соответствии с заданным функционалом.
5.7. Реализация модели среды.
Представим среду с помощью КА Мура. Пусть КА имеет четыре состояния s1, s2, s3, s4 и представлен диаграммой Мура на рис. 5.7.1. Файл спецификации для модели среды содержит описание выходного сигнала в зависимости от состояния КА (первая часть в примере 5.7.1) и описание самого КА (вторая часть). Пятое дополнительное состояние КА initial является инициальным. Переходы указываются в виде (<исходное состояние>, <входное слово>) -> <конечное состояние>.
S0=initial, a0=0000, a1=0111, a2=1011, a3=1101, a4=1110
Рис. 5.7.1.
[Environment]
initial(output=1111)
s1(output=0111)
s2(output=1011)
s3(output=1101)
s4(output=1110)
[Finite State Automate]
set for word -1 synonym any
(initial,0)->s1
(initial,1)->s1
(s1,0)->s2
(s1,1)->s3
(s2,0)->s4
(s2,1)->s3
(s3,0)->s2
(s3,1)->s4
(s4,0)->s4
(s4,1)->s1
Пример 5.7.1. Спецификация модели среды.
Пример 5.8.1. Результат работы программы.
На диаграмме выведены выходные сигналы входных элементов (датчиков) I1, I2, I3, I4, нейронов N1, N2, N3, N4, БПР (DecisionMaker), БОС (Evaluator) и внутреннего элемента среды (Or), на который подаются сигналы от БПР и стохастического источника, а выход соединен с входом модели КА Мура. Множество возможных воздействий УС на среду состоит из двух элементов, обозначенных как 0 и 1. Из примеров 5.6.1 и 5.7.1 видно, что состоянием модели среды с наивысшей оценкой является s4. Из диаграммы 5.8.1 можно сделать вывод, что УС нашла закономерности управления, достаточные для удержания ОУ в состоянии s4 (t > 18), но в результате действия стохастического источника после некоторого времени пребывания в s4 ОУ перескакивает из этого состояния в s1, откуда УС снова переводит его в состояние s4.
Работу системы проиллюстрируем на рис. 5.8.1. В систему входят модель среды, состоящей из КА и Истока, и УС, состоящей из блоков ФРО, БОС, БЗ, БПР.
Рис. 5.8.1.
В конце примера выведена информация о состоянии БЗ, содержащей знания, эмпирически найденные УС к моменту окончания работы программы.
5.9. Перспективы развития СПИНС.
Кроме намеченных в разделе 5.1 направлений развития системы, а именно создание конструктора сетей с графическим интерфейсом, расширение языка спецификации сетей и др., необходима доработка и разработка нейросетевых реализаций БЗ и БПР, разработка методов создания реальных приложений по полученным с помощью СПИНС спецификациям сетей. Привлекательным является также создание трехмерного визуализатора БЗ. Визуализация БЗ основана на введении топологии в конечном пространстве образов базы знаний (определение 4.5) посредством отображения F и Y в R, таким образом, области в B отобразятся в области в .
Если образ , сформирован, то он отображается точкой цвета, соответствующего сформировавшейся оценке образа . При этом в пространстве обозначатся некоторые цветные области (рис. 5.9.1), иллюстрирующие закон управления.
Рис. 5.9.1.
Заключение.
Основные результаты дипломной работы состоят в следующем:
Разработана концепция и реализовано ядро программной системы СПИНС для построения и исследования нейросетевой реализации прототипов управляющих систем, построенных по методу автономного адаптивного управления, созданного в отделе имитационных систем Института Системного Программирования РАН.
Доработаны аппарат формирования и распознавания образов, алгоритм заполнения базы знаний управляющей системы и алгоритм принятия решений.
Данные алгоритмы протестированы с помощью СПИНС на модельных примерах. Показано, что УС ААУ в рассмотренных примерах находит способ управления предъявленным объектом (средой) и осуществляет управление в соответствии с целевыми функциями.
Благодарности.
Автор выражает благодарность научному руководителю д. ф.-м. н. Александру Аркадьевичу Жданову за ценную поддержку и помощь в данной работе и член.-корр. РАН Виктору Петровичу Иванникову, под руководством которого были приобретены знания и опыт объектно-ориентированного программирования, в частности освоены объектные шаблоны (design patterns), использованные при разработке СПИНС.
... , бистабильность восприятия. В дальнейшем планируется разработка программных моделей более сложных нейронных сетей и их комбинаций с целью получения наиболее эффективных алгоритмов для задачи распознавания образов. Литераура. 1.Горбань А.Н.,Россиев Д.А..Нейронные сети на персональном компьюере. 2. Минский М.Л.,Пайперт С..Персепроны.М.: Мир.1971 3. Розенблатт Ф.Принципы ...
... того привлекает огромный запас контекстных знаний, который системам распознавания образов пока недоступен. 7. Заключение Дан обзор различных нейросетевых методов распознавания изображений. Рассмотрены достоинства и недостатки этих методов при распознавании двумерных и трёхмерных объектов. Указаны проблемы при распознавании трёхмерных объектов. Выделены перспективные направления в распознавании ...
... в популяциях, которые являются существенными для развития. Точный ответ на вопрос: какие биологические процессы существенны для развития, и какие нет? - все еще открыт для исследователей. Реализация генетических алгоритмов В природе особи в популяции конкурируют друг с другом за различные ресурсы, такие, например, как пища или вода. Кроме того, члены популяции одного вида часто конкурируют ...
... на дипломное проектирование. Необходимо разработать программу регистрации процеса производства партий полупроводниковых пластин для использования в автоматизированной системе управления. Программа должна обеспечивать контроль и регистрацию производственного процесса производства партий пластин. Вести учет за прохождением партий полупроводниковых пластин по технологическому маршруту. Разработку ...
0 комментариев