Классификация искусственных нейронных сетей. Что такое искусственные нейронные сети

Введение

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

Термин «нейронные сети» сформировался к середине 50-х годов XX века. Основные результаты в этой области связаны с именами У. Маккалоха, Д. Хебба, Ф. Розенблатта, М. Минского, Дж. Хопфилда. Приведем краткую историческую справку .

1943 г. У. Маккалох (W. McCulloch) и У. Питтс (W. Pitts) предложили модель нейрона и сформулировали основные положения теории функционирования головного мозга.
1949 г. Д. Хебб (D. Hebb) высказал идеи о характере соединений нейронов мозга и их взаимодействии (клеточные ансамбли, синаптическая пластичность). Впервые предложил правила обучения нейронной сети.
1957 г. Ф. Розенблатт (F. Rosenblatt) разработал принципы организации и функционирования персептронов, предложил вариант технической реализации первого в мире нейрокомпьютера Mark.
1959 г. Д. Хьюбел (D, Hubel) и Т. Визель (Т. Wiesel) показали распределенный и параллельный характер хранения и обработки информации в биологических нейронных сетях.
1960-1968 гг. Активные исследования в области искусственных нейронных сетей, например, АДАЛИНА и МАДАЛИНА В. Уидроу (W. Widrow) (1960-1962 гг.), ассоциативные матрицы К. Штайнбуха (К. Steinbuch) (1961 г.).
1969 г. Публикация книги М. Минского (М. Minsky) и С. Пей-перта (S. Papert) «Персептроны», в которой доказывается принципиальная ограниченность возможностей персептронов. Угасание интереса к искусственным нейронным сетям.
1970-1976 гг. Активные разработки в области персептронов в СССР (основные заказчики - военные ведомства).
Конец 1970-х гг. Возобновление интереса к искусственным нейронным сетям как следствие накопления новых знаний о деятельности мозга, а также значительного прогресса в области микроэлектроники и компьютерной техники.
1982-1985 гг. Дж. Хопфилд (J. Hopfield) предложил семейство оптимизирующих нейронных сетей, моделирующих ассоциативную память.
1985 г. Появление первых коммерческих нейрокомпьютеров, например, Mark III фирмы TRW (США).
1987 г. Начало широкомасштабного финансирования разработок в области ИНС и НК в США, Японии и Западной Европе (японская программа «Human Frontiers» и европейская программа «Basic Research in Adaptive Intelligence and Neurocomputing»).
1989 г. Разработки и исследования в области ИНС и НК ведутся практически всеми крупными электротехническими фирмами. Нейрокомпьютеры становятся одним из самых динамичных секторов рынка (за два года объем продаж вырос в пять раз). Агентством DARPA (Defence Advanced Research Projects Agency) министерства обороны США начато финансирование программы по созданию сверхбыстродействующих образцов НК для разнообразных применений.
1990 г. Активизация советских исследовательских организаций в области ИНС и НК (Институт кибернетики им. Глушкова в Киеве, Институт многопроцессорных вычислительных систем в Таганроге, Институт нейрокибернетики в Ростове-на-Дону). Общее число фирм, специализирующихся в области ИНС и НК, достигает трехсот.
1991 г. Годовой объем продаж на рынке ИНС и НК приблизился к 140 млн. долларам. Создаются центры нейрокомпьютеров в Москве, Киеве, Минске, Новосибирске, С.-Петербурге.
1992 г. Работы в области ИНС находятся стадии интенсивного развития. Ежегодно проводится десятки международных конференций и форумов по нейронным сетям, число специализированных периодических научных изданий по указанной тематике достигло двух десятков наименований.
1996 г. Число международных конференций по ИНС и НК достигло ста.
1997 г. Годовой объем продаж на рынке ИНС и НК превысил 2 млрд. долларов, а ежегодный прирост составил 50%.
2000 г. Переход на субмикронные и нанотехнологии, а также успехи молекулярной и биомолекулярной технологии приводят к принципиально новым архитектурным и технологическим решениям по созданию нейрокомпьютеров.

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

Представим некоторые проблемы, решаемые искусственными нейронными сетями

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

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

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

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

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

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

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

