Две базовые архитектуры компьютеров - последовательная обработка символов по заданной программе и параллельное распознавание образов по обучающим примерам - появились практически одновременно.
Концептуально они оформились в 30-40-х годах. Первая - в теоретической работе Тьюринга 1936 г., предложившего гипотетическую машину для формализации понятия вычислимой функции, и затем уже в практической плоскости - обобщившего уроки создания первой ЭВМ ENIAC и предложившего методологию конструирования машин с запоминаемыми программами (ENIAC программировался штекерами). Так, в качестве базовых элементов ЭВМ фон Нейман предложил модифицированные формальные нейроны Мак-Каллока и Питтса - основателей нейросетевой архитектуры.
Что касается нейросетевой архитектуры, то, несмотря на многочисленные реверансы в сторону нейронных сетей со стороны классиков кибернетики, их влияние на промышленные разработки вплоть до недавнего времени было минимальным. Хотя в конце 50-х - начале 60-х с этим направлением связывали большие надежды, в основном благодаря Фрэнку Розенблатту, разработавшему первое обучаемое нейросетевое устройство для распознавания образов, персептрон (от английского perception - восприятие).
Персептрон был впервые смоделирован в 1958 году, причем его обучение требовало около получаса машинного времени на одной из самых мощных в то время ЭВМ IBM-704. Аппаратный вариант - MarkIPerceptron - был построен в 1960 г. и предназначался для распознавания зрительных образов. Его рецепторное поле состояло из матрицы фотоприемников 20х20, и он успешно справлялся с решением ряда задач.
Тогда же возникли первые коммерческие нейрокомпьютинговые компании. В 1969 году Марвин Минский выпустил вместе с южноафриканским математиком Пейпертом книгу "Персептроны". В этой роковой для нейрокомпьютинга книге была строго доказана принципиальная ограниченность персептронов. Исследования в этом направлении были свернуты вплоть до 1983 года, когда они, наконец, получили финансирование от Агентства перспективных военных исследований США (DARPA). Этот факт стал сигналом к началу нового нейросетевого бума.
Интерес широкой научной общественности к нейросетям пробудился после теоретической работы физика Джона Хопфилда (1982 г), предложившего модель ассоциативной памяти в нейронных ансамблях. Холфилд и его многочисленные последователи обогатили теорию нейросетей многими идеями из арсенала физики, такими как коллективные взаимодействия нейронов, энергия сети, температура обучения и т.д. Однако настоящий бум практического применения нейросетей начался после публикации в 1986 году Давидом Румельхартом с соавторами метода обучения многослойного персептрона, названного ими методом обратного распространения ошибки (errorback-propagation). Ограничения персептронов, о которых писали Минский и Пейперт, оказались преодолимыми, а возможности вычислительной техники-достаточными для решения широкого круга прикладных задач. В 90-х годах производительность последовательных компьютеров возросла настолько, что это позволило моделировать с их помощью работу параллельных нейронных сетей с числом нейронов от нескольких сотен до десятков тысяч. Такие эмуляторы нейросетей способны решать многие интересные с практической точки зрения задачи.
В основу искусственных нейронных сетей положены следующие черты живых нейронных сетей, позволяющие им хорошо справляться с нерегулярными задачами:
простой обрабатывающий элемент - нейрон (рис.1.1);
очень большое число нейронов участвует в обработке информации;
один нейрон связан с большим числом других нейронов (глобальные связи);
изменяющиеся по весу связи между нейронами;
массированная параллельность обработки информации.
Прототипом для создания нейрона послужил биологический нейрон головного мозга. Биологический нейрон имеет тело, совокупность отростков - дендритов, по которым в нейрон поступают входные сигналы, и отросток - аксон, передающий выходной сигнал нейрона другим клеткам. Точка соединения дендрита и аксона называется синапсом. Упрощенно функционирование нейрона можно представить следующим образом (рис.1.2):
1) нейрон получает от дендритов набор (вектор) входных сигналов;
2) в теле нейрона оценивается суммарное значение входных сигналов.
Однако входы нейрона неравнозначны. Каждый вход характеризуется некоторым весовым коэффициентом, определяющим важность поступающей по нему информации.
Таким образом, нейрон не просто суммирует значения входных сигналов, а вычисляет скалярное произведение вектора входных сигналов и вектора весовых коэффициентов;
Рис.1.1 Биологический нейрон
Рис.1.2 Искусственный нейрон
3) нейрон формирует выходной сигнал, интенсивность которого зависит от значения вычисленного скалярного произведения. Если оно не превышает некоторого заданного порога, то выходной сигнал не формируется вовсе - нейрон "не срабатывает";
4) выходной сигнал поступает на аксон и передается дендритам других нейронов.
Поведение искусственной нейронной сети зависит как от значения весовых параметров, так и от функции возбуждения нейронов. Известны три основных вида функции возбуждения: пороговая, линейная и сигмоидальная. Для пороговых элементов выход устанавливается на одном из двух уровней в зависимости от того, больше или меньше суммарный сигнал на входе нейрона некоторого порогового значения. Для линейных элементов выходная активность пропорциональна суммарному взвешенному входу нейрона. Для сигмоидальных элементов в зависимости от входного сигнала, выход варьируется непрерывно, но не линейно, по мере изменения входа. Сигмоидальные элементы имеют больше сходства с реальными нейронами, чем линейные или пороговые, но любой из этих типов можно рассматривать лишь как приближение.
Нейронная сеть представляет собой совокупность большого числа сравнительно простых элементов - нейронов, топология соединений которых зависит от типа сети. Чтобы создать нейронную сеть для решения какой-либо конкретной задачи, мы должны выбрать, каким образом следует соединять нейроны друг с другом, и соответствующим образом подобрать значения весовых параметров на этих связях. Может ли влиять один элемент на другой, зависит от установленных соединений. Вес соединения определяет силу влияния.
Нейронные сети принадлежат к классу коннекционистских моделей обработки информации. Основная их черта - использовать взвешенные связи между обрабатывающими элементами как принципиальное средство запоминания информации. Обработка в таких сетях ведется одновременно большим числом элементов, благодаря чему они терпимы к неисправностям и способны к быстрым вычислениям.
Задать нейронную сеть, способную решить конкретную задачу, это значит определить модель нейрона, топологию связей, веса связей. Нейронные сети различаются между собой меньше всего моделями нейрона, а в основном топологией связей и правилами определения весов или правилами обучения (рис.1.3), программирования.
Рис.1.3 Процесс обучения нейросети
Исходя из вышеизложенного, можно заключить, что для решения задач прогнозирования наиболее подходит сеть с обратным распространением. Она позволяет формальным образом обучить сеть прогнозировать изменение требования на основе исторических данных о требовании. Процесс применения нейросети приведен на рисунке 1.4
Рис.1.4 Процесс применения нейросети
Для описания алгоритмов и устройств в нейроинформатике выработана специальная "схемотехника", в которой элементарные устройства - сумматоры, синапсы, нейроны и т.п. объединяются в сети, предназначенные для решения задач.
Самый заслуженный и, вероятно, наиболее важный элемент нейросистем - это адаптивный сумматор. Адаптивный сумматор вычисляет скалярное произведение вектора входного сигнала x на вектор параметров a. На схемах будем обозначать его так, как показано на рис.1.5 Адаптивным называем его из-за наличия вектора настраиваемых параметров a. Для многих задач полезно иметь линейную неоднородную функцию выходных сигналов. Ее вычисление также можно представить с помощью адаптивного сумматора, имеющего n+1 вход и получающего на 0-й вход постоянный единичный сигнал (рис.1.6).
Нелинейный преобразователь сигнала изображен на рис.1.7 Он получает скалярный входной сигнал x и переводит его в j (x).
Точка ветвления служит для рассылки одного сигнала по нескольким адресам (рис.1.8). Она получает скалярный входной сигнал x и передает его всем своим выходам.
Рис.1.5 Адаптивный сумматорРис.1.6 Неоднородный адаптивный сумматор
Рис.1.7 Нелинейный преобразователь сигнала
Рис.1.8 Точка ветвления
Рис.1.9 Формальный нейронРис.1.10 Линейная связь (синапс)
Элементы слоистых и полносвязных сетей могут выбираться по-разному. Существует, впрочем, стандартный выбор - нейрон с адаптивным неоднородным линейным сумматором на входе (рис.1.9).
Линейная связь - синапс - отдельно от сумматоров не встречается, однако для некоторых рассуждений бывает удобно выделить этот элемент (рис.1.10). Он умножает входной сигнал x на "вес синапса" a.