Вычислительные системы нетрадиционной архитектуры
Нейронные сети и нейрокомпьютеры
Применяемые нейросети являются моделями нейросетей живых организмов, принципы которых были известны уже в 1940-1950 годах, а с развитием микроэлектроники стали реализуемыми.
Нейросети как один из основных средств решения задач искусственного интеллекта (ИИ) привлекательны высокой производительностью при решении задач экспертных систем, распознавания образов, ситуационного управления, оптимизационных, — т.е. всех тех задач, которые мы привыкли решать не методом расчета, а на основе опыта, самообучения, наконец, интуиции. Высокая производительность, обусловленная самим методом, дополнительно достигается за счет больших возможностей параллельной обработки нейросети, как будет показано далее.
Предварительным знакомством с системами ИИ можно считать рассмотрение ассоциативных ВС. Характерно то, что исследование и воспроизводство нейросетей первоначально проводились в рамках решения задачи построения ассоциативной памяти в совокупности с операциями ее заполнения, ведения и использования.
Принципы нейросети. Нейросеть содержит узлы — аналоги нервных клеток и их соединения — синапсические связи. Предполагается, что в человеческом мозге свыше 100 млрд. нейронов.
Фрагмент нейросети представлен на рис. 9.8.
Либо каждый нейрон управляем извне, либо сети строятся по принципу самоуправления, используя обратные связи. А именно, можно регулировать значения весов синапсических связей {wi} и значения порогов hi. Функции f бывают различны, но просты по объему вычислений.
В простейшем случае f cовпадает с линейной формой — указанным аргументом. Т.е. по всем дендритам с учетом их весов производится суммирование и сравнение с порогом. Величина превышения порога является величиной возбуждения нейрона. Она передается через его ветвящийся аксон в соответствии со связями данного нейрона. В некоторых сетях величина возбуждения нейрона может принимать только два значения: возбужден (1), не возбужден (0).
В более сложном случае, например, в одной сети распознавания зрительных образов, где реализовано самоуправление, схема действия нейрона показана на рис. 9.9. Это так называемые сигмоидные нейроподобные элементы, более точно моделирующие процессы реального нейрона.
В сети распознают входной слой, воспринимающий внешние возбуждения (например, на который подается видеоизображение), и выходной слой, определяющий результат решения задачи. Работа сети тактируется для имитации прохождения по ней возбуждения и управления им.
Если это, например, видеоизображение, то его подача на входной слой возбуждает в некоторой конфигурации множество нейронов. Можно так построить сеть, что через некоторое число тактов окажется возбужденным один нейрон выходного слоя.
Существуют два режима работы сети: режим обучения и режим распознавания.
Пусть мы на входной слой подали и поддерживаем некоторый образ, например, букву A.
Через некоторое время возбудится нейрон выходного слоя, который мы можем отметить как образ A. Т.е. его возбужденное состояние мы воспринимаем как ответ: "Это буква A ". Введем снова букву A, но с естественными искажениями. Может возбудиться тот же нейрон, но может и другой. Мы хотим "научить" систему, заставить ее ответить, что это — буква A, т.е добиться возбуждения того же нейрона выходного слоя.
Тогда по некоторому алгоритму (один из известных и весьма распространенных алгоритмов называется алгоритмом обратного распространения ошибки ; в нем воспроизводится подход, используемый в динамическом программировании) мы меняем веса и пороги в сети на пути прохождения возбуждения так, чтобы заставить возбудиться нужный нейрон.
Так, предъявляя множество эталонов и регулируя параметры сети, мы производим ее обучение данному образу. (Математические проблемы несовместимости управления параметрами для разных эталонов оставим в стороне: в живой природе такой процесс проходит успешно.)
Обучение заканчивается тогда, когда вероятность "узнавания" достигнет требуемого значения, т.е. необходимость корректировки параметров по предъявляемым эталонам возникает все реже. Теперь можно работать в режиме распознавания — в том ответственном режиме, для которого сеть создавалась. Предъявляем сети различные буквы. Можем быть уверены, что с большой вероятностью, если мы предъявим случайно искаженную и даже зашумленную букву A (конечно, в допустимых пределах), сеть ее распознает, т.е. возбудится соответствующий нейрон выходного слоя.
Продолжим обсуждение применимости.
Так, в экспертных системах требуются точные данные о ситуации, чтобы выдать соответствующее ей заключение. Нейронной сети такой подход "чужд". Она выдает ответ на вопрос: "на что похожа данная ситуация" и, следовательно, какое должно быть заключение. Т.е. нейросеть имитирует ассоциативное мышление.
В связи с этим, получают распространение банковские системы (банковские пакеты для РС) — для обоснования финансовых операций, оценки финансового состояния различных фирм, обработки большого количества сделок и т.д. Крупнейшие банки мира используют нейросетевые методы решения своих задач.
Известны применения для оценки состояния электроэнергетической системы, распознавания рукописных текстов и т.д.
Важная область применения — ситуационное управление.
Когда же говорят о shape нейрокомпьютерах, то сегодня это обычные по архитектуре ВС, а чаще — типа РС, на которых реализована нейросетевая задача.
Однако обращает на себя внимание несложность вычислений и возможность распараллеливания.
Известен опыт построения нейросетей на транспьютерах. Нейрон — один транспьютер. Транспьютеры жестко связаны между собой в соответствии с топологией сети.
С развитием микропроцессорных систем это стало представляться невыгодным, неуниверсальным, трудно отслеживающим изменения в сети — количества нейронов и их связей.
Здесь целесообразно вернуться к рассмотрению ВС типа SPMD в качестве нейропроцессора. Она идеально соответствует требованиям задачи, если производить распределение нейронов между процессорами. Легко просматривается план обработки нейросети как в режиме обучения (например, при реализации метода "обратного прохождения ошибки"), так и в режиме распознавания.