Каким образом нейронная сеть решает все эти, часто неформализуемые или трудно формализуемые задачи? Как известно, для решения таких задач традиционно применяются два основных подхода. Первый, основанный на правилах (rule-based), характерен для экспертных систем. Он базируется на описании предметной области в виде набора правил (аксиом) «если..., то...» и правил вывода. Искомое знание представляется в этом случае теоремой, истинность которой доказывается посредством построения цепочки вывода. При этом подходе, однако, необходимо заранее знать весь набор закономерностей, описывающих предметную область. При использовании другого подхода, основанного на примерах (case-based), надо лишь иметь достаточное количество примеров для настройки адаптивной системы с заданной степенью достоверности. Нейронные сети представляют собой классический пример такого подхода.

ОСНОВНЫЕ ПОЛОЖЕНИЯ ТЕОРИИ ИСКУССТВЕННЫХ НЕЙРОННЫХ СЕТЕЙ

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

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

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

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

Рис. 1. Взаимосвязь биологических нейронов

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

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

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

Структура и свойства искусственного нейрона

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

Рис. 2. Структура искусственного нейрона

Нейрон в целом реализует скалярную функцию векторного аргумента. Математическая модель нейрона:

где w i, - вес (weight) синапса, i = 1...n; b - значение смещения (bias); s - результат суммирования (sum); x, - компонент входного вектора (входной сигнал), x i = 1... n ; у - выходной сигнал нейрона; n - число входов нейрона; f - нелинейное преобразование (функция активации).

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

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

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

На входной сигнал (s) нелинейный преобразователь отвечает выходным сигналом f(s), который представляет собой выход у нейрона. Примеры активационных функций представлены в табл. 1. и на рис. 3.

Таблица 1

Рис. 3. Примеры активационных функций
а - функция единичного скачка; б - линейный порог (гистерезис);
в - сигмоид (логистическая функция); г - сигмоид (гиперболический тангенс)

Одной из наиболее распространенных является нелинейная функция активации с насыщением, так называемая логистическая функция или сигмоид (функция S-образного вида):

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

Классификация нейронных сетей и их свойства

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

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

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

С точки зрения топологии можно выделить три основных типа нейронных сетей:

Полносвязные (рис. 4, а);
многослойные или слоистые (рис. 4, б);
слабосвязные (с локальными связями) (рис. 4, в).

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

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

В многослойных нейронных сетях нейроны объединяются в слои. Слой содержит совокупность нейронов с едиными входными сигналами. Число нейронов в слое может быть любым и не зависит от количества нейронов в других слоях. В общем случае сеть состоит из Q слоев, пронумерованных слева направо. Внешние входные сигналы подаются на входы нейронов входного слоя (его часто нумеруют как нулевой), а выходами сети являются выходные сигналы последнего слоя. Кроме входного и выходного слоев в многослойной нейронной сети есть один или несколько скрытых слоев. Связи от выходов нейронов некоторого слоя q к входам нейронов следующего слоя (q +1) называются последовательными.

В свою очередь, среди многослойных нейронных сетей выделяют следующие типы.

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

2) Сети без обратных связей. В таких сетях нейроны входного слоя получают входные сигналы, преобразуют их и передают нейронам первого скрытого слоя, и так далее вплоть до выходного, который выдает сигналы для интерпретатора и пользователя. Если не оговорено противное, то каждый выходной сигнал q-гo слоя подастся на вход всех нейронов (q+1)-гo слоя; однако возможен вариант соединения q-гo слоя с произвольным (q+p)-м слоем.

Среди многослойных сетей без обратных связей различают полносвязанные (выход каждого нейрона q-гo слоя связан с входом каждого нейрона (q+1)-гo слоя) и частично полносвязанные. Классическим вариантом слоистых сетей являются полносвязанные сети прямого распространения (рис. 5).

Рис. 5. Многослойная (двухслойная) сеть прямого распространения

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

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

В качестве примера сетей с обратными связями на рис. 6 представлены частично-рекуррентные сети Элмана и Жордана.

Рис. 6. Частично-рекуррентные сети: а - Элмана, б – Жордана

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

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

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

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

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

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

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

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

Многие задачи распознавания образов (зрительных, речевых), выполнения функциональных преобразований при обработке сигналов, управления, прогнозирования, идентификации сложных систем, сводятся к следующей математической постановке. Необходимо построить такое отображение X -> У, чтобы на каждый возможный входной сигнал X формировался правильный выходной сигнал У. Отображение задается конечным набором пар (<вход>, <известный выход>). Число этих пар (обучающих примеров) существенно меньше общего числа возможных сочетаний значений входных и выходных сигналов. Совокупность всех обучающих примеров носит название обучающей выборки.

В задачах распознавания образов X - некоторое представление образа (изображение, вектор), У - номер класса, к которому принадлежит входной образ.

В задачах управления X - набор контролируемых параметров управляемого объекта, У - код, определяющий управляющее воздействие, соответствующее текущим значениям контролируемых параметров.

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

При идентификации X и У представляют входные и выходные сигналы системы соответственно.

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

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

Теорема Колмогорова-Арнольда

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

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

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

Работа Хехт-Нильсена

Теорема о представлении непрерывных функций нескольких переменных в виде суперпозиций непрерывных функций одного переменного и сложения в 1987 году была переложена Хехт-Нильсеном для нейронных сетей.

Теорема Хехт-Нильсена доказывает представимость функции многих переменных достаточно общего вида с помощью двухслойной нейронной сети с прямыми полными связями с n нейронами входного слоя, (2 n +1) нейронами скрытого слоя с заранее известными ограниченными функциями активации (например, сиг-моидальными) и m нейронами выходного слоя с неизвестными функциями активации.

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

Следствия из теоремы Колмогорова-Арнольда - Хехт-Нильсена

Следствие 1 . Из теоремы Хехт-Нильсена следует представимость любой многомерной функции нескольких переменных с помощью нейронной сети фиксированной размерности. Неизвестными остаются следующие характеристики функций активации нейронов:

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

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

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

Следствие 2. Для любого множества пар (X k, Y k) (где Y k - скаляр) существует двухслойная однородная (с одинаковыми функциями активации) нейронная сеть первого порядка с последовательными связями и с конечным числом нейронов, которая выполняет отображение X -> У, выдавая на каждый входной сигнал X k правильный выходной сигнал У k. Нейроны в такой двухслойной нейронной сети должны иметь сигмоидальные передаточные функции.

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

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

Утверждение. Для любого множества пар входных-выходных векторов произвольной размерности {(X k, У k), k = 1... N } существует однородная двухслойная нейронная сеть с последовательными связями, с сигмоидальными передаточными функциями и с конечным числом нейронов, которая для каждого входного вектора X k формирует соответствующий ему выходной вектор Y k.

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

Для оценки числа нейронов с скрытых слоях однородных нейронных сетей можно воспользоваться формулой для оценки необходимого числа синаптических весов L w в многослойной сети с сигмоидальными передаточными функциями:

mN / (1+log 2N) < L w < m (1+ N/m)(n+m+1)+m (1.5)

где n - размерность входного сигнала, m - размерность выходили сигнала, N - число элементов обучающей выборки.

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

Известны и другие формулы для оценки, например:

2 (n + L + m) < N < 10 (n + L+ m),
N/10 - n - m < L < N/2 - n – m

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

Аналогичная ситуация складывается и с многослойными нейронными сетями, в которых помимо последовательных связей используются и прямые (связи от слоя с номером q к слою с номером (q+p), где р > 1). Нет строгой теории, которая показывала бы возможность и целесообразность построения таких сетей.

Наибольшие проблемы возникают при использовании сетей циклического функционирования. К этой группе относятся многослойные сети с обратными связями (от слоя с номером q к слою с номером (q+p), где р < 0), а также полносвязные сети. Для успешного функционирования таких сетей необходимо соблюдение условий динамической устойчивости, иначе сеть может не сойтись к правильному решению, либо, достигнув на некоторой итерации правильного значения выходного сигнала, после нескольких итераций уйти от этого значения. Проблема динамической устойчивости подробно исследована, пожалуй, лишь для одной модели из рассматриваемой группы - нейронной сети Хопфилда.

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

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

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

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

13.10.2017

Можно провести следующую классификацию нейронных сетей:

Характер обучения

