В простейшем случае f cовпадает с линейной формой — указанным аргументом. Т.е. по всем дендритам с учетом их весов производится суммирование и сравнение с порогом. Величина превышения порога является величиной возбуждения нейрона. Она передается через его ветвящийся аксон в соответствии со связями данного нейрона. В некоторых сетях величина возбуждения нейрона может принимать только два значения: возбужден (1), не возбужден (0).
В более сложном случае, например, в одной сети распознавания зрительных образов, где реализовано самоуправление, схема действия нейрона показана на рис. 4.4.2. Это так называемые сигмоидные нейроподобные элементы, более точно моделирующие процессы реального нейрона.
Рис. 4.4.2 Сигмоидный нейроподобный элемент
В сети распознают входной слой, воспринимающий внешние возбуждения (например, на который подается видеоизображение), и выходной слой, определяющий результат решения задачи. Работа сети тактируется для имитации прохождения по ней возбуждения и управления им.
Если это, например, видеоизображение, то его подача на входной слой возбуждает в некоторой конфигурации множество нейронов. Можно так построить сеть, что через некоторое число тактов окажется возбужденным один нейрон выходного слоя.
Существуют два режима работы сети: режим обучения и режим распознавания.
Пусть мы на входной слой подали и поддерживаем некоторый образ, например, букву A.
Через некоторое время возбудится нейрон выходного слоя, который мы можем отметить как образ A. Т.е. его возбужденное состояние мы воспринимаем как ответ: "Это буква A". Введем снова букву A, но с естественными искажениями. Может возбудиться тот же нейрон, но может и другой. Мы хотим "научить" систему, заставить ее ответить, что это — буква A, т.е добиться возбуждения того же нейрона выходного слоя.
Тогда по некоторому алгоритму (один из известных и весьма распространенных алгоритмов называется алгоритмом обратного распространения ошибки; в нем воспроизводится подход, используемый в динамическом программировании) мы меняем веса и пороги в сети на пути прохождения возбуждения так, чтобы заставить возбудиться нужный нейрон.
Так, предъявляя множество эталонов и регулируя параметры сети, мы производим ее обучение данному образу. (Математические проблемы несовместимости управления параметрами для разных эталонов оставим в стороне: в живой природе такой процесс проходит успешно.)
Обучение заканчивается тогда, когда вероятность "узнавания" достигнет требуемого значения, т.е. необходимость корректировки параметров по предъявляемым эталонам возникает все реже. Теперь можно работать в режиме распознавания — в том ответственном режиме, для которого сеть создавалась. Предъявляем сети различные буквы. Можем быть уверены, что с большой вероятностью, если мы предъявим случайно искаженную и даже зашумленную букву A (конечно, в допустимых пределах), сеть ее распознает, т.е. возбудится соответствующий нейрон выходного слоя.
Продолжим обсуждение применимости.
Так, в экспертных системах требуются точные данные о ситуации, чтобы выдать соответствующее ей заключение. Нейронной сети такой подход "чужд". Она выдает ответ на вопрос: "на что похожа данная ситуация" и, следовательно, какое должно быть заключение. Т.е. нейросеть имитирует ассоциативное мышление.
В связи с этим, получают распространение банковские системы (банковские пакеты для РС) — для обоснования финансовых операций, оценки финансового состояния различных фирм, обработки большого количества сделок и т.д. Крупнейшие банки мира используют нейросетевые методы решения своих задач.
Известны применения для оценки состояния электроэнергетической системы, распознавания рукописных текстов и т.д.
Важная область применения — ситуационное управление.
Когда же говорят о shape нейрокомпьютерах, то сегодня это обычные по архитектуре ВС, а чаще — типа РС, на которых реализована нейросетевая задача.
Однако обращает на себя внимание несложность вычислений и возможность распараллеливания.
Известен опыт построения нейросетей на транспьютерах. Нейрон — один транспьютер. Транспьютеры жестко связаны между собой в соответствии с топологией сети.
С развитием микропроцессорных систем это стало представляться невыгодным, неуниверсальным, трудно отслеживающим изменения в сети — количества нейронов и их связей.
5. Системы с массовым параллелизмом (МРР)
Massive Parallel Processing (MPP) — массивно-параллельная архитектура. Особенность архитектуры состоит в том, что память физически разделена. Система строится из отдельных модулей, содержащих процессор, локальный банк операционной памяти, коммуникационные процессоры или сетевые адаптеры, иногда — жесткие диски и/или другие устройства ввода/вывода. По сути, такие модули представляют собой полнофункциональные компьютеры. Доступ к банку операционной памяти из данного модуля имеют только процессоры из этого же модуля. Модули соединяются специальными коммуникационными каналами. Пользователь может определить логический номер процессора, к которому он подключен, и организовать обмен сообщениями с другими процессорами. Используются два варианта работы операционной системы на машинах MPP-архитектуры. В одном полноценная операционная система работает только на управляющей машине (front-end), на каждом отдельном модуле функционирует сильно урезанный вариант ОС, обеспечивающий работу только расположенной в нем ветви параллельного приложения. Во втором варианте на каждом модуле работает полноценная UNIX-подобная ОС, устанавливаемая отдельно.
Проблемы, присущие многопроцессорным системам с общей памятью, простым и естественным образом устраняются в системах с массовым параллелизмом. Компьютеры этого типа представляют собой многопроцессорные системы с распределенной памятью, в которых с помощью некоторой коммуникационной среды объединяются однородные вычислительные узлы (рис.5.1).
Рис. 5.1 Архитектура систем с распределенной памятью.
Каждый из узлов состоит из одного или нескольких процессоров, собственной оперативной памяти, коммуникационного оборудования, подсистемы ввода/вывода, т.е. обладает всем необходимым для независимого функционирования. При этом на каждом узле может функционировать либо полноценная операционная система (как в системе RS/6000 SP2), либо урезанный вариант, поддерживающий только базовые функции ядра, а полноценная ОС работает на специальном управляющем компьютере (как в системах Cray T3E, nCUBE2).
Процессоры в таких системах имеют прямой доступ только к своей локальной памяти. Доступ к памяти других узлов реализуется обычно с помощью механизма передачи сообщений. Такая архитектура вычислительной системы устраняет одновременно как проблему конфликтов при обращении к памяти, так и проблему когерентности кэш-памяти. Это дает возможность практически неограниченного наращивания числа процессоров в системе, увеличивая тем самым ее производительность. Успешно функционируют MPP системы с сотнями и тысячами процессоров (ASCI White - 8192, Blue Mountain - 6144). Производительность наиболее мощных систем достигает 10 триллионов оп/сек (10 Tflops). Важным свойством MPP систем является их высокая степень масштабируемости. В зависимости от вычислительных потребностей для достижения необходимой производительности требуется просто собрать систему с нужным числом узлов.
На практике все, конечно, гораздо сложнее. Устранение одних проблем, как это обычно бывает, порождает другие. Для MPP систем на первый план выходит проблема эффективности коммуникационной среды. Самым простым и наиболее эффективным способом объединение множества узлов было бы соединение каждого процессора с каждым. Но тогда на каждом узле потребовалось бы 999 коммуникационных каналов, желательно двунаправленных. Очевидно, что это нереально. Различные производители MPP систем использовали разные топологии. В компьютерах Intel Paragon процессоры образовывали прямоугольную двумерную сетку. Для этого в каждом узле достаточно четырех коммуникационных каналов. В компьютерах Cray T3D/T3E использовалась топология трехмерного тора. Соответственно, в узлах этого компьютера было шесть коммуникационных каналов. Фирма nCUBE использовала в своих компьютерах топологию n-мерного гиперкуба. Подробнее на этой топологии мы остановимся в главе 4 при изучении суперкомпьютера nCUBE2. Каждая из рассмотренных топологий имеет свои преимущества и недостатки. Отметим, что при обмене данными между процессорами, не являющимися ближайшими соседями, происходит трансляция данных через промежуточные узлы. Очевидно, что в узлах должны быть предусмотрены какие-то аппаратные средства, которые освобождали бы центральный процессор от участия в трансляции данных. В последнее время для соединения вычислительных узлов чаще используется иерархическая система высокоскоростных коммутаторов, как это впервые было реализовано в компьютерах IBM SP2. Такая топология дает возможность прямого обмена данными между любыми узлами, без участия в этом промежуточных узлов.
Системы с распределенной памятью идеально подходят для параллельного выполнения независимых программ, поскольку при этом каждая программа выполняется на своем узле и никаким образом не влияет на выполнение других программ. Однако при разработке параллельных программ приходится учитывать более сложную, чем в SMP системах, организацию памяти. Оперативная память в MPP системах имеет 3-х уровневую структуру: