Искусственный интеллект. Нейро́нные се́ти

Сегодня мы начинаем изучать на нашем сайте одну очень интересную тему, а именно нейронные сети . Что это, зачем они нужны, как с ними работать – во всем этом нам еще предстоит разобраться) Теория будет переплетаться с практическими задачами и примерами для упрощения понимания и для того, чтобы можно было наглядно увидеть как работают нейронные сети. Первая статья по традиции будет несколько вводной, но и сегодня мы уже обсудим некоторые важные моменты, которые нам пригодятся в будущем. В общем, давайте приступать!

Изучение и использование искусственных нейронных сетей, в принципе, началось уже достаточно давно – в начале 20 века, но по настоящему широкую известность они получили несколько позже. Связано это, в первую очередь, с тем, что стали появляться продвинутые (для того времени) вычислительные устройства, мощности которых были достаточно велики для работы с искусственными нейронными сетями. По сути, на данный момент можно легко смоделировать нейронную сеть средней сложности на любом персональном компьютере. И мы этим обязательно займемся 😉

Что же из себя представляет нейронная сеть ? А это ясно из названия – сеть представляет из себя совокупность нейронов, соединенных друг с другом определенным образом. Рассмотрим один нейрон:

Представляет из себя элемент, который вычисляет выходной сигнал (по определенному правилу) из совокупности входных сигналов. То есть основная последовательность действий одного нейрона такая:

  • Прием сигналов от предыдущих элементов сети
  • Вычисление выходного сигнала
  • Передача выходного сигнала следующим элементам нейронной сети

Между собой нейроны могут быть соединены абсолютно по-разному, это определяется структурой конкретной сети. Но суть работы нейронной сети остается всегда одной и той же. По совокупности поступающих на вход сети сигналов на выходе формируется выходной сигнал (или несколько выходных сигналов). То есть нейронную сеть упрощенно можно представить в виде черного ящика, у которого есть входы и выходы. А внутри этого ящика сидит огромное количество нейронов 😉

Мы перечислили основные этапы работы сети, теперь давайте остановимся на каждом из них в отдельности.

Комбинирование входных сигналов

Поскольку к каждому нейрону могут приходить несколько входных сигналов, то при моделировании нейронной сети необходимо задать определенное правило комбинирования всех этих сигналов. И довольно-таки часто используется правило суммирования взвешенных значений связей. Что значит взвешенных? Сейчас разберемся…

Каждую связь в сети нейронов можно полностью охарактеризовать при помощи трех факторов:

  • первый – элемент, от которого исходит связь
  • второй – элемент, к которую связь направлена
  • третий – вес связи.

Сейчас нас в большей степени интересует именно третий фактор. Вес связи определяет, будет ли усилен или ослаблен сигнал, передаваемый по данной связи. Если объяснять просто, “на пальцах”, то давайте рассмотрим такой пример:

Выходной сигнал нейрона 1 равен 5. Вес связи между нейронами равен 2. Таким образом, чтобы определить входной сигнал нейрона 2, приходящий от нейрона 1, необходимо умножить значение этого сигнала на вес связи (5*2). Как видите, все очень просто)

А если сигналов много? Правильно! Они все суммируются. В итоге на входе нейрона мы получаем следующее:

В этой формуле – это результат комбинирования всех входных сигналов для нейрона (комбинированный ввод нейрона). – количество элементов, передающих свои выходные сигналы на вход сигнала . А – вес связи, соединяющей нейрон с нейроном . Суммируя все взвешенные входные сигналы, мы получаем комбинированный ввод элемента сети.

Чаще всего структура связей между нейронами представляется в виде матрицы , которую называют весовой матрицей. Элемент матрицы , как и в формуле, определяет вес связи, идущей от элемента к элементу . Для того, чтобы понять как составляются весовые матрицы, давайте рассмотрим простую нейронную сеть:

Такой нейронной сети будет иметь следующий вид:

Например, от второго элемента к третьему идет связь, вес которой равен 3. Смотрим на матрицу, вторая строка, третий столбец – число 3, все верно 😉

С весовыми коэффициентами и комбинированным вводом разобрались, двигаемся дальше.

Функция активности элемента.

С входными сигналами мы разобрались, пришло время выходных. Для каждого элемента сети имеется определенное правило, в соответствии с которым из значения комбинированного ввода элемента вычисляется его выходное значение. Это правило называется функцией активности. А само выходное значение называется активностью нейрона. В роли функций активности могут выступать абсолютно любые математические функции, приведу в качестве примера несколько из наиболее часто использующихся:

  • пороговая функция – если значение комбинированного ввода ниже определенного значения (порога), то активность равна нулю, если выше – единице.
  • логистическая функция.

Давайте рассмотрим еще один небольшой пример, который очень часто используется в литературе для объяснения сути работы нейронных сетей. Задача примера заключается в том, чтобы при помощи нейронной сети вычислить отношение XOR. То есть на вход мы будем подавать разные варианты сигналов, а на выходе должны получить результат операции XOR для поданных на вход значений:

Элементы 1 и 2 являются входными, а элемент 7 – выходным. Нейроны 5 и 6 называются скрытыми, поскольку они не связаны с внешней средой. Таким образом, мы получили три слоя – входной, скрытый и выходной. Элементы 3 и 4 называют элементами смещения. Их выходной сигнал (активность) всегда равен 1. Для вычисления комбинированного ввода в этой сети мы будем использовать правило суммирования взвешенных связей, а в качестве функции активности будет выступать пороговая функция. Если комбинированный ввод элемента меньше 0, то активность равна 0, если ввод больше 0, то активность – 1.

Давайте подадим на вход нейрона 1 – единицу, а на вход нейрона 2 – ноль. В этом случае на выходе мы должны получить 1 (0 XOR 1 = 1). Рассчитаем выходное значение вручную для демонстрации работы сети.

Комбинированный ввод элемента 5: = 1 * (-1) + 0 * (-1) + 1 * 1.5 = 0.5.

Активность элемента 5: 1 (0.5 > 0).

Комбинированный ввод элемента 6: = 1 * (-1) + 0 * (-1) + 1 * 0.5 = -0.5.

Активность элемента 6: 0.

Комбинированный ввод элемента 7: = 1 * (1) + 0 * (-1) + 1 * (-0.5) = 0.5.

Активность элемента 7, а в то же время и выходное значение сети равно 1. Что и требовалось доказать =)

Можно попробовать использовать в качестве входных сигналов все возможные значения (0 и 0, 1 и 0, 0 и 1, 1 и 1), на выходе мы всегда будем видеть значение, соответствующее таблице истинности операции XOR. Как видите, сеть работает!

В данном случае все значения весовых коэффициентов нам были известны заранее, но главной особенностью нейронных сетей является то, что они могут сами корректировать значения веса всех связей в процессе обучения сети. Но об обучении нейронных сетей мы поговорим уже в следующей статье и, конечно же, рассмотрим практический пример для закрепления материала. Так что до скорых встреч!

НЕЙРО́ННЫЕ СЕ́ТИ искусственные, многослойные высокопараллельные (т. е. с большим числом независимо параллельно работающих элементов) логические структуры, составленные из формальных нейронов. Начало теории нейронных сетей и нейрокомпьютеров положила работа американских нейрофизиологов У. Мак-Каллока и У. Питтса «Логическое исчисление идей, относящихся к нервной деятельности» (1943), в которой они предложили математическую модель биологического нейрона. Среди основополагающих работ следует выделить модель Д. Хэбба, который в 1949 г. предложил закон обучения, явившийся стартовой точкой для алгоритмов обучения искусственных нейронных сетей. На дальнейшее развитие теории нейронной сети существенное влияние оказала монография американского нейрофизиолога Ф. Розенблатта «Принципы нейродинамики», в которой он подробно описал схему перцептрона (устройства, моделирующего процесс восприятия информации человеческим мозгом). Его идеи получили развитие в научных работах многих авторов. В 1985–86 гг. теория нейронных сетей получила «технологический импульс», вызванный возможностью моделирования нейронных сетей на появившихся в то время доступных и высокопроизводительных персональных компьютерах . Теория нейронной сети продолжает достаточно активно развиваться в начале 21 века. По оценкам специалистов, в ближайшее время ожидается значительный технологический рост в области проектирования нейронных сетей и нейрокомпьютеров. За последние годы уже открыто немало новых возможностей нейронных сетей, а работы в данной области вносят существенный вклад в промышленность, науку и технологии, имеют большое экономическое значение.

Основные направления применения нейронных сетей

Потенциальными областями применения искусственных нейронных сетей являются те, где человеческий интеллект малоэффективен, а традиционные вычисления трудоёмки или физически неадекватны (т. е. не отражают или плохо отражают реальные физические процессы и объекты). Актуальность применения нейронных сетей (т. е. нейрокомпьютеров) многократно возрастает, когда появляется необходимость решения плохо формализованных зада ч. Основные области применения нейронных сетей: автоматизация процесса классификации, автоматизация прогнозирования, автоматизация процесса распознавания, автоматизация процесса принятия решений; управление, кодирование и декодирование информации; аппроксимация зависимостей и др.

С помощью нейронных сетей успешно решается важная задача в области телекоммуникаций – проектирование и оптимизация сетей связи (нахождение оптимального пути трафика между узлами). Кроме управления маршрутизацией потоков, нейронные сети используются для получения эффективных решений в области проектирования новых телекоммуникационных сетей.

Распознавание речи – одна из наиболее популярных областей применения нейронных сетей.

Ещё одна область – управление ценами и производством (потери от неоптимального планирования производства часто недооцениваются). Поскольку спрос и условия реализации продукции зависят от времени, сезона, курсов валют и многих других факторов, то и объём производства должен гибко варьироваться с целью оптимального использования ресурсов (нейросетевая система обнаруживает сложные зависимости между затратами на рекламу, объёмами продаж, ценой, ценами конкурентов, днём недели, сезоном и т. д.). В результате использования системы осуществляется выбор оптимальной стратегии производства с точки зрения максимизации объёма продаж или прибыли.

При анализе потребительского рынка (маркетинг), когда обычные (классические) методы прогнозирования отклика потребителей могут быть недостаточно точны, используется прогнозирующая нейросетевая система с адаптивной архитектурой нейросимулятора.

Исследование спроса позволяет сохранить бизнес компании в условиях конкуренции, т. е. поддерживать постоянный контакт с потребителями через «обратную связь». Крупные компании проводят опросы потребителей, позволяющие выяснить, какие факторы являются для них решающими при покупке данного товара или услуги, почему в некоторых случаях предпочтение отдаётся конкурентам и какие товары потребитель хотел бы увидеть в будущем. Анализ результатов такого опроса – достаточно сложная задача, так как существует большое число коррелированных параметров. Нейросетевая система позволяет выявлять сложные зависимости между факторами спроса, прогнозировать поведение потребителей при изменении маркетинговой политики, находить наиболее значимые факторы и оптимальные стратегии рекламы, а также очерчивать сегмент потребителей, наиболее перспективный для данного товара.

В медицинской диагностике нейронные сети применяются, например, для диагностики слуха у грудных детей. Система объективной диагностики обрабатывает зарегистрированные «вызванные потенциалы» (отклики мозга), проявляющиеся в виде всплесков на электроэнцефалограмме, в ответ на звуковой раздражитель, синтезируемый в процессе обследования. Обычно для уверенной диагностики слуха ребёнка опытному эксперту-аудиологу необходимо провести до 2000 тестов, что занимает около часа. Система на основе нейронной сети способна с той же достоверностью определить уровень слуха уже по 200 наблюдениям в течение всего нескольких минут, причём без участия квалифицированного персонала.

Нейронные сети применяются также для прогнозирования краткосрочных и долгосрочных тенденций в различных областях (финансовой, экономической, банковской и др.).

Структура нейронных сетей

Нервная система и мозг человека состоят из нейронов, соединённых между собой нервными волокнами. Нервные волокна способны передавать электрические импульсы между нейронами. Все процессы передачи раздражений от нашей кожи, ушей и глаз к мозгу, процессы мышления и управления действиями – всё это реализовано в живом организме как передача электрических импульсов между нейронами.

Биологический нейрон (Cell) имеет ядро (Nucleus), а также отростки нервных волокон двух типов (рис. 1) – дендриты (Dendrites), по которым принимаются импульсы (Carries signals in), и единственный аксон (Axon), по которому нейрон может передавать импульс (Carries signals away). Аксон контактирует с дендритами других нейронов через специальные образования – синапсы (Synapses), которые влияют на силу передаваемого импульса. Структура, состоящая из совокупности большого количества таких нейронов, получила название биологической (или естественной) нейронной сети.

Появление формального нейрона во многом обусловлено изучением биологических нейронов. Формальный нейрон (далее – нейрон) является основой любой искусственной нейронной сети. Нейроны представляют собой относительно простые, однотипные элементы, имитирующие работу нейронов мозга. Каждый нейрон характеризуется своим текущим состоянием по аналогии с нервными клетками головного мозга, которые могут быть возбуждены и заторможены. Искусственный нейрон, так же как и его естественный прототип, имеет группу синапсов (входов ), которые соединены с выходами других нейронов, а также аксон – выходную связь данного нейрона, откуда сигнал возбуждения или торможения поступает на синапсы других нейронов.

Фор­маль­ный ней­рон пред­став­ля­ет со­бой ло­гический эле­мент с $N$ вхо­да­ми, ($N+1$ ) ве­со­вы­ми ко­эф­фи­ци­ен­та­ми, сум­ма­то­ром и не­ли­ней­ным пре­об­ра­зо­ва­те­лем. Про­стей­ший фор­маль­ный ней­рон, осу­ще­ст­в­ляю­щий ло­гическое пре­обра­зо­ва­ние $y = \text{sign}\sum_{i=0}^{N}a_ix_i$ вход­ных сигна­лов (ко­то­ры­ми, напр., яв­ля­ют­ся вы­ход­ные сиг­на­лы др. фор­маль­ных ней­ро­нов Н. с.) в вы­ход­ной сигнал, пред­став­лен на рис. 1.

Здесь $y$ – зна­че­ние вы­хо­да фор­маль­но­го ней­ро­на; $a_i$ – ве­со­вые ко­эф­фи­ци­ен­ты; $x_i$ – вход­ные зна­че­ния фор­маль­но­го ней­ро­на ($x_i∈\left \{0,1\right \},\; x_0=1$ ). Про­цесс вы­чис­ле­ния вы­ход­но­го зна­че­ния фор­маль­но­го ней­ро­на пред­став­ля­ет со­бой дви­же­ние по­то­ка дан­ных и их пре­об­ра­зо­ва­ние. Сна­ча­ла дан­ные по­сту­па­ют на блок вхо­да фор­маль­но­го ней­ро­на, где про­ис­хо­дит ум­но­же­ние ис­ход­ных дан­ных на со­от­вет­ст­вую­щие ве­со­вые ко­эф­фи­ци­ен­ты, т. н. синоптические веса (в соответствии с синапсами биологических нейронов). Ве­со­вой ко­эф­фи­ци­ент яв­ля­ет­ся ме­рой, ко­то­рая оп­ре­де­ля­ет, на­сколь­ко со­от­вет­ст­вую­щее вход­ное зна­че­ние влия­ет на со­стоя­ние фор­маль­но­го ней­ро­на. Ве­со­вые ко­эф­фи­ци­ен­ты мо­гут из­ме­нять­ся в со­от­вет­ст­вии с обу­чаю­щи­ми при­мера­ми, ар­хи­тек­ту­рой Н. с., пра­ви­ла­ми обу­че­ния и др. По­лу­чен­ные (при ум­но­же­нии) зна­че­ния пре­об­ра­зу­ют­ся в сум­ма­то­ре в од­но чи­сло­вое зна­че­ние $g$ (по­сред­ст­вом сум­ми­ро­ва­ния). За­тем для оп­ре­де­ле­ния выхо­да фор­маль­но­го ней­ро­на в бло­ке не­ли­ней­но­го пре­об­ра­зо­ва­ния (реа­ли­зую­ще­го пе­ре­да­точ­ную функ­цию) $g$ срав­ни­ва­ет­ся с не­ко­то­рым чис­лом (по­ро­гом). Ес­ли сум­ма боль­ше зна­че­ния по­ро­га, фор­маль­ный ней­рон ге­не­ри­ру­ет сиг­нал, в про­тив­ном слу­чае сиг­нал бу­дет ну­ле­вым или тор­мо­зя­щим. В дан­ном фор­маль­ном ней­ро­не при­ме­ня­ет­ся не­ли­ней­ное пре­об­ра­зо­ва­ние$$\text{sign}(g)= \begin{cases} 0,\; g < 0 \\ 1,\; g ⩾ 0 \end{cases},\quad \text{где}\,\,g = \sum_{i=0}^N a_i x_i.$$

Выбор структуры нейронной сети осуществляется в соответствии с особенностями и сложностью задачи. Теоретически число слоёв и число нейронов в каждом слое нейронной сети может быть произвольным, однако фактически оно ограничено ресурсами компьютера или специализированной микросхемы, на которых обычно реализуется нейронная сеть. При этом если в качестве активационной функции для всех нейронов сети используется функция единичного скачка, нейронная сеть называется многослойным персептроно м.

На рис. 3 показана общая схема многослойной нейронной сети с последовательными связями. Высокий параллелизм обработки достигается путём объединения большого числа формальных нейронов в слои и соединения определённым образом различных нейронов между собой.

В общем случае в эту структуру могут быть введены перекрёстные и обратные связи с настраиваемыми весовыми коэффициентами (рис. 4).

Нейронные сети являются сложными нелинейными системами с огромным числом степеней свободы. Принцип, по которому они обрабатывают информацию, отличается от принципа, используемого в компьютерах на основе процессоров с фон-неймановской архитектурой – с логическим базисом И, ИЛИ, НЕ (см. Дж. фон Нейман , Вычислительная машина ). Вместо классического программирования (как в традиционных вычислительных системах) применяется обучение нейронной сети, которое сводится, как правило, к настройке весовых коэффициентов с целью оптимизации заданного критерия качества функционирования нейронной сети.

Нейросетевые алгоритмы

Нейросетевым алгоритмом решения задач называется вычислительная процедура, полностью или по большей части реализованная в виде нейронной сети той или иной структуры (например, многослойная нейронная сеть с последовательными или перекрёстными связями между слоями формальных нейронов) с соответствующим алгоритмом настройки весовых коэффициентов. Основой разработки нейросетевого алгоритма является системный подход, при котором процесс решения задачи представляется как функционирование во времени некоторой динамической системы. Для её построения необходимо определить: объект, выступающий в роли входного сигнала нейронной сети; объект, выступающий в роли выходного сигнала нейронной сети (например, непосредственно решение или некоторая его характеристика); желаемый (требуемый) выходной сигнал нейронной сети; структуру нейронной сети (число слоёв, связи между слоями, объекты, служащие весовыми коэффициентами); функцию ошибки системы (характеризующую отклонение желаемого выходного сигнала нейронной сети от реального выходного сигнала); критерий качества системы и функционал её оптимизации, зависящий от ошибки; значение весовых коэффициентов (например, определяемых аналитически непосредственно из постановки задачи, с помощью некоторых численных методов или процедуры настройки весовых коэффициентов нейронной сети).

Количество и тип формальных нейронов в слоях, а также число слоёв нейронов выбираются исходя из специфики решаемых задач и требуемого качества решения. Нейронная сеть в процессе настройки на решение конкретной задачи рассматривается как многомерная нелинейная система, которая в итерационном режиме целенаправленно ищет оптимум некоторого функционала, количественно определяющего качество решения поставленной задачи. Для нейронных сетей, как многомерных нелинейных объектов управления, формируются алгоритмы настройки множества весовых коэффициентов. Основные этапы исследования нейронной сети и построения алгоритмов настройки (адаптации) их весовых коэффициентов включают: исследование характеристик входного сигнала для различных режимов работы нейронной сети (входным сигналом нейронной сети является, как правило, входная обрабатываемая информация и указание так называемого «учител я» нейронной сети); выбор критериев оптимизации (при вероятностной модели внешнего мира такими критериями могут быть минимум средней функции риска, максимум апостериорной вероятности, в частности при наличии ограничений на отдельные составляющие средней функции риска); разработку алгоритма поиска экстремумов функционалов оптимизации (например, для реализации алгоритмов поиска локальных и глобального экстремумов); построение алгоритмов адаптации коэффициентов нейронной сети; анализ надёжности и методов диагностики нейронной сети и др.

Необходимо отметить, что введение обратных связей и, как следствие, разработка алгоритмов настройки их коэффициентов в 1960–80 годы имели чисто теоретический смысл, т. к. не было практических задач, адекватных таким структурам. Лишь в конце 1980-х – начале 1990-х годов стали появляться такие задачи и простейшие структуры с настраиваемыми обратными связями для их решения (так называемые рекуррентные нейронные сети). Разработчики в области нейросетевых технологий занимались не только созданием алгоритмов настройки многослойных нейронных сетей и нейросетевыми алгоритмами решения различных задач, но и наиболее эффективными (на текущий момент развития технологии электроники) аппаратными эмуляторами (особые программы, которые предназначены для запуска одной системы в оболочке другой) нейросетевых алгоритмов. В 1960-е годы, до появления микропроцессора, наиболее эффективными эмуляторами нейронных сетей были аналоговые реализации разомкнутых нейронных сетей с разработанными алгоритмами настройки на универсальных ЭВМ (иногда системы на адаптивных элементах с аналоговой памятью). Такой уровень развития электроники делал актуальным введение перекрёстных связей в структуры нейронных сетей. Это приводило к значительному уменьшению числа нейронов в нейронной сети при сохранении качества решения задачи (например, дискриминантной способности при решении задач распознавания образов). Исследования 1960–70-х годов в области оптимизации структур нейронных сетей с перекрёстными связями наверняка найдут развитие при реализации мемристорных нейронных систем [мемристор (memristor, от memory – память, и resistor – электрическое сопротивление), пассивный элемент в микроэлектронике, способный изменять своё сопротивление в зависимости от протекавшего через него заряда], с учётом их специфики в части аналого-цифровой обработки информации и весьма значительного количества настраиваемых коэффициентов. Специфические требования прикладных задач определяли некоторые особенности структур нейронных сетей с помощью алгоритмов настройки: континуум (от лат. continuum – непрерывное, сплошное) числа классов, когда указание «учителя» системы формируется в виде непрерывного значения функции в некотором диапазоне изменения; континуум решений многослойной нейронной сети, формируемый выбором континуальной функции активации нейрона последнего слоя; континуум числа признаков, формируемый переходом в пространстве признаков от представления выходного сигнала в виде $N$ -мерного вектора вещественных чисел к вещественной функции в некотором диапазоне изменения аргумента; континуум числа признаков, как следствие, требует специфической программной и аппаратной реализации нейронной сети; вариант континуума признаков входного пространства был реализован в задаче распознавания периодических сигналов без преобразования их с помощью аналого-цифрового преобразователя (АЦП) на входе системы, и реализацией аналого-цифровой многослойной нейронной сети; континуум числа нейронов в слое; реализация многослойных нейронных сетей с континуумом классов и решений проводится выбором соответствующих видов функций активации нейронов последнего слоя.

В таблице показан систематизированный набор вариантов алгоритмов настройки многослойных нейронных сетей в пространстве «Входной сигнал – пространство решений». Представлено множество вариантов характеристик входных и выходных сигналов нейронных сетей, для которых справедливы алгоритмы настройки коэффициентов, разработанных российской научной школой в 1960–70 годах. Сигнал на вход нейронной сети описывается количеством классов (градаций) образов, представляющих указания «учителя». Выходной сигнал нейронной сети представляет собой количественное описание пространства решений. В таблице дана классификация вариантов функционирования нейронных сетей для различных видов входного сигнала (2 класса, $K$ классов, континуум классов) и различных вариантов количественного описания пространства решений (2 решения, $K_p$ решений, континуум решений). Цифрами 1, 7, 8 представлены конкретные варианты функционирования нейронных сетей.

Таблица. Набор вариантов алгоритмов настройки

Пространство(число) решений

Входной сигнал

2 класса $K$ классов Континуум классов
2 1 7 8
$K_p$ $K_p=3$ $K\lt K_p$ 9 10
$K = K_p$ 2
$K_p =\text{const}$ $K\gt K_p$ 4
Континуум 5 6 11

Основными преимуществами нейронных сетей как логического базиса алгоритмов решения сложных задач являются: инвариантность (неизменность, независимость) методов синтеза нейронных сетей от размерности пространства признаков; возможность выбора структуры нейронных сетей в значительном диапазоне параметров в зависимости от сложности и специфики решаемой задачи с целью достижения требуемого качества решения; адекватность текущим и перспективным технологиям микроэлектроники; отказоустойчивость в смысле его небольшого, а не катастрофического изменения качества решения задачи в зависимости от числа вышедших из строя элементов.

Нейронные сети – частный вид объекта управления в адаптивной системе

Нейронные сети явились в теории управления одним из первых примеров перехода от управления простейшими линейными стационарными системами к управлению сложными нелинейными, нестационарными, многомерными, многосвязными системами. Во второй половине 1960-х годов родилась методика синтеза нейронных сетей, которая развивалась и успешно применялась в течение последующих почти пятидесяти лет. Общая структура этой методики представлена на рис. 5.

Входные сигналы нейронных сетей

Вероятностная модель окружающего мира является основой нейросетевых технологий. Подобная модель – основа математической статистики. Нейронные сети возникли как раз в то время, когда экспериментаторы, использующие методы математической статистики, задали себе вопрос: «А почему мы обязаны описывать функции распределения входных случайных сигналов в виде конкретных аналитических выражений (нормальное распределение, распределение Пуассона и т. д.)? Если это правильно и на это есть какая-то физическая причина, то задача обработки случайных сигналов становится достаточно простой».

Специалисты по нейросетевым технологиям сказали: «Мы ничего не знаем о функции распределения входных сигналов, мы отказываемся от необходимости формального описания функции распределения входных сигналов, даже если сузим класс решаемых задач. Мы считаем функции распределения входных сигналов сложными, неизвестными и будем решать частные конкретные задачи в условиях подобной априорной неопределённости (т. е. неполноты описания; нет информации и о возможных результатах)». Именно поэтому нейронные сети в начале 1960-х годов эффективно применялись при решении задач распознавания образов. Причём задача распознавания образов трактовалась как задача аппроксимации многомерной случайной функции, принимающей $K$ значений, где $K$ – число классов образов.

Ниже отмечены некоторые режимы работы многослойных нейронных сетей, определяемые характеристиками случайных входных сигналов, для которых ещё в конце 1960-х годов были разработаны алгоритмы настройки коэффициентов.

Обучение нейронных сетей

Очевидно, что функционирование нейронной сети, т. е. действия, которые она способна выполнять, зависит от величин синоптических связей. Поэтому, задавшись структурой нейронной сети, отвечающей определённой задаче, разработчик должен найти оптимальные значения для всех весовых коэффициентов $w$ . Этот этап называется обучением нейронной сети, и от того, насколько качественно он будет выполнен, зависит способность сети решать во время эксплуатации поставленные перед ней проблемы. Важнейшими параметрами обучения являются: качество подбора весовых коэффициентов и время, которое необходимо затратить на обучение. Как правило, два этих параметра связаны между собой обратной зависимостью и их приходится выбирать на основе компромисса. В настоящее время все алгоритмы обучения нейронных сетей можно разделить на два больших класса: «с учителем» и «без учителя».

Априорные вероятности появления классов

При всей недостаточности априорной информации о функциях распределения входных сигналов игнорирование некоторой полезной информации может привести к потере качества решения задачи. Это в первую очередь касается априорных вероятностей появления классов. Были разработаны алгоритмы настройки многослойных нейронных сетей с учётом имеющейся информации об априорных вероятностях появления классов. Это имеет место в таких задачах, как распознавание букв в тексте, когда для данного языка вероятность появления каждой буквы известна и эту информацию необходимо использовать при построении алгоритма настройки коэффициентов многослойной нейронной сети.

Квалификация «учителя»

Нейронной сети предъявляются значения как входных, так и выходных параметров, и она по некоторому внутреннему алгоритму подстраивает веса своих синаптических связей. Обучение «с учителем» предполагает, что для каждого входного вектора существует целевой вектор, представляющий собой требуемый выход. В общем случае квалификация «учителя» может быть различной для различных классов образов. Вместе они называются представительской или обучающей выборко й. Обычно нейронная сеть обучается на некотором числе таких выборок. Предъявляется выходной вектор, вычисляется выход нейронной сети и сравнивается с соответствующим целевым вектором, разность (ошибка) с помощью обратной связи подаётся в нейронную сеть, и веса изменяются в соответствии с алгоритмом, стремящимся минимизировать ошибку. Векторы обучающего множества предъявляются последовательно, вычисляются ошибки и веса подстраиваются для каждого вектора до тех пор, пока ошибка по всему обучающему массиву не достигнет приемлемо низкого уровня.

В задачах распознавания образов, как правило, по умолчанию квалификация «учителя» является полной, т.е. вероятность правильного отнесения «учителем» образов к тому или иному классу равна единице. На практике при наличии косвенных измерений это зачастую не соответствует действительности, например в задачах медицинской диагностики, когда при верификации (проверке) архива медицинских данных, предназначенных для обучения, вероятность отнесения этих данных к тому или иному заболеванию не равна единице. Введение понятия квалификации «учителя» позволило разработать единые алгоритмы настройки коэффициентов многослойных нейронных сетей для режимов обучения, обучения «с учителем», обладающим конечной квалификацией, и самообучения (кластеризации), когда при наличии $K$ или двух классов образов квалификация «учителя» (вероятность отнесения образов к тому или иному классу) равна $\frac {1} {K}$ или 1 / 2 . Введение понятия квалификации «учителя» в системах распознавания образов позволило чисто теоретически рассмотреть режимы «вредительства» системе, когда ей сообщается заведомо ложное (с различной степенью ложности) отнесение образов к тому или иному классу. Данный режим настройки коэффициентов многослойной нейронной сети пока не нашёл практического применения.

Кластеризация

Кластеризация (самообучение, обучение «без учителя») – это частный режим работы многослойных нейронных сетей, когда системе не сообщается информация о принадлежности образцов к тому или иному классу. Нейронной сети предъявляются только входные сигналы, а выходы сети формируются самостоятельно с учётом только входных и производных от них сигналов. Несмотря на многочисленные прикладные достижения, обучение «с учителем» критиковалось за биологическую неправдоподобность. Трудно вообразить обучающий механизм в естественном человеческом интеллекте, который сравнивал бы желаемые и действительные значения выходов, выполняя коррекцию с помощью обратной связи. Если допустить подобный механизм в человеческом мозге, то откуда тогда возникают желаемые выходы? Обучение «без учителя» является более правдоподобной моделью обучения в биологической системе. Она не нуждается в целевом векторе для выходов и, следовательно, не требует сравнения с предопределёнными идеальными ответами. Обучающее множество состоит лишь из входных векторов. Обучающий алгоритм подстраивает веса нейронной сети так, чтобы получались согласованные выходные векторы, т. е. чтобы предъявление достаточно близких входных векторов давало одинаковые выходы. Процесс обучения, следовательно, выделяет статистические свойства обучающего множества и группирует сходные векторы в классы. Предъявление на вход вектора из данного класса даст определённый выходной вектор, но до обучения невозможно предсказать, какой выход будет производиться данным классом входных векторов. Следовательно, выходы подобной сети должны трансформироваться в некоторую понятную форму, обусловленную процессом обучения. Это не является серьёзной проблемой. Обычно не сложно идентифицировать связь между входом и выходом, установленную сетью.

Кластеризации посвящено множество научных работ. Основная задача кластеризации заключается в обработке множества векторов в многомерном пространстве признаков с выделением компактных подмножеств (подмножеств, близко расположенных друг к другу), их количества и свойств. Наиболее распространённым методом кластеризации является метод «$K$ -means», практически не связанный с методами обратного распространения и не обобщаемый на архитектуры типа многослойных нейронных сетей.

Введение понятия квалификации «учителя» и единого подхода к обучению и самообучению в 1960-е годы позволило фактически создать основу для реализации режима кластеризации в многослойных нейронных сетях широкого класса структур.

Нестационарные образы

Существующие разработки в области систем распознавания образов на базе многослойных нейронных сетей в основном относятся к стационарным образам, т.е. к случайным входным сигналам, имеющим сложные неизвестные, но стационарные во времени функции распределения. В некоторых работах была сделана попытка распространить предлагаемую методику настройки многослойных нейронных сетей на нестационарные образы, когда предполагаемая неизвестная функции распределения входного сигнала зависит от времени или входной случайный сигнал является суперпозицией регулярной составляющей и случайной составляющей с неизвестной сложной функцией распределения, не зависящей от времени.

О критериях первичной оптимизации в многослойных нейронных сетях

Вероятностная модель мира, взятая за основу при построении алгоритмов адаптации в многослойных нейронных сетях, позволила формировать критерий первичной оптимизации в рассматриваемых системах в виде требований минимума средней функции риска и его модификаций: максимум апостериорной вероятности (условная вероятность случайного события при условии того, что известны апостериорные, т. е. основанные на опыте, данные); минимум средней функции риска; минимум средней функции риска при условии равенства условных функций риска для различных классов; минимум средней функции риска при условии заданного значения условной функции риска для одного из классов; другие критерии первичной оптимизации, вытекающие из требований конкретной практической задачи. В работах российских учёных были представлены модификации алгоритмов настройки многослойных нейронных сетей для указанных выше критериев первичной оптимизации. Отметим, что в подавляющем большинстве работ в области теории нейронных сетей и в алгоритмах обратного распространения рассматривается простейший критерий – минимум среднеквадратической ошибки, без каких бы то ни было ограничений на условные функции риска.

В режиме самообучения (кластеризации) предпосылкой формирования критерия и функционала первичной оптимизации нейронных сетей служит представление функции распределения входного сигнала в виде многомодальной функции в многомерном пространстве признаков, где каждой моде с некоторой вероятностью соответствует класс. В качестве критериев первичной оптимизации в режиме самообучения использовались модификации средней функции риска.

Представленные модификации критериев первичной оптимизации были обобщены на случаи континуума классов и решений; континуума признаков входного пространства; континуума числа нейронов в слое; при произвольной квалификации учителя. Важным разделом формирования критерия и функционала первичной оптимизации в многослойных нейронных сетях при вероятностной модели мира является выбор матрицы потерь, которая в теории статистических решений определяет коэффициент потерь $L_{12}$ при ошибочном отнесении образов 1-го класса ко 2-му и коэффициент потерь $L_{21}$ при отнесении образов 2-го класса к 1-му. Как правило, по умолчанию матрица $L$ этих коэффициентов при синтезе алгоритмов настройки многослойных нейронных сетей, в том числе и при применении метода обратного распространения, принимается симметричной. На практике это не соответствует действительности. Характерным примером является система обнаружения мин с применением геолокатора. В этом случае потери при ошибочном отнесении камня к мине равнозначны некоторой небольшой потере времени пользователем геолокатора. Потери, связанные с ошибочным отнесением мины к классу камней, связаны с жизнью или значительной потерей здоровья пользователями геолокатора.

Анализ разомкнутых нейронных сетей

Данный этап синтеза ставит своей целью определение в общем виде статистических характеристик выходных и промежуточных сигналов нейронных сетей как многомерных, нелинейных объектов управления с целью дальнейшего формирования критерия и функционала вторичной оптимизации, т. е. функционала, реально оптимизируемого алгоритмом адаптации в конкретной нейронной сети. В подавляющем большинстве работ в качестве такого функционала принимается среднеквадратическая ошибка, что ухудшает качество решения или вообще не соответствует задаче оптимизации, поставленной критерием первичной оптимизации.

Разработаны методика и алгоритмы формирования функционала вторичной оптимизации, соответствующего заданному функционалу первичной оптимизации.

Алгоритмы поиска экстремума функционалов вторичной оптимизации

Алгоритм поиска экстремума применительно к конкретному функционалу вторичной оптимизации определяет алгоритм настройки коэффициентов многослойной нейронной сети. В начале 21 века наибольший практический интерес представляют подобные алгоритмы, реализованные в системе MatLab (сокращение от англ. «Matrix Laboratory» – пакет прикладных программ для решения задач технических вычислений и одноимённый язык программирования). Однако необходимо отметить частность алгоритмов адаптации в многослойных нейронных сетях, используемых в системах MatLab (Neural Network Toolbox – предоставляет функции и приложения для моделирования сложных нелинейных систем, которые описываются уравнениями; поддерживает обучение «с учителем» и «без учителя», прямым распространением, с радиальными базисными функциями и др.), и ориентацию этих алгоритмов не на специфику решаемых задач, а на воображаемую «геометрию» функционалов вторичной оптимизации. Эти алгоритмы не учитывают многих деталей специфики применения многослойных нейронных сетей при решении конкретных задач и, естественно, требуют коренной, если не принципиальной, переработки при переходе к мемристорным нейронным системам. Был проведён детальный сравнительный анализ метода обратного распространения и российских методов 1960–70-х годов. Основная особенность данных алгоритмов заключается в необходимости поиска локальных и глобального экстремумов многоэкстремального функционала в многомерном пространстве настраиваемых коэффициентов нейронной сети. Рост размеров нейронной сети ведёт к значительному росту числа настраиваемых коэффициентов, т. е. к росту размерности пространства поиска. Ещё в 1960-х годах в работах предлагались поисковые и аналитические процедуры расчёта градиента функционала вторичной оптимизации, а в классе аналитических процедур предлагалось и исследовалось применение для организации поиска не только первой, но и второй производной функционала вторичной оптимизации. Специфика многоэкстремальности функционала вторичной оптимизации привела в течение последующих десятилетий к появлению различных модификаций методов поиска (генетические алгоритмы и т. п.). Созданы алгоритмы поиска экстремумов функционалов вторичной оптимизации с ограничениями на величину, скорость и другие параметры весовых коэффициентов нейронных сетей. Именно эти методы должны быть основой работ по методам настройки нейронных сетей с применением мемристоров (весовых коэффициентов) с учётом таких специфических характеристик, как передаточные функции.

Начальные условия при настройке коэффициентов

Выбор начальных условий итерационной процедуры поиска экстремумов функционалов вторичной оптимизации является важным этапом синтеза алгоритмов настройки многослойных нейронных сетей. Задача выбора начальных условий должна решаться специфически для каждой задачи, решаемой нейронной сетью, и быть неотъемлемой составляющей общей процедуры синтеза алгоритмов настройки многослойных нейронных сетей. Качественное решение этой задачи в значительной степени может сократить время настройки. Априорная сложность функционала вторичной оптимизации сделала необходимой введение процедуры выбора начальных условий в виде случайных значений коэффициентов с повторением этой процедуры и процедуры настройки коэффициентов. Эта процедура ещё в 1960-е годы казалась чрезвычайно избыточной с точки зрения времени, затрачиваемого на настройку коэффициентов. Однако, несмотря на это, она достаточно широко применяется и в настоящее время. Для отдельных задач тогда же была принята идея выбора начальных условий, специфических для данной решаемой задачи. Такая процедура была отработана для трёх задач: распознавание образов; кластеризация; нейроидентификация нелинейных динамических объектов.

Память в контуре настройки коэффициентов

Системный подход к построению алгоритмов поиска экстремума функционала вторичной оптимизации предполагает в качестве одного из режимов настройки перенастройку коэффициентов в каждом такте поступления образов на входе по текущему значению градиента функционала вторичной оптимизации. Разработаны алгоритмы настройки многослойных нейронных сетей с фильтрацией последовательности значений градиентов функционала вторичной оптимизации: фильтром нулевого порядка с памятью $m_n$ (для стационарных образов); фильтром $1, …, k$ -го порядка с памятью $m_n$ (для нестационарных образов) с различной гипотезой изменения во времени функций распределения для образов различных классов.

Исследование алгоритмов адаптации в нейронных сетях

Главный вопрос – как выбрать структуру многослойной нейронной сети для решения выбранной конкретной задачи – до сих пор в значительной степени не решён. Можно предложить лишь разумный направленный перебор вариантов структур с оценкой их эффективности в процессе решения задачи. Однако оценка качества работы алгоритма настройки на конкретной выбранной структуре, конкретной задаче может быть недостаточно корректной. Так, для оценки качества работы линейных динамических систем управления применяются типовые входные сигналы (ступенчатый, квадратичный и т. д.), по реакции на которые оцениваются установившаяся ошибка (астатизм системы) и ошибки в переходных процессах.

Подобно этому, для многослойных нейронных сетей были разработаны типовые входные сигналы для проверки и сравнения работоспособности различных алгоритмов настройки. Естественно, что типовые входные сигналы для таких объектов, как многослойные нейронные сети, являются специфическими для каждой решаемой задачи. В первую очередь были разработаны типовые входные сигналы для следующих задач: распознавание образов; кластеризация; нейроуправление динамическими объектами.

Основным аксиоматическим принципом применения нейросетевых технологий вместо методов классической математической статистики является отказ от формализованного описания функций распределения вероятностей для входных сигналов и принятие концепции неизвестных, сложных функций распределения. Именно по этой причине были предложены следующие типовые входные сигналы.

Для задачи кластеризации была предложена выборка случайного сигнала с многомодальным распределением, реализуемая в $N$ -мерном пространстве признаков с модами функции распределения, центры которых в количестве $Z$ размещаются на гипербиссектрисе $N$ -мерного пространства признаков. Каждая мода реализует составляющую случайной выборки с нормальным распределением и среднеквадратичным отклонением $σ$ , равным для каждой из $Z$ мод. Предметом сравнения различных методов кластеризации будет динамика настройки и качество решения задачи в зависимости от $N$ , $Z$ и $σ$ , при достаточно большой случайной выборке $M$ . Этот подход можно считать одним из первых достаточно объективных подходов к сравнению алгоритмов кластеризации, в том числе основанных на многослойных нейронных сетях c соответствующим выбором структуры для достижения необходимого качества кластеризации. Для задач классификации входные сигналы для испытаний аналогичны сигналам для кластеризации с тем изменением, что выборка с многомодальным распределением делится надвое (в случае двух классов) или на $K$ (в случае $K$ классов) частей с перемежающимися модами функции распределения для отдельных классов.

Нейронные сети с переменной структурой

Отказ в нейросетевых технологиях от априорной информации, от информации о функциях распределения входных сигналов приводит к необходимости реализации разумного перебора параметров структуры многослойных нейронных сетей для обеспечения необходимого качества решения задачи.

В 1960-е годы для весьма актуального в то время класса задач – распознавания образов – была предложена процедура настройки многослойных нейронных сетей, в которой структура априори не фиксируется, а является результатом настройки наряду со значениями настраиваемых коэффициентов. При этом в процессе настройки выбираются число слоёв и число нейронов в слоях. Процедура настройки коэффициентов многослойной нейронной сети с переменной структурой легко переносится с задачи распознавания двух классов образов на задачу распознавания $K$ классов образов. Причём здесь результатом настройки являются $K$ нейронных сетей, в каждой из которых первым классом является $k$ -й класс ($k = 1, \ldots, K$ ), а вторым все остальные. Подобная идея настройки многослойных нейронных сетей с переменной структурой применима и к решению задачи кластеризации. При этом в качестве первого класса образов принимается исходная анализируемая выборка, а в качестве второго класса – выборка с равномерным распределением в диапазоне изменения признаков. Реализуемая в процессе настройки многослойная нейронная сеть с переменной структурой качественно и количественно отражает сложность решения задачи. С этой точки зрения задача кластеризации как задача рождения новых знаний об изучаемом объекте заключается в выделении и анализе тех областей многомерного пространства признаков, в которых функция распределения вероятностей превышает уровень равномерного распределения в диапазоне изменения величин признаков.

Перспективы развития

В начале 21 века одной из основных концепций развития (обучения) многослойной нейронной сети является стремление к увеличению числа слоёв, а это предполагает обеспечение выбора структуры нейронной сети, адекватной решаемой задаче, разработку новых методов для формирования алгоритмов настройки коэффициентов. Достоинствами нейронных сетей являются: свойство т.н. постепенной деградации − при выходе из строя отдельных элементов качество работы системы падает постепенно (для сравнения, логические сети из элементов И, ИЛИ, НЕ выходят из строя при нарушении работы любого элемента сети); повышенная устойчивость к изменению параметров схем, их реализующих (например, весьма значительные изменения весов не приводят к ошибкам в реализации простой логической функции двух переменных) и др.

Широкое распространение нейросетевых алгоритмов в области сложных формализуемых, слабоформализуемых и неформализуемых задач привело к созданию нового направления в вычислительной математике – нейроматематики . Нейроматематика включает нейросетевые алгоритмы решения следующих задач: распознавание образов; оптимизация и экстраполяция функций; теории графов; криптографические задачи; решение вещественных и булевских систем линейных и нелинейных уравнений, обыкновенных одномерных и многомерных дифференциальных уравнений, дифференциальных уравнений в частных производных и др. На основе теории нейронных сетей создан новый раздел современной теории управления сложными нелинейными и многомерными, многосвязными динамическими системами – нейроуправление , включающий методы нейросетевой идентификации сложных динамических объектов; построение нейрорегуляторов в контурах управления сложными динамическими объектами и др.

Новые виды архитектуры нейронных сетей появляются постоянно, и в них можно запутаться. Мы собрали для вас своеобразную шпаргалку, содержащую большую часть существующих видов ИНС. Хотя все они представлены как уникальные, картинки свидетельствуют о том, что многие из них очень похожи.

Проблема нарисованных выше графов заключается в том, что они не показывают, как соответствующие сети используются на практике. Например, вариационные автокодировщики (VAE) выглядят совсем как простые автокодировщики (AE), но их процессы обучения существенно различаются. Случаи использования отличаются ещё больше, поскольку VAE - это генератор, которому для получения нового образца подаётся новый шум. AE же просто сравнивает полученные данные с наиболее похожим образцом, полученным во время обучения.

Стоит заметить, что хотя большинство этих аббревиатур общеприняты, есть и исключения. Под RNN иногда подразумевают рекурсивную нейронную сеть, но обычно имеют в виду рекуррентную. Также можно часто встретить использование аббревиатуры RNN, когда речь идёт про любую рекуррентную НС. Автокодировщики также сталкиваются с этой проблемой, когда вариационные и шумоподавляющие автокодировщики (VAE, DAE) называют просто автокодировщиками (AE). Кроме того, во многих аббревиатурах различается количество букв «N» в конце, поскольку в каких-то случаях используется «neural network», а в каких-то - просто «network».

Для каждой архитектуры будет дано очень краткое описание и ссылка на статью, ей посвящённую. Если вы хотите быстро познакомиться с нейронными сетями с нуля, следуйте переведенному нами , состоящему всего из четырех шагов.


Нейронные сети прямого распространения
(feed forward neural networks, FF или FFNN) и перцептроны (perceptrons, P) очень прямолинейны, они передают информацию от входа к выходу. Нейронные сети часто описываются в виде слоёного торта, где каждый слой состоит из входных, скрытых или выходных клеток. Клетки одного слоя не связаны между собой, а соседние слои обычно полностью связаны. Самая простая нейронная сеть имеет две входных клетки и одну выходную, и может использоваться в качестве модели логических вентилей. FFNN обычно обучается по методу обратного распространения ошибки, в котором сеть получает множества входных и выходных данных. Этот процесс называется обучением с учителем, и он отличается от обучения без учителя тем, что во втором случае множество выходных данных сеть составляет самостоятельно. Вышеупомянутая ошибка является разницей между вводом и выводом. Если у сети есть достаточное количество скрытых нейронов, она теоретически способна смоделировать взаимодействие между входным и выходными данными. Практически такие сети используются редко, но их часто комбинируют с другими типами для получения новых.

Сети радиально-базисных функций (radial basis function, RBF) - это FFNN, которая использует радиальные базисные функции как функции активации. Больше она ничем не выделяется 🙂

Нейронная сеть Хопфилда (Hopfield network, HN) - это полносвязная нейронная сеть с симметричной матрицей связей. Во время получения входных данных каждый узел является входом, в процессе обучения он становится скрытым, а затем становится выходом. Сеть обучается так: значения нейронов устанавливаются в соответствии с желаемым шаблоном, после чего вычисляются веса, которые в дальнейшем не меняются. После того, как сеть обучилась на одном или нескольких шаблонах, она всегда будет сводиться к одному из них (но не всегда - к желаемому). Она стабилизируется в зависимости от общей «энергии» и «температуры» сети. У каждого нейрона есть свой порог активации, зависящий от температуры, при прохождении которого нейрон принимает одно из двух значений (обычно -1 или 1, иногда 0 или 1). Такая сеть часто называется сетью с ассоциативной памятью; как человек, видя половину таблицы, может представить вторую половину таблицы, так и эта сеть, получая таблицу, наполовину зашумленную, восстанавливает её до полной.

Цепи Маркова (Markov chains, MC или discrete time Markov Chains, DTMC) - это предшественники машин Больцмана (BM) и сетей Хопфилда (HN). Их смысл можно объяснить так: каковы мои шансы попасть в один из следующих узлов, если я нахожусь в данном? Каждое следующее состояние зависит только от предыдущего. Хотя на самом деле цепи Маркова не являются НС, они весьма похожи. Также цепи Маркова не обязательно полносвязны.

Машина Больцмана (Boltzmann machine, BM) очень похожа на сеть Хопфилда, но в ней некоторые нейроны помечены как входные, а некоторые - как скрытые. Входные нейроны в дальнейшем становятся выходными. Машина Больцмана - это стохастическая сеть. Обучение проходит по методу обратного распространения ошибки или по алгоритму сравнительной расходимости. В целом процесс обучения очень похож на таковой у сети Хопфилда.

Ограниченная машина Больцмана (restricted Boltzmann machine, RBM) удивительно похожа на машину Больцмана и, следовательно, на сеть Хопфилда. Единственной разницей является её ограниченность. В ней нейроны одного типа не связаны между собой. Ограниченную машину Больцмана можно обучать как FFNN, но с одним нюансом: вместо прямой передачи данных и обратного распространения ошибки нужно передавать данные сперва в прямом направлении, затем в обратном. После этого проходит обучение по методу прямого и обратного распространения ошибки.

Автокодировщик (autoencoder, AE) чем-то похож на FFNN, так как это скорее другой способ использования FFNN, нежели фундаментально другая архитектура. Основной идеей является автоматическое кодирование (в смысле сжатия, не шифрования) информации. Сама сеть по форме напоминает песочные часы, в ней скрытые слои меньше входного и выходного, причём она симметрична. Сеть можно обучить методом обратного распространения ошибки, подавая входные данные и задавая ошибку равной разнице между входом и выходом.