Классификация нейронных сетей по характеру обучения делит их на:

  • нейронные сети, использующие обучение с учителем;
  • нейронные сети, использующие обучение без учителя.

Рассмотрим это подробнее.

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

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

Настройка весов

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

Тип входной информации

  • аналоговая – входная информация представлена в форме действительных чисел;
  • двоичная – вся входная информация в таких сетях представляется в виде нулей и единиц.

Применяемая модель нейронной сети

Сети прямого распространения – все связи направлены строго от входных нейронов к выходным. К таким сетям относятся, например: простейший персептрон (разработанный Розенблаттом) и многослойный персептрон.

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

Радиально базисные функции – вид нейронной сети, имеющий скрытый слой из радиальных элементов и выходной слой из линейных элементов. Сети этого типа довольно компактны и быстро обучаются. Предложены в работах Broomhead and Lowe (1988) и Moody and Darkin (1989). Радиально базисная сеть обладает следующими особенностями: один скрытый слой, только нейроны скрытого слоя имеют нелинейную активационную функцию и синаптические веса входного и скрытого слоев равны единицы.

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

Типы нейронных сетей

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

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

Часть 1: Базовые архитектуры

Нейронные сети прямого распространения (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. Стоит заметить, что в большинстве случаев сети передаётся не строка, а какой бинарный вектор: например, - это кошка, - собака, а - и кошка, и собака.

Часть 2: Продвинутые конфигурации

Глубинные свёрточные обратные графические сети (deep convolutional inverse graphics networks, DCIGN) названы слегка некорректно, поскольку они по сути являются вариационными автокодировщиками, кодирующая и декодирующая части которых представлены свёрточной и развёртывающей НС соответственно. Сети такого типа моделируют свойства в виде вероятностей, поэтому их можно научить создавать картинку с собакой и кошкой, даже если сеть видела только картинки, на которых было только одно из животных. Возможно и удаление одного из двух объектов. Также были созданы сети, которые могли менять источник освещения и вращать объект. Сети такого типа обычно обучают методом обратного распространения ошибки.

Генеративные состязательные сети (generative adversarial networks, GAN) - это сети другого вида, они похожи на близнецов. Такие сети состоят из любых двух (обычно из FF и CNN), одна из которых контент генерирует, а другая - оценивает. Сеть-дискриминатор получает обучающие или созданные генератором данные. Степень угадывания дискриминатором источника данных в дальнейшем участвует в формировании ошибки. Таким образом, возникает состязание между генератором и дискриминатором, где первый учится обманывать первого, а второй - раскрывать обман. Обучать такие сети весьма тяжело, поскольку нужно не только обучить каждую из них, но и настроить баланс.

Рекуррентные нейронные сети (recurrent neural networks, RNN) - это сети типа FFNN, но с особенностью: нейроны получают информацию не только от предыдущего слоя, но и от самих себя предыдущего прохода. Это означает, что порядок, в котором вы подаёте данные и обучаете сеть, становится важным. Большой сложностью сетей RNN является проблема исчезающего (или взрывного) градиента, которая заключается в быстрой потере информации с течением времени. Конечно, это влияет лишь на веса, а не состояния нейронов, но ведь именно в них накапливается информация. Обычно сети такого типа используются для автоматического дополнения информации.

Сети с долгой краткосрочной памятью (long short term memory, LSTM) стараются решить вышеупомянутую проблему потери информации, используя фильтры и явно заданную клетку памяти. У каждого нейрона есть клетка памяти и три фильтра: входной, выходной и забывающий. Целью этих фильтров является защита информации. Входной фильтр определяет, сколько информации из предыдущего слоя будет храниться в клетке. Выходной фильтр определяет, сколько информации получат следующие слои. Ну а забывающий фильтр, каким бы странным не казался, также выполняет полезную функцию: например, если сеть изучает книгу и переходит на новую главу, какие-то символы из старой можно забыть. Такие сети способны научиться создавать сложные структуры, например, писать как Шекспир или сочинять простую музыку, но и ресурсов они потребляют немало.

Управляемые рекуррентные нейроны (gated recurrent units, GRU) - это небольшая вариация предыдущей сети. У них на один фильтр меньше, и связи реализованы иначе. Фильтр обновления определяет, сколько информации останется от прошлого состояния и сколько будет взято из предыдущего слоя. Фильтр сброса работает примерно как забывающий фильтр.

Нейронные машины Тьюринга (neural Turing machines, NTM) можно рассматривать как абстрактную модель LSTM и попытку показать, что на самом деле происходит внутри нейронной сети. Ячейка памяти не помещена в нейрон, а размещена отдельно с целью объединить эффективность обычного хранилища данных и мощь нейронной сети. Собственно, поэтому такие сети и называются машинами Тьюринга - в силу способности читать и записывать данные и менять состояние в зависимости от прочитанного они являются тьюринг-полными.

Двунаправленные RNN, LSTM и GRU (bidirectional recurrent neural networks, bidirectional long / short term memory networks и bidirectional gated recurrent units, BiRNN, BiLSTM и BiGRU) не показаны в таблице, поскольку они ничем не отличаются от своих однонаправленных вариантов. Разница заключается в том, что эти сети используют не только данные из «прошлого», но и из «будущего». Например, обычную сеть типа LSTM обучают угадывать слово «рыба», подавая буквы по одной, а двунаправленную - подавая ещё и следующую букву из последовательности. Такие сети способны, например, не только расширять изображение по краям, но и заполнять дыры внутри.

Глубинные остаточные сети (deep residual networks, DRN) - это очень глубокие сети типа FFNN с дополнительными связями между отделёнными друг от друга слоями. Такие сети можно обучать на шаблонах глубиной аж до 150 слоёв - гораздо больше, чем можно было бы ожидать. Однако, было показано, что эти сети мало чем отличаются от рекуррентных, и их часто сравнивают с сетями LSTM.

Нейронная эхо-сеть (echo state networks, ESN) - это ещё одна разновидность рекуррентных сетей. Её особенностью является отсутствие сформированных слоёв, т.е. связи между нейронами случайны. Соответственно, метод обратного распространения ошибки не срабатывает. Вместо этого нужно подавать входных данные, передавать их по сети и обновлять нейроны, наблюдая за выходными данными.

Метод экстремального обучения (extreme learning machines, ELM) - это, по сути, сеть типа FFNN, но со случайными связями. Они очень похожи на сети LSM и ESN, но используются как FFNN. Так происходит не только потому, что они не рекуррентны, но и потому, что их можно обучать просто методом обратного распространения ошибки.

Метод неустойчивых состояний (liquid state machines, LSM) похож на эхо-сеть, но есть существенное отличие: сигмоидная активация заменена пороговой функцией, а каждый нейрон является накопительной ячейкой памяти. Таким образом, при обновлении нейрона его значение не становится равным сумме соседей, а прибавляется само к себе, и при достижении порога сообщается другим нейронам.

Метод опорных векторов (support vector machines, SVM) находит оптимальные решения задачи оптимизации. Классическая версия способна категоризировать линейно разделяемые данные: например, различать изображения с котом Томом и с котом Гарфилдом. В процессе обучения сеть как бы размещает все данные на 2D-графике и пытается разделить данные прямой линией так, чтобы с каждой стороны были данные только одного класса и чтобы расстояние от данные до линии было максимальным. Используя трюк с ядром, можно классифицировать данные размерности n. Что характерно, этот метод не всегда рассматривается как нейронная сеть.

И наконец, нейронные сети Кохонена (Kohonen networks, KN) , также известные как самоорганизующиеся карты (self organising (feature) maps, SOM, SOFM) , завершают наш список. Эти сети используют соревновательное обучение для классификации данных без учителя. Сети подаются входные данные, после чего сеть определяет, какие из нейронов максимально совпадают с ними. После этого эти нейроны изменяются для ещё большей точности совпадения, в процессе двигая за собой соседей. Иногда карты Кохонена также не считаются нейронными сетями.

Лекция №4

Топология нейронных сетей.

Нейронные сети, с точки зрения топологического раздела, можно разделить на 3 типа:

1.Полносвязанные сети.

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

2. Многослойные сети (слоистые).

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

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

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

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

3.Слабосвзяные сети.

Многослойные нейронные сети подразделяются на следующие типы:

  1. Монотонные нейронные сети.

Это нейронные сети представляющие собой частный случай многослойных сетей с дополнительными условиями на связи и элементы. Каждый слой сети кроме выходного разделяется на 2 блока: А ) Возбуждающий Б ) Тормозящий.

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

