Лабораторная работа № 3, Цель работы, Теоретическое введение - Интеллектуальные информационные системы

Знакомство с нейронными сетями

Цель работы

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

Теоретическое введение

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

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

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

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

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

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

(6)

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

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

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

Функции активации

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

(7)

При уменьшении а сигмоид становится более пологим, в пределе при а = 0 вырождаясь в горизонтальную линию на уровне 0,5, при увеличении а сигмоид приближается к виду функции единичного скачка с порогом Т. Из выражения для сигмоида очевидно, что выходное значение нейрона лежит в диапазоне (0, 1). Одно из ценных свойств сигмоидальной функции - простое выражение для ее производной:

(8)

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

Таблица 3 Функции активации нейронов

Название

Формула

Область значений

Линейная

F (s) = k s

(-?, ?)

Полулинейная

(0, ?)

Логистическая

(сигмоидальная)

(0, 1)

Гиперболический тангенс (сигмоидальная)

(-1, 1)

Экспоненциальная

(0, ?)

Синусоидальная

(-1, 1)

Сигмоидальная

(рациональная)

(-1, 1)

Шаговая

(линейная с насыщением)

(-1, 1)

Пороговая

(0, 1)

Модульная

(0, ?)

Знаковая

(сигнатурная)

(-1, 1)

Квадратичная

(0, ?)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

На рис. 13 представлена многослойная НС.

Входной слой (input layer) нейронных элементов выполняет распределительные функции. Выходной слой (output layer) нейронов служит для обработки информации от предыдущих слоев и выдачи результатов. Слои нейронных элементов, расположенные между входным и выходным слоями, называются скрытыми (hidden layers). Как и выходной слой, скрытые слои являются обрабатывающими.

многослойная нейронная сеть

Рис. 13 Многослойная нейронная сеть

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

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

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

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

Существуют различные варианты архитектур рекуррентных нейронных сетей. Сеть Джордана: В 1986 г. Джордан (Jordan) предложил рекуррентную сеть (рис. 14), в которой выходы нейронных элементов последнего слоя соединены посредством специальных входных нейронов с нейронами промежуточного слоя. Такие входные нейронные элементы называются контекстными нейронами (context units). Они распределяют выходные данные нейронной сети на нейронные элементы промежуточного слоя.

архитектура рекуррентной нейронной сети с обратными связями от нейронов выходного слоя

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

Число контекстных нейронов равняется числу выходных нейронных элементов рекуррентной сети. В качестве выходного слоя таких сетей используются нейронные элементы с линейной функцией активации. Тогда выходное значение j-го нейронного элемента последнего слоя определяется по формуле

(9)

Где vIj - весовой коэффициент между i-м нейроном промежуточного и j-м нейроном выходного слоев; PI(t)- выходное значение i-го нейрона промежуточного слоя; tJ - пороговое значение j-го нейрона выходного слоя. Взвешенная сумма i-гo нейронного элемента промежуточного слоя определяется следующим образом:

(10)

Где wIj - весовой коэффициент между j-м нейроном входного и i-м нейроном промежуточного слоев; р - число нейронов выходного слоя; wKi-- весовой коэффициент между k-м контекстным нейроном и i-м нейроном промежуточного слоя; T - пороговое значение i-го нейрона промежуточного слоя; n - размерность входного вектора.

Тогда выходное значение i-го нейрона скрытого слоя:

(11)

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

Для обучения рекуррентных нейронных сетей применяется алгоритм обратного распространения ошибки.

Алгоритм обучения рекуррентной нейронной сети в общем случае состоит из следующих шагов:

    1. В начальный момент времени t = 1 все контекстные нейроны устанавливаются в нулевое состояние - выходные значения приравниваются нулю. 2. Входной образ подается на сеть и происходит прямое распространение его в нейронной сети. 3. В соответствии с алгоритмом обратного распространения ошибки модифицируются весовые коэффициенты и пороговые значения нейронных элементов. 4. Устанавливается t = t +1 и осуществляется переход к шагу 2. Обучение рекуррентной сети производится до тех пор, пока суммарная среднеквадратичная ошибка сети не станет меньше заданной.

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

Рециркуляционные сети характеризуются как прямым Y = f(X), так и обратным X = f(У) преобразованием информации. Задача такого преобразования - достижение наилучшего автопрогноза или самовоспроизводимости вектора X. Рециркуляционные нейронные сети применяются для сжатия (прямое преобразование) и восстановления исходной (обратное преобразование) информации. Такие сети являются самоорганизующимися в процессе работы, где обучение производится без учителя.

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

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

архитектура рециркуляционной нейронной сети

Рис. 15 Архитектура рециркуляционной нейронной сети

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

Такое представление сети является эквивалентным и характеризует полный цикл преобразования информации. При этом промежуточный слой нейронных элементов производит кодирование (сжатие) входных данных X, а последний слой - восстановление сжатой информации Y. Слой нейронной сети, соответствующий матрице связи W, назовем прямым, а соответствующий матрице связей W' - обратным.

эквивалентное представление рециркуляционной сети

Рис. 16 Эквивалентное представление рециркуляционной сети

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

Релаксационные НС

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

Нейронные сети Хопфилда

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

Обучение сети Хопфилда производится по правилу Хебба.

Структура сети Хопфилда (рис.17) состоит из одного слоя нейронов, число которых определяет число входов и выходов сети. Выход каждого нейрона соединен с входами всех остальных нейронов. Выходные сигналы нейронов являются одновременно входными сигналами сети: Xi(k)=Yi(k-1)

Основные зависимости, определяющие сеть Хопфилда, можно представить в виде:

(12)

С начальным условием yI(0) = xJ. В процессе функционирования сети Хопфилда можно выделить два режима: обучения и классификации. В режиме обучения на основе известных обучающих выборок х подбираются весовые коэффициенты wIj. В режиме классификации при зафиксированных значениях весов и вводе конкретного начального состояния нейронов у(0) = х возникает переходный процесс, протекающий в соответствии с выражением (Формула выше) и завершающийся в одном из локальных минимумов, для которого y(k) = y(k-l).

Для безошибочной работы сети Хопфилда число запоминаемых эталонов N не должно превышать 0,15n (n-число нейронов).

структура нейронной сети хопфилда

Рис. 17 Структура нейронной сети Хопфилда

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

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

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

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

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

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

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

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

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

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

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

Похожие статьи




Лабораторная работа № 3, Цель работы, Теоретическое введение - Интеллектуальные информационные системы

Предыдущая | Следующая