Нейрокомпьютер и основы нейроинформатики
В 1992 году программа «Пятое поколение компьютеров» была завершена и ее сменила международная программа «Вычисления в реальном мире» (RWC — Real World Computing). В первую очередь речь идет о том, чтобы дать вычислительным и управляющим системам возможность самостоятельно, без помощи «переводчика» — человека воспринимать воздействия внешнего мира и действовать в нем. Авторы программы огромную роль (до 30-40% ее содержания) отводят исследованию естественных и созданию искусственных нейросетевых систем.
Нейробионический подход к проблеме искусственного интеллекта основывается на использовании принципов работы мозга для конструирования интеллектуальных систем. Его привлекательность и перспективность обусловливаются тем, что на функциональном уровне нервная система обеспечивает недоступную (по крайней мере, на текущий момент) для технических устройств способность живых существ адаптироваться в реальном мире, а на «технологическом» уровне — уникальные возможности по быстродействию и надежности.
Имитация работы мозга на ЭВМ (традиционно-последовательной) затруднена принципиальными различиями между конструкциями мозга и ЭВМ. В частности, из-за того, что когда одно устройство моделирует другое, сильно от него отличающееся, процесс моделирования протекает очень медленно. На ЭВМ достаточно просто моделируются формально-логические элементы мышления, а моделирование способности человека (и животных) адаптироваться в изменяющихся и слабо формализованных условиях реального мира сопряжено со значительными сложностями, несмотря на то, что уровень технологии в микроэлектронике позволяет превзойти по плотности упаковки вычислительных элементов и по экономичности энергопотребления нервную ткань. Как раз именно эту возможность адаптироваться к постоянно изменяющимся внешним условиям и необходимо обеспечить системам, претендующим на «интеллектуальность».
В настоящее время сформировалось новое научно-практическое направление — создание нейрокомпьютера, представляющего собой ЭВМ нового поколения, качественно отличающуюся от предыдущих отсутствием заранее созданных алгоритмических программ и способностью к самоорганизации и обучению. Основу нейрокомпьютеров составляют нейронные сети — иерархически организованные параллельные соединения адаптивных элементов — нейронов, которые обеспечивают взаимодействие с объектами реального мира так же, как и биологическая нервная система.
Основные отличия нейрокомпьютера от обычной ЭВМ:
· параллельная работабольшого числа простых вычислительных устройств обеспечивает огромное быстродействие;
· нейронная сеть способна к обучению, которое осуществляется путем настройки параметров сети;
· высокая отказоустойчивость и помехоустойчивостьсети за счет того, что знания как бы «размыты» в ней и обрыв какой-то связи в общем случае не является достаточным условием отказа, а устранение помех осуществляется за счет «скатывания» поступившего искаженного образа к ближайшему имеющемуся образцу с наименьшим энергетическим уровнем;
· простое строение отдельных нейронов позволяет использовать новые физические принципы обработки информации для аппаратных реализаций нейросетей.
Нейрокомпьютеры создаются для решения определенного фиксированного круга задач. По-видимому, широкое распространение получат устройства, основанные на комбинированных технологиях, включающие по мере необходимости те или иные нейропроцессорные устройства.
В настоящее время дальнейшее повышение производительности компьютеров связывают с системами, обладающими свойствами массового параллелизма. Одна из таких систем — нейрокомпьютер, основу которого составляет искусственная нейросетъ,реализованная аппаратно на электронных или оптических элементах. В отличие от микропроцессора, имеющего полный набор команд, каждый нейрон, из которых состоит нейросеть, представляет собой лишь простейший аналоговый преобразующий элемент. Однако коллективные свойства сети, содержащей миллионы нейронов, уже не являются тривиальными. Искусственная нейросеть — принципиально параллельная структура, естественным образом реализующая принцип потока данных.
Термин «нейронные сети» сформировался в 40-х годах XX века в среде исследователей, изучавших принципы организации и функционирования биологических нейронных сетей. В настоящее время в области науки нейроинформатики разработан ряд моделей переработки информации, называемых искусственными нейронными сетями или просто нейронными сетями. Обычно под нейронными сетями понимается набор элементарных нейроподобных преобразователей информации — нейронов, соединенных друг с другом каналами обмена информацией для их совместной работы.
Предметом исследования нейроинформатики является решение задач переработки информации с помощью нейросетей в различных предметных областях, особенно в плохо формализуемых, где существующие модели субъективны и неадекватны. Наиболее впечатляющие результаты использования нейросетей достигнуты при распознавании образов, при построении ассоциативной памяти, при создании самообучающихся экспертных систем, при решении оптимизационных задач большой размерности.
Нейроинформатика находится в стадии интенсивного развития. Ежегодно про водится ряд международных конференций по нейросетям, число специализированных периодических изданий более 20. В России в настоящее время издается журнал «Нейрокомпьютер» (Министерство экономики). В 1999 г. в Красноярске состоялся VII Всероссийский семинар « Нейроинформатика и ее приложения».
К настоящему моменту предложено и изучено большое количество моделей нейросетей. Однако основными являются только три принципиально различных типа сетей, большинство остальных распространенных нейросетей состоят из элементов, характерных для сетей трех основных типов:
· сетей прямого распространения (многослойных персептронов);
· полносвязных сетей Хопфилда;
· карт (решеток) Кохонена.
НЕЙРОН, НЕЙРОННЫЕ СЕТИ, ОСНОВНЫЕ ПОНЯТИЯ
Нейрон (формальный, искусственный) —элементарный преобразующий элемент, как составная часть нейросети, в свою очередь, состоит из элементов трех типов и выполняет две основные функции — взвешенное суммирование и нелинейное пре образование. Элементы нейрона — умножители (синапсы), сумматор и нелинейный преобразователь. Синапсы осуществляют связь между нейронами, умножают входной сигнал (xj ) на число, характеризующее силу связи, — вес синапса ( wj ). Сумма тор выполняет сложение сигналов, поступающих по синаптическим связям от других нейронов и внешних входных сигналов. Нелинейный преобразователь выполняет нелинейную функцию одного аргумента — выхода сумматора. Таким образом, нейрон в целом реализует скалярную функцию векторного аргумента.
Функционирование нейрона можно разбить на два такта (в соответствии с двумя его функциями):
1. В сумматоре вычисляется величина возбуждения, полученного нейроном, (для простоты смещение w0 не учитывается).
2. Возбуждение пропускается через преобразующую (активационную) функцию f(•), в результате чего определяется выходной сигнал
На рис. 76.2 представлена укрупненная схема нейрона.
Рис. 6.2. Структурная схема нейрона
Наиболее часто используются следующие функции активации:
1. Пороговая (ступенчатая) функция где θ — порог срабатывания нейрона.
Концептуально каждый нейрон может рассматриваться, как ПРАВИЛО «ЕСЛИ (w, x) > θ и, ТО выдать импульс». Следует отметить, что, например, «небольшая» нейронная сеть для распознавания образов может содержать десятки миллионов нейронов. Обработка базы знаний, содержащей такое число правил, трудно реализуема даже на современных процессорах.
2. Сигмоидная ( логистическая )функция. Функция называется сигмоидной , если она ограничена по минимальному и максимальному значениям и имеет везде положительную производную. Кроме этого предполагается, что функция быстро сходится к верхнему пределу при s →+∞ и к нижнему при s →-∞. На пример, где а — параметр (а > 0), 0 < f ( s ) < 1.
График сигмоидной функции качественно близок к изображению передаточной характеристики биологического нейрона. Сигмоидная функция приближается к ступенчатой с порогом θ = 0 при a →+ ∞. Очевидно, пороговая функция более удобна при аппаратной реализации нейрона, тогда как сигмоидная функция предпочтительна в аналитических исследованиях, поскольку она монотонна, всюду дифференцируема и имеет непрерывные производные любого порядка. Так ,f’ = af (1-f).
3. Гиперболический тангенс f (s) = th ( as) = , -1<f(s)<1. Свойство не четности тангенса, а также то, что f (0), иногда оказывается очень удобным.
Таким образом, каждый нейрон характеризуется вектором весовых множителей и параметрами преобразующей функции. Нейрон способен получать сигналы и в зависимости от их интенсивности и собственных характеристик выдавать выход ной сигнал. При этом если выходной сигнал нейрона близок к единице, то говорят, что нейрон возбужден.
Под нейронной сетью обычно понимается структура, состоящая из связанных между собой нейронов, аксиоматическое определение которых было дано ранее. К настоящему времени предложено большое количество способов объединения нейронов в нейросеть (при этом говорят о «топологии» нейросети ).
Не ограничивая общности, можно считать, что нейроны в сети расположены слоями. Обычно выделяют входной слой, на который подается возбуждающий сигнал, выходной слой, с которого снимают переработанный сетью сигнал, а все остальные слои называют скрытыми (поскольку они не видны пользователю). Очевидно, что для адекватного решения задачи функционирования сети нужно правильно выбрать значения весов связей между нейронами — обучить сеть.
Возможны несколько типов классификации существующих нейросетей. Наиболее часто используются следующие:
- по типу входной информации:
· сети, анализирующие двоичную информацию;
· сети, оперирующие с действительными числами;
- по методу обучения:
· сети, которые для того чтобы удовлетворять поставленным критериям требуют предварительного обучения перед включением их в реальную обстановку, — модели с учителем;
· сети, не требующие предварительного обучения, способные самообучаться (совершенствовать свои характеристики) в процессе работы;
- по характеру распространения информации:
· однонаправленные сети, в которых информация распространяется только в одном направлении от одного слоя элементов к другому;
· рекуррентные сети, в которых выходной сигнал элемента может вновь по ступать на этот элемент и другие элементы сети этого же или предыдущих слоев в качестве входного сигнала (сети с обратными связями);
- по способу преобразования входной информации:
· автоассоциативные;
· гетероассоциативные.
Они отличаются следующим. На всей сети или на одном ее слое задаются в определенный момент времени исходные состояния нейронов x =(x1 , x2 ,…, xn ) то есть задается входной образ. Затем этот образ трансформируется в соответствии с функциями преобразования элементов. Информация распространяется по сети, происходит ее обработка. В однонаправленных сетях информация распространяется от слоя к слою, и выходной слой выдает результирующий вектор y =(y1 , y2 , …, ym ) . (В однослойных сетях происходит стабилизация сети в одном из состояний.) После этого считываются значения узлов сети, представляющих выходной вектор. Возможны два варианта:
· х ≠ у — гетероассоциативная сеть, осуществляющая отображение входного вектора х в выходной вектор у;
· входной вектор х представляет искаженный или сжатый образ эталона x >0 .
Такая сеть называется автоассоциативной.
Выходной вектор, получающийся в результате работы нейросети, характеризует состояние элементов сети. Смысл, который имеют значения этого вектора, определяется в зависимости от решаемой проблемы.
Решение задачи на нейрокомпьютере принципиально отличается от решения той же задачи на обычной ЭВМ. Решение задачи на обычной ЭВМ заключается в обработке вводимых данных в соответствии с априори разработанной и записанной в нее программой. Для составления программы необходимо разработать алгоритм, то есть определенную последовательность математических и логических действий, необходимых для решения этой задачи. Алгоритмы и программы разрабатываются людьми, а компьютер используется лишь для выполнения большого количества элементарных операций: сложения, умножения, проверки логических условий и т. п.
Нейрокомпьютер же используется как «черный ящик», который можно обучить решению задач из какого-нибудь класса. Нейрокомпьютеру «предъявляются» исходные данные задачи и ответ, который соответствует этим данным. Нейрокомпьютер должен сам построить внутри себя алгоритм решения этой задачи, чтобы выдать ответ, совпадающий с правильным . Естественно ожидать, что чем больше различных пар (исходные данные — ответ) будет предъявлено нейрокомпьютеру, тем более адекватную решаемой задаче модель он сформулирует. Более того, если после этапа обучения нейрокомпьютеру предъявить исходные данные, которых он раньше не встречал, то желательно, чтобы он, тем не менее, выдал правильное решение. В этом заключается способность нейрокомпьютера к обобщению. Поскольку в основе устройства нейрокомпьютера лежит искусственная нейросеть, то процесс обучения состоит в настройке параметров этой сети. При этом, как правило, топология сети считается неизменной, а к подстраиваемым параметрам обычно относятся параметры нейронов и величины синаптических весов. Обычно в литературе под обучением принято понимать процесс изменения весов связей между нейронами.
Классификация методов обучения нейронных сетей:
- по способу использования учителя:
· с учителем. Сети предъявляются примеры входных и выходных данных. Сеть преобразует входные данные и сравнивает свой выход с желаемым. После этого проводится коррекция весов с целью получить лучшую согласованность выходов;
· с последовательным подкреплением знаний. В этом случае сети не дается желаемое значение выхода, а только ставится оценка, хорош выход или плох;
· без учителя. Сеть сама вырабатывает правила обучения путем выделения оценочных признаков из набора входных данных;
- по использованию элементов случайности:
· детерминированные методы. В них шаг за шагом осуществляется процедура коррекции весов сети, основанная на использовании их текущих значений, входов сети, выходов нейронов и некоторой дополнительной информации, например значений желаемых выходов сети;
· стохастические методы. Они основываются на использовании случайных изменений весов в ходе обучения.
МОДЕЛИ НЕЙРОННЫХ СЕТЕЙ