2. Нейронные сети без обратных связей

В этих сетях нейроны входного слоя, получив входные сигналы, преобразуют их и передают нейрону первого скрытого слоя, далее срабатывает первый скрытый слой и так далее, до Q-го слоя, который выдаёт выходные сигналы.



Классическим вариантом многослойных сетей являются сети прямого распространения которые называются многослойными персептронами. К многослойным сетям без обратных связей относится свыше 80% приложений нейронных сетей.

Рис. 1

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

Понятия обратной связи характерно для динамических сетей, в которых выходной сигнал некоторого элемента системы оказывает влияние на входной сигнал этого элемента.

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

К нейронным сетям с обратными связями относятся, например сети Элмана (Рис. 2) и Джордано (Рис. 3)

Выход
Рис. 3
Сеть Джордано

Следует отметить, что проблемы синтеза искусственной нейронной сети сильно зависит от решаемой задачи.

Не существует формального алгоритма по определению необходимой архитектуры.

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

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

Нейронная сеть представляет собой адаптивную систему.

Её цикл состоит из 2 фаз: обучение (тренировки) и работа сети.

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

Теория обучения рассматривает 3 фундаментальных свойства, связанных с обучение нейронной сети по примерам:

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

2) Сложность образов – она определяет число обучающих примеров необходимых для достижения способности нейронной сети к обобщению.