Разреженный автокодировщик (sparse autoencoder, SAE) - в каком-то смысле противоположность обычного. Вместо того, чтобы обучать сеть отображать информацию в меньшем «объёме» узлов, мы увеличиваем их количество. Вместо того, чтобы сужаться к центру, сеть там раздувается. Сети такого типа полезны для работы с большим количеством мелких свойств набора данных. Если обучать сеть как обычный автокодировщик, ничего полезного не выйдет. Поэтому кроме входных данных подаётся ещё и специальный фильтр разреженности, который пропускает только определённые ошибки.

Вариационные автокодировщики (variational autoencoder, VAE) обладают схожей с AE архитектурой, но обучают их иному: приближению вероятностного распределения входных образцов. В этом они берут начало от машин Больцмана. Тем не менее, они опираются на байесовскую математику, когда речь идёт о вероятностных выводах и независимости, которые интуитивно понятны, но сложны в реализации. Если обобщить, то можно сказать что эта сеть принимает в расчёт влияния нейронов. Если что-то одно происходит в одном месте, а что-то другое — в другом, то эти события не обязательно связаны, и это должно учитываться.

Шумоподавляющие автокодировщики (denoising autoencoder, DAE) - это AE, в которые входные данные подаются в зашумленном состоянии. Ошибку мы вычисляем так же, и выходные данные сравниваются с зашумленными. Благодаря этому сеть учится обращать внимание на более широкие свойства, поскольку маленькие могут изменяться вместе с шумом.


Сеть типа «deep belief»
(deep belief networks, DBN) - это название, которое получил тип архитектуры, в которой сеть состоит из нескольких соединённых RBM или VAE. Такие сети обучаются поблочно, причём каждому блоку требуется лишь уметь закодировать предыдущий. Такая техника называется «жадным обучением», которая заключается в выборе локальных оптимальных решений, не гарантирующих оптимальный конечный результат. Также сеть можно обучить (методом обратного распространения ошибки) отображать данные в виде вероятностной модели. Если использовать обучение без учителя, стабилизированную модель можно использовать для генерации новых данных.


Свёрточные нейронные сети
(convolutional neural networks, CNN) и глубинные свёрточные нейронные сети (deep convolutional neural networks, DCNN) сильно отличаются от других видов сетей. Обычно они используются для обработки изображений, реже для аудио. Типичным способом применения CNN является классификация изображений: если на изображении есть кошка, сеть выдаст «кошка», если есть собака - «собака». Такие сети обычно используют «сканер», не парсящий все данные за один раз. Например, если у вас есть изображение 200×200, вы не будете сразу обрабатывать все 40 тысяч пикселей. Вместо это сеть считает квадрат размера 20 x 20 (обычно из левого верхнего угла), затем сдвинется на 1 пиксель и считает новый квадрат, и т.д. Эти входные данные затем передаются через свёрточные слои, в которых не все узлы соединены между собой. Эти слои имеют свойство сжиматься с глубиной, причём часто используются степени двойки: 32, 16, 8, 4, 2, 1. На практике к концу CNN прикрепляют FFNN для дальнейшей обработки данных. Такие сети называются глубинными (DCNN).

Развёртывающие нейронные сети (deconvolutional networks, DN) , также называемые обратными графическими сетями, являются обратным к свёрточным нейронным сетям. Представьте, что вы передаёте сети слово «кошка», а она генерирует картинки с кошками, похожие на реальные изображения котов. DNN тоже можно объединять с FFNN. Стоит заметить, что в большинстве случаев сети передаётся не строка, а какой бинарный вектор: например, <0, 1> - это кошка, <1, 0> - собака, а <1, 1> - и кошка, и собака.

Вопросы искусственного интеллекта и нейронных сетей в настоящее время становится популярным, как никогда ранее. Множество пользователей все чаще и чаще обращаются в с вопросами о том, как работают нейронные сети, что они из себя представляют и на чём построен принцип их деятельности?

Эти вопросы вместе с популярностью имеют и немалую сложность, так как процессы представляют собой сложные алгоритмы машинного обучения, предназначенные для различных целей, от анализа изменений до моделирования рисков, связанных с определёнными действиями.

Что такое нейронные сети и их типы?

Первый вопрос, который возникает у интересующихся, что же такое нейронная сеть? В классическом определении это определённая последовательность нейронов, которые объединены между собой синапсами. Нейронные сети являются упрощённой моделью биологических аналогов.

Программа, имеющая структуру нейронной сети, даёт возможность машине анализировать входные данные и запоминать результат, полученный из определённых исходников. В последующем подобный подход позволяет извлечь из памяти результат, соответствующий текущему набору данных, если он уже имелся в опыте циклов сети.

Многие воспринимают нейронную сеть, как аналог человеческого мозга. С одной стороны, можно считать это суждение близким к истине, но, с другой стороны, человеческий мозг слишком сложный механизм, чтобы была возможность воссоздать его с помощью машины хотя бы на долю процента. Нейронная сеть — это в первую очередь программа, основанная на принципе действия головного мозга, но никак не его аналог.

Нейронная сеть представляет собой связку нейронов, каждый из которых получает информацию, обрабатывает её и передаёт другому нейрону. Каждый нейрон обрабатывает сигнал совершенно одинаково.

Как тогда получается различный результат? Все дело в синапсах, которые соединяют нейроны друг с другом. Один нейрон может иметь огромное количество синапсов, усиливающих или ослабляющих сигнал, при этом они имеют особенность изменять свои характеристики с течением времени.

Именно правильно выбранные параметры синапсов дают возможность получить на выходе правильный результат преобразования входных данных.

Определившись в общих чертах, что собой представляет нейронная сеть, можно выделить основные типы их классификации. Прежде чем приступить к классификации необходимо ввести одно уточнение. Каждая сеть имеет первый слой нейронов, который называется входным.

Он не выполняет никаких вычислений и преобразований, его задача состоит только в одном: принять и распределить по остальным нейронам входные сигналы. Это единственный слой, который является общим для всех типов нейронных сетей, дальнейшая их структура и является критерием для основного деления.

  • Однослойная нейронная сеть. Это структура взаимодействия нейронов, при которой после попадания входных данных в первый входной слой сразу передаётся в слой выхода конечного результата. При этом первый входной слой не считается, так как он не выполняет никаких действий, кроме приёма и распределения, об этом уже было сказано выше. А второй слой производит все нужные вычисления и обработки и сразу выдаёт конечный результат. Входные нейроны объединены с основным слоем синапсами, имеющими различный весовой коэффициент, обеспечивающий качество связей.
  • Многослойная нейронная сеть. Как понятно из определения, этот вид нейронных сетей помимо входного и выходного слоёв имеет ещё и промежуточные слои. Их количество зависит от степени сложности самой сети. Она в большей степени напоминает структуру биологической нейронной сети. Такие виды сетей были разработаны совсем недавно, до этого все процессы были реализованы с помощью однослойных сетей. Соответственно подобное решение имеет намного больше возможностей, чем её предок. В процессе обработки информации каждый промежуточный слой представляет собой промежуточный этап обработки и распределения информации.

В зависимости от направления распределения информации по синапсам от одного нейрона к другому, можно также классифицировать сети на две категории.

  • Сети прямого распространения или однонаправленная, то есть структура, в которой сигнал движется строго от входного слоя к выходному. Движение сигнала в обратном направлении невозможно. Подобные разработки достаточно широко распространены и в настоящий момент с успехом решают такие задачи, как распознавание, прогнозы или кластеризация.
  • Сети с обратными связями или рекуррентная. Подобные сети позволяют сигналу двигаться не только в прямом, но и в обратном направлении. Что это даёт? В таких сетях результат выхода может возвращаться на вход исходя из этого, выход нейрона определяется весами и сигналами входа, и дополняется предыдущими выходами, которые снова вернулись на вход. Таким сетям свойственна функция кратковременной памяти, на основании которой сигналы восстанавливаются и дополняются в процессе обработки.

Это не единственные варианты классификации сетей.

Их можно разделить на однородные и гибридные опираясь на типы нейронов, составляющих сеть. А также на гетероассоциативные или автоассоциативные, в зависимости от метода обучения сети, с учителем или без. Также можно классифицировать сети по их назначению.

Где используют нейронные сети?

Нейронные сети используются для решения разнообразных задач. Если рассмотреть задачи по степени сложности, то для решения простейших задач подойдёт обычная компьютерная программа, более
усложнённые задачи, требующие простого прогнозирования или приближенного решения уравнений, используются программы с привлечением статистических методов.

А вот задачи ещё более сложного уровня требуют совсем иного подхода. В частности, это относится к распознаванию образов, речи или сложному прогнозированию. В голове человека подобные процессы происходят неосознанно, то есть, распознавая и запоминая образы, человек не осознаёт, как происходит этот процесс, а соответственно не может его контролировать.

Именно такие задачи помогают решить нейронные сети, то есть то есть они созданы чтобы выполнять процессы, алгоритмы которых неизвестны.

Таким образом, нейронные сети находят широкое применение в следующих областях:

  • распознавание, причём это направление в настоящее время самое широкое;
  • предсказание следующего шага, эта особенность применима на торгах и фондовых рынках;
  • классификация входных данных по параметрам, такую функцию выполняют кредитные роботы, которые способны принять решение в одобрении займа человеку, полагаясь на входной набор разных параметров.

Способности нейросетей делают их очень популярными. Их можно научить многому, например, играть в игры, узнавать определённый голос и так далее. Исходя из того, что искусственные сети строятся по принципу биологических сетей, их можно обучить всем процессам, которые человек выполняет неосознанно.

Что такое нейрон и синапс?

Так что же такое нейрон в разрезе искусственных нейросетей? Под этим понятием подразумевается единица, которая выполняет вычисления. Она получает информацию со входного слоя сети, выполняет с ней простые вычисления и проедает её следующему нейрону.

В составе сети имеются три типа нейронов: входной, скрытый и выходной. Причём если сеть однослойная, то скрытых нейронов она не содержит. Кроме этого, есть разновидность единиц, носящих названия нейрон смещения и контекстный нейрон.

Каждый нейрон имеет два типа данных: входные и выходные. При этом у первого слоя входные данные равны выходным. В остальных случаях на вход нейрона попадает суммарная информация предыдущих слоёв, затем она проходит процесс нормализации, то есть все значения, выпадающие из нужного диапазона, преобразуются функцией активации.

Как уже упоминалось выше, синапс — это связь между нейронами, каждая из которых имеет свою степень веса. Именно благодаря этой особенности входная информация видоизменяется в процессе передачи. В процессе обработки информация, переданная синапсом, с большим показателем веса будет преобладающей.

Получается, что на результат влияют не нейроны, а именно синапсы, дающие определённую совокупность веса входных данных, так как сами нейроны каждый раз выполняют совершенно одинаковые вычисления.

При этом веса выставляются в случайном порядке.

Схема работы нейронной сети

Чтобы представить принцип работы нейронной сети не требуется особых навыков. На входной слой нейронов поступает определённая информация. Она передаётся посредством синапсов следующему слою, при этом каждый синапс имеет свой коэффициент веса, а каждый следующий нейрон может иметь несколько входящих синапсов.

В итоге информация, полученная следующим нейроном, представляет собой сумму всех данных, перемноженных каждый на свой коэффициент веса. Полученное значение подставляется в функцию активации и получается выходная информация, которая передаётся дальше, пока не дойдёт до конечного выхода. Первый запуск сети не даёт верных результатов, так как сеть, ещё не натренированная.

Функция активации применяется для нормализации входных данных. Таких функций много, но можно выделить несколько основных, имеющих наиболее широкое распространение. Их основным отличием является диапазон значений, в котором они работают.

  • Линейная функция f(x) = x, самая простая из всех возможных, используется только для тестирования созданной нейронной сети или передачи данных в исходном виде.
  • Сигмоид считается самой распространённой функцией активации и имеет вид f(x) = 1 / 1+e-×; при этом диапазон её значений от 0 до 1. Она ещё называется логистической функцией.
  • Чтобы охватить и отрицательные значения используют гиперболический тангенс. F(x) = e²× - 1 / e²× + 1 — такой вид имеет эта функция и диапазон который она имеет от -1 до 1. Если нейронная сеть не предусматривает использование отрицательных значений, то использовать её не стоит.

Для того чтобы задать сети данные, которыми она будет оперировать необходимы тренировочные сеты.

Интеграция — это счётчик, который увеличивается с каждым тренировочным сетом.

Эпоха — это показатель натренированности нейронной сети, этот показатель увеличивается каждый раз, когда сеть проходит цикл полного набора тренировочных сетов.

Соответственно, чтобы проводить тренировку сети правильно нужно выполнять сеты, последовательно увеличивая показатель эпохи.

В процессе тренировки будут выявляться ошибки. Это процентный показатель расхождения между полученным и желаемым результатом. Этот показатель должен уменьшаться в процессе увеличения показателя эпохи, в противном случае где-то ошибка разработчика.

Что такое нейрон смещения и для чего он нужен?

В нейронных сетях есть ещё один вид нейронов — нейрон смещения. Он отличается от основного вида нейронов тем, что его вход и выход в любом случае равняется единице. При этом входных синапсов такие нейроны не имеют.

Расположение таких нейронов происходит по одному на слой и не более, также они не могут соединяться синапсами друг с другом. Размещать такие нейроны на выходном слое не целесообразно.

Для чего они нужны? Бывают ситуации, в которых нейросеть просто не сможет найти верное решение из-за того, что нужная точка будет находиться вне пределов досягаемости. Именно для этого и нужны такие нейроны, чтобы иметь возможность сместить область определения.

То есть вес синапса меняет изгиб графика функции, тогда как нейрон смещения позволяет осуществить сдвиг по оси координат Х, таким образом, чтобы нейросеть смогла захватить область недоступную ей без сдвига. При этом сдвиг может быть осуществлён как вправо, так и влево. Схематически нейроны сдвига обычно не обозначаются, их вес учитывается по умолчанию при расчёте входного значения.

Также нейроны смещения позволят получить результат в том случае, когда все остальные нейроны выдают 0 в качестве выходного параметра. В этом случае независимо от веса синапса на каждый следующий слой будет передаваться именно это значение.

Наличие нейрона смещения позволит исправить ситуацию и получить иной результат. Целесообразность использования нейронов смещения определяется путём тестирования сети с ними и без них и сравнения результатов.

Но важно помнить, что для достижения результатов мало создать нейронную сеть. Её нужно ещё и обучить, что тоже требует особых подходов и имеет свои алгоритмы. Этот процесс сложно назвать простым, так как его реализация требует определённых знаний и усилий.

Интеллектуальные системы на основе искусственных нейронных сетей позволяют с успехом решать проблемы распознавания образов, выполнения прогнозов, оптимизации, ассоциативной памяти и управления.

17.04.1997 Жианчанг Мао, Энил Джейн

Интеллектуальные системы на основе искусственных нейронных сетей позволяют с успехом решать проблемы распознавания образов, выполнения прогнозов, оптимизации, ассоциативной памяти и управления. Известны и иные, более традиционные подходы к решению этих проблем, однако они не обладают необходимой гибкостью за пределами ограниченных условий. ИНС дают многообещающие альтернативные решения, и многие приложения выигрывают от их использования.

Интеллектуальные системы на основе искусственных нейронных сетей (ИНС) позволяют с успехом решать проблемы распознавания образов, выполнения прогнозов, оптимизации, ассоциативной памяти и управления. Известны и иные, более традиционные подходы к решению этих проблем, однако они не обладают необходимой гибкостью за пределами ограниченных условий. ИНС дают многообещающие альтернативные решения, и многие приложения выигрывают от их использования. Данная статья является введением в современную проблематику ИНС и содержит обсуждение причин их стремительного развития. Здесь описаны также основные принципы работы биологического нейрона и его искусственной вычислительной модели. Несколько слов будет сказано о нейросетевых архитектурах и процессах обучения ИНС. Венчает статью знакомство с проблемой распознавания текста - наиболее успешной реализацией ИНС.

Длительный период эволюции придал мозгу человека много качеств, которые отсутствуют как в машинах с архитектурой фон Неймана, так и в современных параллельных компьютерах. К ним относятся:

  • массовый параллелизм;
  • распределенное представление информации и вычисления;
  • способность к обучению и способность к обобщению;
  • адаптивность;
  • свойство контекстуальной обработки информации;
  • толерантность к ошибкам;
  • низкое энергопотребление.

Можно предположить, что приборы, построенные на тех же принципах, что и биологические нейроны, будут обладать перечисленными характеристиками.

От биологических сетей к ИНС

Современные цифровые вычислительные машины превосходят человека по способности производить числовые и символьные вычисления. Однако человек может без усилий решать сложные задачи восприятия внешних данных (например, узнавание человека в толпе только по его промелькнувшему лицу) с такой скоростью и точностью, что мощнейший в мире компьютер по сравнению с ним кажется безнадежным тугодумом. В чем причина столь значительного различия в их производительности? Архитектура биологической нейронной системы совершенно не похожа на архитектуру машины фон Неймана (Таблица 1), существенно влияет на типы функций, которые более эффективно исполняются каждой моделью.

Таблица 1. Машина фон Неймана по сравнению с биологической нейронной системой

Машина фон Неймана Биологическая нейронная система
Процессор Сложный Простой
Высокоскоростной Низкоскоростной
Один или несколько Большое количество
Память Отделена от процессора Интегрирована в процессор
Локализована Распределенная
Адресация не по содержанию Адресация по содержанию
Вычисления Централизованные Распределенные
Последовательные Параллельные
Хранимые программы Самообучение
Надежность Высокая уязвимость Живучесть
Специализация Численные и символьные oперации Проблемы восприятия
Среда функционирования Строго определенная Плохо определенная
Строго ограниченная Без ограничений

Подобно биологической нейронной системе ИНС является вычислительной системой с огромным числом параллельно функционирующих простых процессоров с множеством связей. Модели ИНС в некоторой степени воспроизводят "организационные" принципы, свойственные мозгу человека. Моделирование биологической нейронной системы с использованием ИНС может также способствовать лучшему пониманию биологических функций. Такие технологии производства, как VLSI (сверхвысокий уровень интеграции) и оптические аппаратные средства, делают возможным подобное моделирование.

Глубокое изучение ИНС требует знания нейрофизиологии, науки о познании, психологии, физики (статистической механики), теории управления, теории вычислений, проблем искусственного интеллекта, статистики/математики, распознавания образов, компьютерного зрения, параллельных вычислений и аппаратных средств (цифровых/аналоговых/VLSI/оптических). С другой стороны, ИНС также стимулируют эти дисциплины, обеспечивая их новыми инструментами и представлениями. Этот симбиоз жизненно необходим для исследований по нейронным сетям.

Представим некоторые проблемы, решаемые в контексте ИНС и представляющие интерес для ученых и инженеров.

Классификация образов. Задача состоит в указании принадлежности входного образа (например, речевого сигнала или рукописного символа), представленного вектором признаков, одному или нескольким предварительно определенным классам. К известным приложениям относятся распознавание букв, распознавание речи, классификация сигнала электрокардиограммы, классификация клеток крови.

Кластеризация/категоризация. При решении задачи кластеризации, которая известна также как классификация образов "без учителя", отсутствует обучающая выборка с метками классов. Алгоритм кластеризации основан на подобии образов и размещает близкие образы в один кластер. Известны случаи применения кластеризации для извлечения знаний, сжатия данных и исследования свойств данных.

Аппроксимация функций. Предположим, что имеется обучающая выборка ((x 1 ,y 1 ), (x 2 ,y 2 )..., (x n ,y n )) (пары данных вход-выход), которая генерируется неизвестной функцией (x), искаженной шумом. Задача аппроксимации состоит в нахождении оценки неизвестной функции (x). Аппроксимация функций необходима при решении многочисленных инженерных и научных задач моделирования.

Предсказание/прогноз. Пусть заданы n дискретных отсчетов {y(t 1 ), y(t 2 )..., y(t n )} в последовательные моменты времени t 1 , t 2 ,..., t n . Задача состоит в предсказании значения y(t n+1 ) в некоторый будущий момент времени t n+1 . Предсказание/прогноз имеют значительное влияние на принятие решений в бизнесе, науке и технике. Предсказание цен на фондовой бирже и прогноз погоды являются типичными приложениями техники предсказания/прогноза.

Оптимизация. Многочисленные проблемы в математике, статистике, технике, науке, медицине и экономике могут рассматриваться как проблемы оптимизации. Задачей алгоритма оптимизации является нахождение такого решения, которое удовлетворяет системе ограничений и максимизирует или минимизирует целевую функцию. Задача коммивояжера, относящаяся к классу NP-полных, является классическим примером задачи оптимизации.

Память, адресуемая по содержанию. В модели вычислений фон Неймана обращение к памяти доступно только посредством адреса, который не зависит от содержания памяти. Более того, если допущена ошибка в вычислении адреса, то может быть найдена совершенно иная информация. Ассоциативная память, или память, адресуемая по содержанию, доступна по указанию заданного содержания. Содержимое памяти может быть вызвано даже по частичному входу или искаженному содержанию. Ассоциативная память чрезвычайно желательна при создании мультимедийных информационных баз данных.

Управление. Рассмотрим динамическую систему, заданную совокупностью {u(t), y(t)}, где u(t) является входным управляющим воздействием, а y(t) - выходом системы в момент времени t. В системах управления с эталонной моделью целью управления является расчет такого входного воздействия u(t), при котором система следует по желаемой траектории, диктуемой эталонной моделью. Примером является оптимальное управление двигателем.

Краткий исторический обзор

Исследования в области ИНС пережили три периода активизации. Первый пик в 40-х годах обусловлен пионерской работой МакКаллока и Питтса . Второй возник в 60-х благодаря теореме сходимости перцептрона Розенблатта и работе Минского и Пейперта , указавшей ограниченные возможности простейшего перцептрона. Результаты Минского и Пейперта погасили энтузиазм большинства исследователей, особенно тех, кто работал в области вычислительных наук. Возникшее в исследованиях по нейронным сетям затишье продлилось почти 20 лет. С начала 80-х годов ИНС вновь привлекли интерес исследователей, что связано с энергетическим подходом Хопфилда и алгоритмом обратного распространения для обучения многослойного перцептрона (многослойные сети прямого распространения), впервые предложенного Вербосом и независимо разработанного рядом других авторов. Алгоритм получил известность благодаря Румельхарту в 1986году Андерсон и Розенфельд подготовили подробную историческую справку о развитии ИНС.

Биологические нейронные сети

Нейрон (нервная клетка) является особой биологической клеткой, которая обрабатывает информацию (рис. 1). Она состоит из тела клетки (cell body), или сомы (soma), и двух типов внешних древоподобных ветвей: аксона (axon) и дендритов (dendrites). Тело клетки включает ядро (nucleus), которое содержит информацию о наследственных свойствах, и плазму, обладающую молекулярными средствами для производства необходимых нейрону материалов. Нейрон получает сигналы (импульсы) от других нейронов через дендриты (приемники) и передает сигналы, сгенерированные телом клетки, вдоль аксона (передатчик), который в конце разветвляется на волокна (strands). На окончаниях этих волокон находятся синапсы (synapses).

Рис. 1.

Синапс является элементарной структурой и функциональным узлом между двумя нейронами (волокно аксона одного нейрона и дендрит другого). Когда импульс достигает синаптического окончания, высвобождаются определенные химические вещества, называемые нейротрансмиттерами. Нейротрансмиттеры диффундируют через синаптическую щель, возбуждая или затормаживая, в зависимости от типа синапса, способность нейрона-приемника генерировать электрические импульсы. Результативность синапса может настраиваться проходящими через него сигналами, так что синапсы могут обучаться в зависимости от активности процессов, в которых они участвуют. Эта зависимость от предыстории действует как память, которая, возможно, ответственна за память человека.

Кора головного мозга человека является протяженной, образованной нейронами поверхностью толщиной от 2 до 3 мм с площадью около 2200 см 2 , что вдвое превышает площадь поверхности стандартной клавиатуры. Кора головного мозга содержит около 1011 нейронов, что приблизительно равно числу звезд Млечного пути . Каждый нейрон связан с 103 - 104 другими нейронами. В целом мозг человека содержит приблизительно от 1014 до 1015 взаимосвязей.

Нейроны взаимодействуют посредством короткой серии импульсов, как правило, продолжительностью несколько мсек. Сообщение передается посредством частотно-импульсной модуляции. Частота может изменяться от нескольких единиц до сотен герц, что в миллион раз медленнее, чем самые быстродействующие переключательные электронные схемы. Тем не менее сложные решения по восприятию информации, как, например, распознавание лица, человек принимает за несколько сотен мс. Эти решения контролируются сетью нейронов, которые имеют скорость выполнения операций всего несколько мс. Это означает, что вычисления требуют не более 100 последовательных стадий. Другими словами, для таких сложных задач мозг "запускает" параллельные программы, содержащие около 100 шагов. Это известно как правило ста шагов . Рассуждая аналогичным образом, можно обнаружить, что количество информации, посылаемое от одного нейрона другому, должно быть очень маленьким (несколько бит). Отсюда следует, что основная информация не передается непосредственно, а захватывается и распределяется в связях между нейронами. Этим объясняется такое название, как коннекционистская модель, применяемое к ИНС.

Основные понятия

Модель технического нейрона

