Несколько десятилетий назад было положено начало исследованиям методов обработки информации, называемых сегодня нейросетевыми. С течением времени интерес к нейросетевым технологиям то ослабевал, то вновь возрождался. Такое непостоянство напрямую связано с практическими результатами проводимых исследований. Цель данной статьи - показать эффективность использования имеющихся на сегодня нейросетевых технологий в решении практических задач. При этом основное внимание уделяется описанию конкретных приложений, демонстрирующих результаты, которые затруднительно получить традиционными способами. Рассматриваются также вопросы разработки и практического использования аппаратных и программных средств поддержки нейросетевых методов. Предложенные в статье нейросетевые методы обработки информации и средства их программно-аппаратной поддержки являются оригинальными разработками НТЦ "Модуль".
Сегодня исследования в области искусственных нейронных сетей (ИНС) обрели заметную динамику. Подтверждением тому служит факт финансирования этих работ в США, Японии и Европе, объем которого исчисляется сотнями миллионов долларов [1]. Растет число публикаций по тематике ИНС, широк и их спектр: от монографий и статей, единодушно признанных основополагающими в данной области [2-5], до обзоров, посвященных прикладным вопросам [6]. Издается несколько журналов, посвященных тематике ИНС, таких, например, как IEEE Transaction on NeuralNetworks, Neural Networks, Neural Computing & Applications. В нашей стране периодически выходят в свет тематические выпуски журнала "Приборостроение" и "Нейрокомпьютер".
Вместе с тем реальные результаты практического применения нейросетевых технологий, особенно у нас, пока немногочисленны. Отчасти это объясняется следующими причинами:
- использование аппарата ИНС имеет свои особенности, которые несвойственны традиционным методам;
- путь от теории нейронных сетей к их практическому использованию требует соответствующей адаптации методологий, отработанных первоначально на модельных задачах;
- вычислительная техника с традиционной архитектурой не лучшим образом приспособлена для реализации нейросетевых методов.
Так, например, один из известных нейросетевых коммерческих продуктов -пакет "BrainMaker" фирмы California Scientific Software принципиально рассчитан на широкий круг пользователей и используется, в частности, в качестве инструмента менеджмента. Однако максимальный эффект от применения этого пакета может быть получен лишь опытным пользователем, знакомым с основами теории нейронных сетей.
Задачи обработки видеоизображений
Одной из наиболее сложных и актуальных задач обработки видеоизображений, представленных последовательностью оцифрованных кадров, является проблема выделения и распознавания движущихся объектов в условиях действия различного рода помех и возмущений. Для ее решения разработана специализированная система, которая осуществляет выделение изображений движущихся объектов на сложном зашумленном фоне, фильтрацию помех, скоростную фильтрацию, отделение объектов от фона, оценку скорости каждого объекта, его идентификацию и сопровождение. Система построена с применением нейросетевых методов и работает с реальными данными телевизионной системы (25 кадров/с, 320х200 пикселов).
Выделение изображений движущихся объектов осуществляется путем построения оценки поля скоростей с помощью многослойной локально-связной нейронной сети оригинальной конструкции. Размерность сети для изображения 320х200 пикселов составляет несколько миллионов нейронов и примерно вчетверо больше синапсов.
Распознавание выделенных силуэтов производится на самоорганизующейся нейронной сети, предварительно обученной на изображениях объектов рассматриваемых классов. Система инвариантна к произвольному движению фона, зашумлению белым шумом до 10%. Вероятность правильного распознавания составляет около 90%.
Система реализована на обыкновенном ПК и специально разработанном программно-аппаратном комплексе, обеспечивающем обработку информации в реальном времени.
Задачи обработки статических изображений
Не менее сложными являются задачи выделения и распознавания объектов на статическом тоновом изображении. В частности, подобные задачи возникают при автоматической обработке спутниковых изображений земной поверхности. Для их решения разработана и реализована на ПК автоматизированная система анализа изображений земной поверхности, полученных в оптическом диапазоне с искусственного спутника Земли. Система в автоматическом режиме обеспечивает выделение на обрабатываемых изображениях объектов заданных классов: дорожной сети, кварталов с характерной застройкой, аэродромов и стоящих на них самолетов.
Нейросетевые принципы, заложенные в систему, позволяют проводить ее обучение и переобучение. Система инвариантна к яркостным характеристикам объектов.
Задачи обнаружения и классификации летательных аппаратов по звуку
Использование нейросетевых технологий для анализа акустического излучения демонстрирует система обнаружения и распознавания летательных аппаратов по издаваемому ими звуку. Для выделения сигнала с заданного направления применяется фазированная антенная решетка с широкополосными сигналами на выходе. Эти сигналы подвергаются предобработке и в оцифрованном виде подаются на вход предварительно обученной нейронной сети для распознавания. Для демонстрации возможностей системы создана специальная программа.
Статистическое исследование с использованием реальных данных, имеющихся в распоряжении разработчика, показало, что система позволяет распознавать объекты различных классов с вероятностью 80%.
Задачи комбинаторной оптимизации
Высокая степень распараллеленности обработки информации позволяет успешно применять нейросетевые технологии для решения задач комбинаторной оптимизации. Среди оптимизационных задач, эффективно решаемых нейросетевыми методами, в первую очередь следует отметить задачи транспортно-ориентированной оптимизации (например, задача коммивояжера и ее модификации) и задачи распределения ресурсов (задача о назначениях, задача целераспределения и другие).
Решение таких задач традиционными методами математического программирования, большинство из которых изначально ориентировано на вычислительную технику с последовательной архитектурой, сопряжено с большими временными затратами, неприемлемыми для многих приложений. При соответствующей аппаратной поддержке нейросетевые методы позволяют значительно повысить оперативность решения данного класса задач, сохраняя высокую точность результата. В частности, для задач распределения разнородных ресурсов по объектам назначения близкие к оптимальным решения могут быть получены на ускорительной плате с 4 процессорами TMS320C40 менее чем за 0,3 секунды. При этом увеличение количества параллельно работающих процессоров позволяет обеспечить рост производительности почти пропорциональный числу процессоров, что подтверждается экспериментально полученными графиками, представленными на рис. 1.
Рисунок 1.
Графики среднего времени решения задачи распределения ресурсов на одном и четырех процессорах TMS320C40.Многопроцессорные ускорительные платы
Одной из особенностей нейросетевых методов обработки информации является высокая параллельность вычислений и, следовательно, целесообразность использования специальных средств аппаратной поддержки. В значительной мере успех в решении рассмотренных задач обусловлен использованием оригинальных ускорительных плат. Такие платы работают параллельно с процессором обыкновенного ПК и несут на себе основную вычислительную нагрузку, превращая основной процессор компьютера в устройство управления и обслуживания мощных вычислительных средств, расположенных на ускорительной плате.
В НТЦ "Модуль" разработаны многопроцессорные ускорительные платы МЦ5.001 и МЦ5.002. Первая из них имеет в своем составе 4 микропроцессора TMS320C40 с тактовой частотой 50 МГц и пиковой производительностью 275 MIPS. Каждый процессор имеет свою локальную статическую память объемом 1 Мбайт. К 2 процессорам дополнительно подключены 2 блока динамической памяти объемом 16 Мбайт каждый. К одному из процессоров подключена также статическая память объемом 1 Мбайт, используемая для обмена данными с ПК. Процессоры соединены друг с другом специальными высокоскоростными каналами с пропускной способностью 20 Мбайт/с каждый. Наращивание и комплексирование плат осуществляется на материнской плате ПК с помощью шины ISA.
Ускорительная плата МЦ5.002 содержит 6 процессоров TMS320C40 и выполнена в конструктиве VME, что позволяет использовать ее в бортовых системах, расположенных на летательном аппарате.
Подробное описание ускорительных плат МЦ5.001 и МЦ5.002, результаты их тестирования и сравнения с аналогами приведены в [7,8].
Нейропроцессор
Ускорительные платы МЦ5.001 и МЦ5.002 повышают эффективность использования нейросетевых методов обработки информации. Однако существующая тенденция к возрастанию объемов вычислений приводит к необходимости дальнейшего наращивания производительности нейровычислителей. В связи с этим в НТЦ "Модуль" разработан собственный нейропроцессор [9], совмещающий в себе как универсальный вычислитель, так и специализированное вычислительное устройство, ориентированное на выполнение базовых нейросетевых операций.
Нейропроцессор состоит из двух основных блоков: скалярного, выполняющего роль универсального вычислительного устройства, и векторного, ориентированного на выполнение векторно-матричных операций. Скалярное устройство обеспечивает интерфейсы с памятью и 2 коммуникационными портами, позволяющими объединять процессоры в вычислительные сети различной конфигурации. Основное назначение скалярного устройства - подготовка данных для векторной части процессора. Для этого существует несколько режимов адресации, интерфейс с памятью, наборы арифметических и логических операций, возможность работы с регистровыми парами. Скалярное устройство имеет адресных регистров и такое же количество регистров общего назначения разрядностью 32 бита каждый.
Центральным звеном нейропроцессора является целочисленное векторное устройство, обладающее возможностями обработки данных различной разрядности. Оно оперирует 64-разрядными словами, которые могут быть разбиты на целочисленные составляющие практически произвольной разрядности в пределах от 1 до 64 бит. На каждую инструкцию векторного процессора затрачивается от 1 до 32 тактов. При этом одновременно обрабатывается до 32 64-разрядных слов. Для организации непрерывной подачи данных в операционное устройство (ОУ) векторного процессора используются внутренние блоки памяти, называемые векторными регистрами. Они выполняют роль буфера операндов, буфера для хранения матрицы весов, очереди результатов. При выполнении команды в операционном устройстве операнды по очереди извлекаются из внутреннего буфера и подаются на один из входов ОУ. Внутри ОУ производятся вычисления, а их результат заносится в буфер результатов. Векторные инструкции, хотя и занимают несколько тактов процессорного времени, могут выполняться параллельно с инструкциями скалярного процессора.Таким образом, процессор рассчитан на высокопроизводительную обработку больших массивов целочисленных данных.
Нейропроцессор выполнен по технологии 0,5 мкм. Его тактовая частота 33 МГц. На специальных векторно-матричных операциях он дает увеличение производительности в десятки раз по сравнению с процессором TMS320C40. Благодаря наличию коммуникационных портов с интерфейсом, идентичным портам TMS320C40, нейропроцессор может быть интегрирован в гетерогенную многопроцессорную систему. Примеры построения подобных систем приводятся в работе [9].
Для нейропроцессора разработан полный пакет системного программного обеспечения, включая символьный отладчик, и ряд прикладных библиотек, в частности библиотеку векторно-матричных вычислений.
Особенности программирования средств аппаратной поддержки нейровычислений
Специфика рассматриваемых вычислительных средств и решаемых задач обуславливает новые требования к технике программирования. Программисту приходится оперировать другими категориями, по-другому строить логику программы, решать задачи, которые не могли возникнуть при традиционном программировании. Перед ним стоит задача - максимально эффективно использовать ресурсы вычислительной системы, правильно распределить нагрузку между процессорами, задействовать их специфичные возможности.
Здесь на первый план выходят методы параллельной обработки данных. Причем слова "параллельная обработка" можно понимать как обработку на параллельно работающих процессорах, так и одновременную обработку нескольких элементов данных на одном процессоре. Современный процессор позволяет выполнять несколько инструкций за один такт, что заставляет программиста продумывать как способы организации самих вычислений, так и способы подготовки данных, для того чтобы параллельно выполняемые процессы не блокировали друг друга.
Трудности, возникающие при программировании многопроцессорных систем, хорошо известны: синхронизация параллельных процессов, механизмы обмена данными, проблемы "критических участков", когда несколько процессов задействуют одни и те же ресурсы. Еще одной важной особенностью современных процессоров является высокая разрядность операндов, например 64 бита, что позволяет размещать в них по нескольку малоразрядных элементов данных и обрабатывать их параллельно.
Примером эффективного использования отмеченной особенности современных процессоров является технология MMX, где 64-разрядный регистр разбивается на 8 независимых байтов или на 4 16-битных слова, которые обрабатываются параллельно. Независимость элементов состоит в том, что при смещениях или вычитании не происходит заимствования битов у соседних элементов. В НТЦ "Модуль" пошли еще дальше - в кристалл заложена функция произвольного разбиения 64-разрядного слова на элементы разрядностью от 1 до 64, а также возможность располагать в одном длинном слове данные разной разрядности, разбивая слово произвольным образом. В результате программист в зависимости от разрядности исходных данных может варьировать количество параллельно обрабатываемых элементов.
НТЦ "Модуль", Москва (095)152-4621
-
[1] Яфраков М.Ф., Корчагина Л.И. Особенности комплексного подхода к нейрокомпьютингу. Известия вузов. Приборостроение. 1997. Т 40. # 3.
[2] Hebb D.O. The organization of behavior. New York. 1949.
[3] McCulloch W.S., Pitts W. A logical calculus of the ideas immanentin nervous activity. Bulletin of Mathematical Biophisics. 1943. Vol.5.
[4] Rosenblatt F. The perseptron: a probabilistic model forinformation storage and organization in the brain. PsychologicalReview. 1958. Vol. 65.
[5] Minsky M., Papert S. Perseptrons. Cambridge, Massachusetts. 1969.
[6] Галушкин А.И. Нейрокомпьютеры в разработках военной техники США. Зарубежная радиоэлектроника. 1995. i 5.
[7] Аппаратная реализация ускорителя нейровычислений // А.В. Бочаров, А.С. Грошев, М.В. Захватов и др. Известия вузов. Приборостроение. 1995. Т. 38. # 1-2.
[8] Погорилый А.И. Многопроцессорные наращиваемые вычислительные модули на базе микропроцессоров TMS320C40. Известия вузов. Приборостроение. 1996. Т 39. # 7.
[9] Виксне П.Е., Фомин Д.В., Черников В.М. Однокристальный цифровой процессор с переменной разрядностью операндов. Известия вузов. Приборостроение. 1996. Т 39. # 7.