ИНС в вычислительных системах
Развитие и внедрение в практику новых информационных технологий рассматривается как комплексный системный подход к автоматизации процессов манипулирования с информацией в различных аспектах (получения, хранения, обработки, передачи, использования информации). Это неизбежно приводит к более широкой трактовке многих понятий.
Так, под вычислениями уже подразумеваются любые процедуры, связанные с получением, хранением, обработкой, передачей и использованием информации. Распознать (вычислить) на основании показаний датчиков системы управления технологической линией возникшую нештатную ситуацию, спланировать (вычислить) на основании полученных к текущему моменту результатов очередной шаг процесса проектирования сложного изделия, осуществить цифровую обработку принятых непрерывных сигналов, «вычислить» преступника – вот некоторые из примеров процедур, иллюстрирующих широту понятия вычислений.
Более широкой трактовки требует и понятие вычислительной системы (ВС). Очевидно, оно должно объединять в себе любые аппаратно-программные системы, манипулирующие с информацией хотя бы в одном из перечисленных выше аспектов. Это могут быть простейшие системы передачи данных или сложнейшие системы в виде взаимосвязанной совокупности одного или многих компьютеров или процессоров (возможно, базирующихся на различных принципах организации вычислений), многоуровневой памяти, периферийных устройств и программного обеспечения, управляющего аппаратными средствами и расширяющего их возможности в плане реализации информационно-вычислительных процессов различного характера. Под последними понимаются любые процессы, связанные с приобретением, хранением, обработкой, передачей и использованием информации.
Аналоговая ВС, оперируя непрерывными физическими сигналами, соответствующими переменным реализуемых математических моделей, обладает колоссальным быстродействием в силу существенного параллелизма вычислений (все функциональные блоки аналогового процессора принимают одновременное участие в вычислительном процессе). Однако ей присущ ряд недостатков. Это отсутствие универсальности, гибкости в плане переориентации системы на другую задачу (класс задач). Это проблемы обеспечения требуемой точности вычислений, которые могут возникать на определенных классах задач. Это низкая помехоустойчивость системы, функционирующей в условиях существенного влияния внешних факторов (температурных режимов, уровня радиации и т.п.).
Последовательный цифровой принцип архитектуры фон Неймана, базирующейся на формальном аппарате алгебры логики, отличается универсальностью. Он обеспечивает необходимую точность вычислений, высокую надежность и как пути повышения производительности использует:
· увеличение тактовых частот системы;
· конвейеризацию выполнения инструкций;
· распараллеливание вычислительных структур на уровнях микрокоманд, команд и алгоритмов;
а также ряд других архитектурных усовершенствований, способствующих повышению эффективности вычислительного процесса.
Универсальность цифрового микропроцессора, возможность обеспечения практически любой точности, более высокая помехоустойчивость определяют то предпочтение, которое отдано в современной практике цифровым ВС.
Вместе с тем заслуживает внимания успешно развивающийся альтернативный подход к организации вычислений, базирующийся на применении ИНС как основы существенно параллельных вычислительных систем — нейрокомпьютеров (нейропроцессоров). В идеальной, с точки зрения быстродействия, реализации это аналоговый подход с присущей ему высокой скоростью вычислений, но вместе с тем предоставляющий возможность достижения на определенных классах задач приемлемой точности путем:
· повышения мощности нейронной сети (увеличения числа нейронов, количества слоев);
· совершенствования ее архитектуры;
· применения эффективных процедур обучения;
· сочетания с элементами цифровой вычислительной техники, т.е. создания гибридной архитектуры, комбинирующей в себе аналоговый и цифровой принципы организации вычислений.
Последнее позволяет также придать определенную универсальность, гибкость нейрокомпьютеру, хотя и уводит от существенного параллелизма.
ВС, реализующую параллелизм как результат представления задачи в нейросетевом базисе, (нейрокомпьютер) следует рассматривать как гибридную систему, к организации которой можно подойти с разных позиций.
Наиболее доступный способ — полностью эмулировать систему в среде достаточно мощного универсального цифрового компьютера, а лучше —цифровой системы параллельного действия (мультипроцессора, мультикомпьютера). Однако не для всех задач такой вариант обеспечит необходимый эффект. Поэтому его придерживаются в основном при создании специализированных нейропакетов, ориентированных на определенные классы задач. Информацию по некоторым из них можно получить, обратившись к источнику [12].
Более эффективный способ предполагает создание нейроплат, реализующих нейросетевые алгоритмы решения задач определенной прикладной направленности. Эти платы включаются в состав универсальных цифровых компьютеров на правах сопроцессоров и отличаются друг от друга своей архитектурой и используемой элементной базой. Основным элементом нейроплаты является нейрочип, реализующий нейронную сеть определенной архитектуры. Он может быть цифровым, аналоговым или комбинировать в себе цифровую и аналоговую элементную базу. Аналоговый нейрочип позволяет добиться максимального быстродействия, ибо реализует существенный параллелизм, свойственный аналоговому принципу вычислений.
Реализация нейрочипов в виде заказных или полузаказных СБИС/УБИС может оказаться слишком накладной и неудобной в плане обеспечения необходимой гибкости системы. Гораздо дешевле и удобнее использовать для этих целей СБИС/УБИС программируемой логики (CPLD, FPGA, FLEX) [18].
Выбор того или иного способа реализации нейрокомпьютера во многом зависит от его функциональной организации, т.е. от состава включаемых в него функциональных систем, подсистем и модулей, а также принципов их взаимодействия между собой.
С точки зрения функциональной организации гипотетический нейрокомпьютер должен иметь в своем составе ряд компонентов, основное место среди которых занимает нейронная сеть. Если говорить об универсальном нейрокомпьютере, то в его составе должна быть библиотека нейронных сетей, включающая сети различных архитектур, позволяющие создавать нейросреду для моделирования задач разнообразного характера. Такая библиотека должна обладать свойством открытости, т.е. допускать возможность включения в ее состав новых структур нейронных сетей без изменения архитектуры ВС в целом. Библиотеку нейронных сетей может заменить (или дополнить) генерируемая каким-либо образом нейронная сеть произвольной конфигурации.
Как неотъемлемую часть нейрокомпьютера следует рассматривать механизм обучения нейронных сетей.
Концепция обучения с супервизором предполагает наличие некоторой внешней компоненты, поставляющей входные и целевые образы (шаблоны) для обучения сети. Значения синаптических весов и порогов активационных функций нейронов, обеспечивающие настройку сети на воспроизведение и обобщение заданных шаблонов, определяются как результат решения задачи минимизации отклонения реального выхода сети от желаемого. Для решения этой задачи можно использовать известные методы поисковой оптимизации, обладающие способностью эффективно работать на существенно нелинейных, овражных и многоэкстремальных функциях с большим числом независимых переменных. В определенной мере таким требованиям отвечают эволюционно-генетические алгоритмы.
При обучении нейронной сети путем ее самоорганизации (без супервизора) в качестве обучающей выборки используются только входные образы. При этом для адаптации (коррекции) параметров сети применяются некоторые правила (эвристики), оперирующие с состояниями нейронов, вызываемыми теми или иными предъявляемыми образами.
Отсутствие единого формального метода и существование множества различных процедур обучения конкретных типов нейронных сетей требует наличия в механизме обучения определенным образом организованной библиотеки процедур обучения.
Важной компонентой механизма обучения являются средства формирования обучающей выборки. На них возлагаются функции получения, обработки и приведения к необходимому формату (воспринимаемому нейронной сетью) информации, используемой для ее обучения. Очевидно, это должен быть модуль, включающий некоторую инвариантную часть, реализующую последовательную подачу на входы нейронной сети обучающих примеров в требуемом формате, и способный использовать встраиваемые процедуры, выполняющие специфические для данной задачи преобразования обучающей информации.
В архитектуре нейрокомпьютера должен быть также предусмотрен интерпретатор выходных сигналов сети. Его назначение состоит в приведении получаемых сетью результатов к форматам, воспринимаемым пользователем и механизмом обучения. Механизм обучения использует эти результаты для формальной оценки степени их отклонения от желаемых.
Такие оценки могут формироваться различным образом. Они выполняют роль критериев, по которым подбираются (корректируются) значения настраиваемых параметров нейронной сети (веса синаптических связей, пороги активационных функций нейронов и, возможно, параметры активационных функций). Для придания системе гибкости в плане обеспечения возможности оперативной перестройки с одного критерия на другой данная функция (функция оценки) должна быть выделена в отдельный модуль формирования критерия обучения. На данный модуль может быть возложена также функция отслеживания и наглядного представления пользователю динамики изменения значений критерия обучения.
Способность механизма обучения рационально использовать имеющиеся в его распоряжении средства (включая библиотеку процедур обучения) во многом определяется наличием в его архитектуре модуля интеллектуальной поддержки процесса обучения. Этот модуль может быть организован как система, основанная на знаниях. На эту систему могут быть возложены функции отслеживания состояния процесса обучения и выработки рекомендаций относительно:
· коррекции сценария обучения;
· смены критериев оценки;
· декомпозиции варьируемых переменных;
· структурного изменения нейронной сети при вырождении (приближении к нулю) значений некоторых синаптических весов;
· коррекции активационных функций нейронов при попадании их в состояние насыщения и т.п.
Знания, используемые системой для выполнения этих функций, могут быть представлены, например, в виде набора продукционных правил. Не исключено применение обученных нейронных сетей для выполнения функций хранения и интерпретации знаний.
Эффективность нейрокомпьютера, включающего рассмотренные выше компоненты, во многом зависит от его реализации. Существенную роль в этой реализации, очевидно, должны играть цифровые составляющие.
Структурный синтез цифровых