3) Вычислительная сложность – важной характеристикой является время, затраченное на обучение. Как правило, время обучения и качество обучения связаны обратной зависимостью. Выбирать эти параметры приходится путём компромисса.

С понятием обучения ассоциируется много видов деятельности. В связи с этим сложно дать этому процессу однозначное определение.

С позиции нейронной сети можно использовать следующее определение:

Обучение – это процесс, в котором свободные параметры нейронной сети настраиваются под средством моделирования среды, в которую эта сеть встроена. Тип обучения определяется способом подстройки этих параметров. Данное определение процесса обучения предполагает следующую последовательность событий:

А ) В нейронную сеть поступают стимулы из внешней среды

Б ) В результате этого изменяются свободные параметры нейронной сети

В ) После изменения внутренней структуры нейронная сеть отвечает на возбуждение уже иным образом.

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

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

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

Парадигмы обучения нейронных сетей

Существует 3 парадигмы обучения нейронных сетей:

1) Обучение с учителем (Контролируемое обучение)

2) Обучение без учителя (Самообучение)

3) Смешенное (С учителем и без учителя)

Обучение с учителем

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

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

Данные, которые обычно используются для обучения нейронной сети, часто разделяются на 2 категории:

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

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

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

Выходные нейроны, выходные значения которых представляют выходы нейронной сети; преобразования в них осуществляются по выражениям (1.1) и (1.2);

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

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

С точки зрения топологии можно выделить три основных типа нейронных сетей:

Полносвязные (рис. 1.4, а);

Многослойные или слоистые (рис. 1.4, б);

Слабосвязные (с локальными связями) (рис. 1.4, в).

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

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

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

сигналы последнего слоя. Кроме входного и выходного слоев в многослойной нейронной сети есть один или несколько скрытых слоев. Связи от выходов нейронов некоторого слоя к входам нейронов следующего слоя называются последовательными.

В свою очередь, среди многослойных нейронных сетей выделяют следующие типы.

1) Монотонные.

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

Рис. 1.5 Многослойная (двухслойная) сеть прямого распространения

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

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

Среди многослойных сетей без обратных связей различают полносвязанные (выход каждого нейрона слоя связан с входом каждого нейрона слоя) и частично полносвязанные. Классическим вариантом слоистых сетей являются полносвязанные сети прямого распространения (рис. 1.5).

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

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

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

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

В качестве примера сетей с обратными связями на рис. 1.6 представлены частично-рекуррентные сети Элмана и Жордана.

Рис. 1.6 Частично-рекуррентные сети а - Элмана, б - Жордана

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

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

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

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

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

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