МакКаллок и Питтс предложили использовать бинарный пороговый элемент в качестве модели искусственного нейрона. Этот математический нейрон вычисляет взвешенную сумму n входных сигналов x j , j = 1, 2... n, и формирует на выходе сигнал величины 1, если эта сумма превышает определенный порог u, и 0 - в противном случае.

Часто удобно рассматривать u как весовой коэффициент, связанный с постоянным входом x 0 = 1. Положительные веса соответствуют возбуждающим связям, а отрицательные - тормозным. МакКаллок и Питтс доказали, что при соответствующим образом подобранных весах совокупность параллельно функционирующих нейронов подобного типа способна выполнять универсальные вычисления. Здесь наблюдается определенная аналогия с биологическим нейроном: передачу сигнала и взаимосвязи имитируют аксоны и дендриты, веса связей соответствуют синапсам, а пороговая функция отражает активность сомы.

Архитектура нейронной сети

ИНС может рассматриваться как направленный граф со взвешенными связями, в котором искусственные нейроны являются узлами. По архитектуре связей ИНС могут быть сгруппированы в два класса (рис. 2): сети прямого распространения, в которых графы не имеют петель, и рекуррентные сети, или сети с обратными связями.

Рис. 2.

В наиболее распространенном семействе сетей первого класса, называемых многослойным перцептроном, нейроны расположены слоями и имеют однонаправленные связи между слоями. На рис. 2 представлены типовые сети каждого класса. Сети прямого распространения являются статическими в том смысле, что на заданный вход они вырабатывают одну совокупность выходных значений, не зависящих от предыдущего состояния сети. Рекуррентные сети являются динамическими, так как в силу обратных связей в них модифицируются входы нейронов, что приводит к изменению состояния сети.

Обучение

Способность к обучению является фундаментальным свойством мозга. В контексте ИНС процесс обучения может рассматриваться как настройка архитектуры сети и весов связей для эффективного выполнения специальной задачи. Обычно нейронная сеть должна настроить веса связей по имеющейся обучающей выборке. Функционирование сети улучшается по мере итеративной настройки весовых коэффициентов. Свойство сети обучаться на примерах делает их более привлекательными по сравнению с системами, которые следуют определенной системе правил функционирования, сформулированной экспертами.

Для конструирования процесса обучения, прежде всего, необходимо иметь модель внешней среды, в которой функционирует нейронная сеть - знать доступную для сети информацию. Эта модель определяет парадигму обучения . Во-вторых, необходимо понять, как модифицировать весовые параметры сети - какие правила обучения управляют процессом настройки. Алгоритм обучения означает процедуру, в которой используются правила обучения для настройки весов.

Существуют три парадигмы обучения: "с учителем", "без учителя" (самообучение) и смешанная. В первом случае нейронная сеть располагает правильными ответами (выходами сети) на каждый входной пример. Веса настраиваются так, чтобы сеть производила ответы как можно более близкие к известным правильным ответам. Усиленный вариант обучения с учителем предполагает, что известна только критическая оценка правильности выхода нейронной сети, но не сами правильные значения выхода. Обучение без учителя не требует знания правильных ответов на каждый пример обучающей выборки. В этом случае раскрывается внутренняя структура данных или корреляции между образцами в системе данных, что позволяет распределить образцы по категориям. При смешанном обучении часть весов определяется посредством обучения с учителем, в то время как остальная получается с помощью самообучения.

Теория обучения рассматривает три фундаментальных свойства, связанных с обучением по примерам: емкость, сложность образцов и вычислительная сложность. Под емкостью понимается, сколько образцов может запомнить сеть, и какие функции и границы принятия решений могут быть на ней сформированы. Сложность образцов определяет число обучающих примеров, необходимых для достижения способности сети к обобщению. Слишком малое число примеров может вызвать "переобученность" сети, когда она хорошо функционирует на примерах обучающей выборки, но плохо - на тестовых примерах, подчиненных тому же статистическому распределению. Известны 4 основных типа правил обучения: коррекция по ошибке, машина Больцмана, правило Хебба и обучение методом соревнования.

Правило коррекции по ошибке. При обучении с учителем для каждого входного примера задан желаемый выход d. Реальный выход сети y может не совпадать с желаемым. Принцип коррекции по ошибке при обучении состоит в использовании сигнала (d-y) для модификации весов, обеспечивающей постепенное уменьшение ошибки. Обучение имеет место только в случае, когда перцептрон ошибается. Известны различные модификации этого алгоритма обучения .

Обучение Больцмана. Представляет собой стохастическое правило обучения, которое следует из информационных теоретических и термодинамических принципов . Целью обучения Больцмана является такая настройка весовых коэффициентов, при которой состояния видимых нейронов удовлетворяют желаемому распределению вероятностей. Обучение Больцмана может рассматриваться как специальный случай коррекции по ошибке, в котором под ошибкой понимается расхождение корреляций состояний в двух режимах.

Правило Хебба. Самым старым обучающим правилом является постулат обучения Хебба . Хебб опирался на следующие нейрофизиологические наблюдения: если нейроны с обеих сторон синапса активизируются одновременно и регулярно, то сила синаптической связи возрастает. Важной особенностью этого правила является то, что изменение синаптического веса зависит только от активности нейронов, которые связаны данным синапсом. Это существенно упрощает цепи обучения в реализации VLSI.

Обучение методом соревнования. В отличие от обучения Хебба, в котором множество выходных нейронов могут возбуждаться одновременно, при соревновательном обучении выходные нейроны соревнуются между собой за активизацию. Это явление известно как правило "победитель берет все". Подобное обучение имеет место в биологических нейронных сетях. Обучение посредством соревнования позволяет кластеризовать входные данные: подобные примеры группируются сетью в соответствии с корреляциями и представляются одним элементом.

При обучении модифицируются только веса "победившего" нейрона. Эффект этого правила достигается за счет такого изменения сохраненного в сети образца (вектора весов связей победившего нейрона), при котором он становится чуть ближе ко входному примеру. На рис. 3 дана геометрическая иллюстрация обучения методом соревнования. Входные векторы нормализованы и представлены точками на поверхности сферы. Векторы весов для трех нейронов инициализированы случайными значениями. Их начальные и конечные значения после обучения отмечены Х на рис. 3а и 3б соответственно. Каждая из трех групп примеров обнаружена одним из выходных нейронов, чей весовой вектор настроился на центр тяжести обнаруженной группы.

Рис. 3.

Можно заметить, что сеть никогда не перестанет обучаться, если параметр скорости обучения не равен 0. Некоторый входной образец может активизировать другой выходной нейрон на последующих итерациях в процессе обучения. Это ставит вопрос об устойчивости обучающей системы. Система считается устойчивой, если ни один из примеров обучающей выборки не изменяет своей принадлежности к категории после конечного числа итераций обучающего процесса. Один из способов достижения стабильности состоит в постепенном уменьшении до 0 параметра скорости обучения. Однако это искусственное торможение обучения вызывает другую проблему, называемую пластичностью и связанную со способностью к адаптации к новым данным. Эти особенности обучения методом соревнования известны под названием дилеммы стабильности-пластичности Гроссберга.

В Таблице 2 представлены различные алгоритмы обучения и связанные с ними архитектуры сетей (список не является исчерпывающим). В последней колонке перечислены задачи, для которых может быть применен каждый алгоритм. Каждый алгоритм обучения ориентирован на сеть определенной архитектуры и предназначен для ограниченного класса задач. Кроме рассмотренных, следует упомянуть некоторые другие алгоритмы: Adaline и Madaline , линейный дискриминантный анализ , проекции Саммона , анализ главных компонентов .

Таблица 2. Известные алгоритмы обучения

Парадигма Обучающее правило Архитектура Алгоритм обучения Задача
С учителем Коррекция ошибки Однослойный и многослойный перцептрон Алгоритмы обучения перцептрона
Обратное распространение
Adaline и Madaline
Классификация образов
Аппроксимация функций
Предскащание, управление
Больцман Рекуррентная Алгоритм обучения Больцмана Классификация образов
Хебб Линейный дискриминантный анализ Анализ данных
Классификация образов
Соревнование Соревнование Векторное квантование Категоризация внутри класса Сжатие данных
Сеть ART ARTMap Классификация образов
Без учителя Коррекция ошибки Многослойная прямого распространения Проекция Саммона Категоризация внутри класса Анализ данных
Хебб Прямого распространения или соревнование Анализ главных компонентов Анализ данных
Сжатие данных
Сеть Хопфилда Обучение ассоциативной памяти Ассоциативная память
Соревнование Соревнование Векторное квантование Категоризация
Сжатие данных
SOM Кохонена SOM Кохонена Категоризация
Анализ данных
Сети ART ART1, ART2 Категоризация
Смешанная Коррекция ошибки и соревнование Сеть RBF Алгоритм обучения RBF Классификация образов
Аппроксимация функций
Предсказание, управление

Многослойные сети прямого распространения

Стандартная L-слойная сеть прямого распространения состоит из слоя входных узлов (будем придерживаться утверждения, что он не включается в сеть в качестве самостоятельного слоя), (L-1) скрытых слоев и выходного слоя, соединенных последовательно в прямом направлении и не содержащих связей между элементами внутри слоя и обратных связей между слоями. На рис. 4 приведена структура трехслойной сети.

Рис. 4.

Многослойный перцептрон

Наиболее популярный класс многослойных сетей прямого распространения образуют многослойные перцептроны, в которых каждый вычислительный элемент использует пороговую или сигмоидальную функцию активации. Многослойный перцептрон может формировать сколь угодно сложные границы принятия решения и реализовывать произвольные булевы функции . Разработка алгоритма обратного распространения для определения весов в многослойном перцептроне сделала эти сети наиболее популярными у исследователей и пользователей нейронных сетей. Геометрическая интерпретация объясняет роль элементов скрытых слоев (используется пороговая активационная функция).

RBF-сети

Сети, использующие радиальные базисные функции (RBF-сети), являются частным случаем двухслойной сети прямого распространения. Каждый элемент скрытого слоя использует в качестве активационной функции радиальную базисную функцию типа гауссовой. Радиальная базисная функция (функция ядра) центрируется в точке, которая определяется весовым вектором, связанным с нейроном. Как позиция, так и ширина функции ядра должны быть обучены по выборочным образцам. Обычно ядер гораздо меньше, чем обучающих примеров. Каждый выходной элемент вычисляет линейную комбинацию этих радиальных базисных функций. С точки зрения задачи аппроксимации скрытые элементы формируют совокупность функций, которые образуют базисную систему для представления входных примеров в построенном на ней пространстве.

Существуют различные алгоритмы обучения RBF-сетей . Основной алгоритм использует двушаговую стратегию обучения, или смешанное обучение. Он оценивает позицию и ширину ядра с использованием алгоритма кластеризации "без учителя", а затем алгоритм минимизации среднеквадратической ошибки "с учителем" для определения весов связей между скрытым и выходным слоями. Поскольку выходные элементы линейны, применяется неитерационный алгоритм. После получения этого начального приближения используется градиентный спуск для уточнения параметров сети.

Этот смешанный алгоритм обучения RBF-сети сходится гораздо быстрее, чем алгоритм обратного распространения для обучения многослойных перцептронов. Однако RBF-сеть часто содержит слишком большое число скрытых элементов. Это влечет более медленное функционирование RBF-сети, чем многослойного перцептрона. Эффективность (ошибка в зависимости от размера сети) RBF-сети и многослойного перцептрона зависят от решаемой задачи.

Нерешенные проблемы

Существует множество спорных вопросов при проектировании сетей прямого распространения - например, сколько слоев необходимы для данной задачи, сколько следует выбрать элементов в каждом слое, как сеть будет реагировать на данные, не включенные в обучающую выборку (какова способность сети к обобщению), и какой размер обучающей выборки необходим для достижения "хорошей" способности сети к обобщению.

Хотя многослойные сети прямого распространения широко применяются для классификации и аппроксимации функций , многие параметры еще должны быть определены путем проб и ошибок. Существующие теоретические результаты дают лишь слабые ориентиры для выбора этих параметров в практических приложениях.

Самоорганизующиеся карты Кохонена

Самоорганизующиеся карты Кохонена (SOM) обладают благоприятным свойством сохранения топологии, которое воспроизводит важный аспект карт признаков в коре головного мозга высокоорганизованных животных. В отображении с сохранением топологии близкие входные примеры возбуждают близкие выходные элементы. На рис. 2 показана основная архитектура сети SOM Кохонена. По существу она представляет собой двумерный массив элементов, причем каждый элемент связан со всеми n входными узлами.

Такая сеть является специальным случаем сети, обучающейся методом соревнования, в которой определяется пространственная окрестность для каждого выходного элемента. Локальная окрестность может быть квадратом, прямоугольником или окружностью. Начальный размер окрестности часто устанавливается в пределах от 1/2 до 2/3 размера сети и сокращается согласно определенному закону (например, по экспоненциально убывающей зависимости). Во время обучения модифицируются все веса, связанные с победителем и его соседними элементами.

Самоорганизующиеся карты (сети) Кохонена могут быть использованы для проектирования многомерных данных, аппроксимации плотности и кластеризации. Эта сеть успешно применялась для распознавания речи, обработки изображений, в робототехнике и в задачах управления . Параметры сети включают в себя размерность массива нейронов, число нейронов в каждом измерении, форму окрестности, закон сжатия окрестности и скорость обучения.

Модели теории адаптивного резонанса

Напомним, что дилемма стабильности-пластичности является важной особенностью обучения методом соревнования. Как обучать новым явлениям (пластичность) и в то же время сохранить стабильность, чтобы существующие знания не были стерты или разрушены?

Карпентер и Гроссберг, разработавшие модели теории адаптивного резонанса (ART1, ART2 и ARTMAP) , сделали попытку решить эту дилемму. Сеть имеет достаточное число выходных элементов, но они не используются до тех пор, пока не возникнет в этом необходимость. Будем говорить, что элемент распределен (не распределен), если он используется (не используется). Обучающий алгоритм корректирует имеющийся прототип категории, только если входной вектор в достаточной степени ему подобен. В этом случае они резонируют. Степень подобия контролируется параметром сходства k, 0

Чтобы проиллюстрировать модель, рассмотрим сеть ART1, которая рассчитана на бинарный (0/1) вход. Упрощенная схема архитектуры ART1 представлена на рис. 5. Она содержит два слоя элементов с полными связями.

Рис. 5.

Направленный сверху вниз весовой вектор w j соответствует элементу j входного слоя, а направленный снизу вверх весовой вектор i связан с выходным элементом i; i является нормализованной версией w i . Векторы w j сохраняют прототипы кластеров. Роль нормализации состоит в том, чтобы предотвратить доминирование векторов с большой длиной над векторами с малой длиной. Сигнал сброса R генерируется только тогда, когда подобие ниже заданного уровня.

Модель ART1 может создать новые категории и отбросить входные примеры, когда сеть исчерпала свою емкость. Однако число обнаруженных сетью категорий чувствительно к параметру сходства.

Сеть Хопфилда

Хопфилд использовал функцию энергии как инструмент для построения рекуррентных сетей и для понимания их динамики . Формализация Хопфилда сделала ясным принцип хранения информации как динамически устойчивых аттракторов и популяризовала использование рекуррентных сетей для ассоциативной памяти и для решения комбинаторных задач оптимизации.

Динамическое изменение состояний сети может быть выполнено по крайней мере двумя способами: синхронно и асинхронно. В первом случае все элементы модифицируются одновременно на каждом временном шаге, во втором - в каждый момент времени выбирается и подвергается обработке один элемент. Этот элемент может выбираться случайно. Главное свойство энергетической функции состоит в том, что в процессе эволюции состояний сети согласно уравнению она уменьшается и достигает локального минимума (аттрактора), в котором она сохраняет постоянную энергию.

Ассоциативная память

Если хранимые в сети образцы являются аттракторами, она может использоваться как ассоциативная память. Любой пример, находящийся в области притяжения хранимого образца, может быть использован как указатель для его восстановления.

Ассоциативная память обычно работает в двух режимах: хранения и восстановления. В режиме хранения веса связей в сети определяются так, чтобы аттракторы запомнили набор p n-мерных образцов {x 1 , x 2 ,..., x p ), которые должны быть сохранены. Во втором режиме входной пример используется как начальное состояние сети, и далее сеть эволюционирует согласно своей динамике. Выходной образец устанавливается, когда сеть достигает равновесия.

Сколько примеров могут быть сохранены в сети с n бинарными элементами? Другими словами, какова емкость памяти сети? Она конечна, так как сеть с n бинарными элементами имеет максимально 2n различных состояний, и не все из них являются аттракторами. Более того, не все аттракторы могут хранить полезные образцы. Ложные аттракторы могут также хранить образцы, но они отличаются от примеров обучающей выборки. Показано, что максимальное число случайных образцов, которые может хранить сеть Хопфилда, составляет Pmax (0.15 n. Когда число сохраняемых образцов p (0.15 n, достигается наиболее успешный вызов данных из памяти. Если запоминаемые образцы представлены ортогональными векторами (в отличие от случайных), то количество сохраненных в памяти образцов будет увеличиваться. Число ложных аттракторов возрастает, когда p достигает емкости сети. Несколько правил обучения предложено для увеличения емкости памяти сети Хопфилда . Заметим, что в сети для хранения p n-битных примеров требуется реализовать 2n связей.

Минимизация энергии

Сеть Хопфилда эволюционирует в направлении уменьшения своей энергии. Это позволяет решать комбинаторные задачи оптимизации, если они могут быть сформулированы как задачи минимизации энергии. В частности, подобным способом может быть сформулирована задача коммивояжера.

Приложения

В начале статьи были описаны 7 классов различных приложений ИНС. Следует иметь в виду, что для успешного решения реальных задач необходимо определить ряд характеристик, включая модель сети, ее размер, функцию активации, параметры обучения и набор обучающих примеров. Для иллюстрации практического применения сетей прямого распространения рассмотрим проблему распознавания изображений символов (задача OCR, которая состоит в обработке отсканированного изображения текста и его преобразовании в текстовую форму).

Система OCR

Система OCR обычно состоит из блоков препроцессирования, сегментации, выделения характеристик, классификации и контекстуальной обработки. Бумажный документ сканируется, и создается изображение в оттенках серого цвета или бинарное (черно-белое) изображение. На стадии препроцессирования применяется фильтрация для удаления шума, область текста локализуется и преобразуется к бинарному изображению с помощью глобального и локального адаптивного порогового преобразователя. На шаге сегментации изображение текста разделяется на отдельные символы. Эта задача особенно трудна для рукописного текста, который содержит связи между соседними символами. Один из эффективных приемов состоит в расчленении составного образца на малые образцы (промежуточная сегментация) и нахождении точек правильной сегментации с использованием выхода классификатора по образцам. Вследствие различного наклона, искажений, помех и стилей письма распознавание сегментированных символов является непростой задачей.

Схемы вычислений

На рис. 6 представлены две основные схемы использования ИНС в OCR системах. Первая выполняет явное извлечение характерных признаков (не обязательно на нейронной сети). Например, это могут быть признаки обхода по контуру. Выделенные признаки подаются на вход многослойной сети прямого распространения . Эта схема отличается гибкостью в отношении использования большого разнообразия признаков. Другая схема не предусматривает явного выделения признаков из исходных данных. Извлечение признаков происходит неявно в скрытых слоях ИНС. Удобство этой схемы состоит в том, что выделение признаков и классификация объединены и обучение происходит одновременно, что дает оптимальный результат классификации. Однако схема требует большего размера сети, чем в первом случае.

Рис. 6.

Типичный пример подобной интегрированной схемы рассмотрен Куном для распознавания zip-кода.

Результаты

ИНС очень эффективно применяются в OCR-приложениях. Однако, нет убедительных доказательств их превосходства над соответствующими статистическими классификаторами. На первой конференции по OCR-системам в 1992 г. более 40 систем распознавания рукописного текста были сопоставлены для одних и тех же данных. Из них 10 лучших использовали вариант многослойной сети прямого распространения или классификатор "ближайшего соседа". ИНС имеют тенденцию к превосходству по скорости и требуемой памяти по сравнению с методом "ближайшего соседа", в отличие от которого скорость классификации с применением ИНС не зависит от объема обучающей выборки. Точность распознавания лучших OCR-систем на базе данных предварительно сегментированных символов составила около 98% для цифр, 96% для заглавных букв и 87 - для строчных. (Низкая точность для строчных букв вызвана в значительной степени тем, что тестовые данные существенно отличались от тренировочных.) По данным теста можно сделать вывод, что на изолированных символах OCR система близка по точности к человеку. Однако человек опережает системы OCR на свободных от ограничений и рукописных документах.

***

Развитие ИНС вызвало немало энтузиазма и критики. Некоторые сравнительные исследования оказались оптимистичными, другие - пессимистичными. Для многих задач, таких как распознавание образов, пока не создано доминирующих подходов. Выбор лучшей технологии должен диктоваться природой задачи. Нужно пытаться понять возможности, предпосылки и область применения различных подходов и максимально использовать их дополнительные преимущества для дальнейшего развития интеллектуальных систем. Подобные усилия могут привести к синергетическому подходу, который объединяет ИНС с другими технологиями для существенного прорыва в решении актуальных проблем. Как недавно заметил Минский, пришло время строить системы за рамками отдельных компонентов. Индивидуальные модули важны, но мы также нуждаемся в методологии интеграции. Ясно, что взаимодействие и совместные работы исследователей в области ИНС и других дисциплин позволят не только избежать повторений, но и (что более важно) стимулируют и придают новые качества развитию отдельных направлений.

Литература

1. DARPA Neural Network Study, AFCEA Int"l Press, Fairfax, Va., 1988.
2. J. Hertz, A. Krogh, and R.G. Palmer, Introduction to the Theory of Neural Computation, Addison-Wesley, Reading, Mass., 1991.
3. S. Haykin, Neural Networks: A Comprehensive Foundation, MacMillan College Publishing Co., New York, 1994.
4. W.S. McCulloch and W. Pitts, "A logical Calculus of Ideas Immanent in Nervous Activity", Bull. Mathematical Biophysics, Vol. 5, 1943, pp. 115-133.
5. R.Rosenblatt, "Principles of Neurodynamics", Spartan Books, New York, 1962.
6. M. Miтnsky and S. Papert, "Perceptrons: An Introduction to Computational Geometry", MIT Press, Cambridge, Mass., 1969.
7. J.J. Hopfield, "Neural Networks and Physical Systems with Emergent Collective Computational Abilities", in Proc. National Academy of Sciencies, USA 79, 1982, pp. 2554-2558.
8. P. Werbos, "Beyond Regression: New Tools for Prediction and Analysis in the Behavioral Sciences", Phd Thesis, Dept. of Applied Mathematics, Harvard University, Cambridge, Mass., 1974.
9. D.E. Rumelhart and J.L. McClelland, Parallel Distributed Processing: Exploration in the Microstructure of Cognition, MIT Press, Cambridge, Mass., 1986.
10. J.A. Anderson and E. Rosenfeld, "Neurocomputing: Foundation of Research", MIT Press, Cambridge, Mass., 1988.
11. S. Brunak and B. Lautrup, Neural Networks, Computers with Intuition, World Scientific, Singapore, 1990.
12. J. Feldman, M.A. Fanty, and N.H. Goddard, "Computing with Structured Neural Networks", Computer, Vol. 21, No. 3, Mar.1988, pp. 91-103.
13. D.O. Hebb, The Organization of Behavior, John Wiley & Sons, New York, 1949.
14. R.P.Lippmann, "An Introduction to Computing with Neural Nets", IEEE ASSP Magazine, Vol.4, No.2, Apr. 1987, pp. 4-22.
15. A.K. Jain and J. Mao, "Neural Networks and Pattern Recognition", in Computational Intelligence: Imitating Life, J.M. Zurada, R.J. Marks II, and C.J. Robinson, eds., IEEE Press, Piscataway, N.J., 1994, pp. 194-212.
16. T. Kohonen, SelfOrganization and Associative Memory, Third Edition, Springer-Verlag, New York, 1989.
17. G.A.Carpenter and S. Grossberg, Pattern Recognition by SelfOrganizing Neural Networks, MIT Press, Cambridge, Mass., 1991.
18. "The First Census Optical Character Recognition System Conference", R.A.Wilkinson et al., eds., . Tech. Report, NISTIR 4912, US Deop. Commerse, NIST, Gaithersburg, Md., 1992.
19. K. Mohiuddin and J. Mao, "A Comparative Study of Different Classifiers for Handprinted Character Recognition", in Pattern Recognition in Practice IV, E.S. Gelsema and L.N. Kanal, eds., Elsevier Science, The Netherlands, 1994, pp. 437-448.
20. Y.Le Cun et al., "Back-Propagation Applied to Handwritten Zip Code Recognition", Neural Computation, Vol 1, 1989, pp. 541-551.
21. M. Minsky, "Logical Versus Analogical or Symbolic Versus Connectionist or Neat Versus Scruffy", AI Magazine, Vol. 65, No. 2, 1991, pp. 34-51.

Анил К. Джейн ([email protected]) - Мичиганский университет; Жианчанг Мао, К М. Моиуддин - Исследовательский Центр IBM в Альмадене.

Anil K., Jain, Jianchang Mao, K.M. Mohiuddin. Artificial Neural Networks: A Tutorialп, IEEE Computer, Vol.29, No.3, March/1996, pp. 31-44. IEEE Computer Society. All rights reserved. Reprinted with permission.