Возможности сети возрастают с увеличением числа нейронов сети, плотности связей между ними и числом слоев;

Введение обратных связей наряду с увеличением возможностей сети поднимает вопрос о динамической устойчивости сети;

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

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

Многие задачи распознавания образов (зрительных, речевых), выполнения функциональных преобразований при обработке сигналов, управления, прогнозирования, идентификации сложных систем, сводятся к следующей математической постановке. Необходимо построить такое отображение чтобы на каждый возможный входной сигнал X формировался правильный выходной сигнал У. Отображение задается конечным набором пар («вход», «известный выход»). Число этих пар (обучающих примеров) существенно меньше общего числа возможных сочетаний значений входных и выходных сигналов. Совокупность всех обучающих примеров носит название обучающей выборки.

В задачах распознавания образов X - некоторое представление образа (изображение, вектор), У - номер класса, к которому принадлежит входной образ.

В задачах управления X - набор контролируемых параметров управляемого объекта, Y - код, определяющий управляющее воздействие, соответствующее текущим значениям контролируемых параметров.

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

При идентификации X и Y представляют входные и выходные сигналы системы соответственно.

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

В результате отображения необходимо обеспечить формирование правильных выходных сигналов в соответствии:

Со всеми примерами обучающей выборки;

Со всеми возможными входными сигналами, которые не вошли в обучающую выборку.

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

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

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

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

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

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

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

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

История нейронных сетей

Какова же история развития нейронных сетей в науке и технике? Она берет свое начало с появлением первых компьютеров или ЭВМ (электронно-вычислительная машина) как их называли в те времена. Так еще в конце 1940-х годов некто Дональд Хебб разработал механизм нейронной сети, чем заложил правила обучения ЭВМ, этих «протокомпьютеров».

Дальнейшая хронология событий была следующей:

  • В 1954 году происходит первое практическое использование нейронных сетей в работе ЭВМ.
  • В 1958 году Франком Розенблатом разработан алгоритм распознавания образов и математическая аннотация к нему.
  • В 1960-х годах интерес к разработке нейронных сетей несколько угас из-за слабых мощностей компьютеров того времени.
  • И снова возродился уже в 1980-х годах, именно в этот период появляется система с механизмом обратной связи, разрабатываются алгоритмы самообучения.
  • К 2000 году мощности компьютеров выросли настолько, что смогли воплотить самые смелые мечты ученых прошлого. В это время появляются программы распознавания голоса, компьютерного зрения и многое другое.

Искусственные нейронные сети

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

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

Применение нейронных сетей

Область применения искусственных нейронных сетей с каждым годом все более расширяется, на сегодняшний день они используются в таких сферах как:

  • Машинное обучение (machine learning), представляющее собой разновидность искусственного интеллекта. В основе его лежит обучение ИИ на примере миллионов однотипных задач. В наше время машинное обучение активно внедряют поисковые системы Гугл, Яндекс, Бинг, Байду. Так на основе миллионов поисковых запросов, которые все мы каждый день вводим в Гугле, их алгоритмы учатся показывать нам наиболее релевантную выдачу, чтобы мы могли найти именно то, что ищем.
  • В роботехнике нейронные сети используются в выработке многочисленных алгоритмов для железных «мозгов» роботов.
  • Архитекторы компьютерных систем пользуются нейронными сетями для решения проблемы параллельных вычислений.
  • С помощью нейронных сетей математики могут разрешать разные сложные математические задачи.

Типы нейронных сетей

В целом для разных задач применяются различные виды и типы нейронных сетей, среди которых можно выделить:

  • сверточные нейронные сети,
  • реккурентные нейронные сети,
  • нейронную сеть Хопфилда.

Сверточные нейронные сети

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

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

Рекуррентные нейронные сети

Рекуррентными называют такие нейронные сети, соединения между нейронами которых, образуют ориентировочный цикл. Имеет такие характеристики:

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

Рекуррентные нейронные сети применяются в распознавании и обработке текстовых данных (в частотности на их основе работает Гугл переводчик, алгоритм Яндекс «Палех», голосовой помощник Apple Siri).

Нейронные сети, видео

И в завершение интересное видео о нейронных сетях.