Автор: Пользователь скрыл имя, 04 Апреля 2013 в 17:11, дипломная работа
Цель - изучение основных принципов работы искусственной вычислительной модели биологического нейрона и их демонстрация на примере решения задачи XOR.
Задачи
Изучение общих вопросов организации искусственных нейронных сетей;
Анализ способности к обучению искусственных нейронных сетей;
Изучение проблемы ограниченности возможностей однослойных персептронов;
Создание программного приложения, демонстрирующего решение проблемы XOR – исключающего ИЛИ.
Введение 3
1 Интеллектуальные системы на основе искусственных нейронных сетей 6
1.1 Аппаратное моделирование структур, подобных структуре мозга 6
1.2 Архитектура нейронной сети 13
1.3 Обучение искусственных нейронных сетей. 25
2 Многослойные сети прямого распространения 33
2.1 Ограниченность возможностей однослойных персептронов. 33
2.2 Принцип обучения многослойной нейронной сети с помощью алгоритма обратного распространения 37
2.3 Пример решения задачи XOR - исключающего ИЛИ 50
Заключение 59
Список используемой литературы 61
Приложение А 62
Биологические нейроны представляют собой нервные клетки, соединяемые между собой дендритами. Протяженность дендритов может достигать 1 метра. Точки соединения дендритов называются синапсами.
По дендритам сигналы
Схема соединения двух нейронов показана на рис. 1.1.
Рисунок 1.1 Нейрон, аксоны, синапсы и дендриты
Таким образом, биологический нейрон можно представить себе как устройство с несколькими входами и одним выходом.
Передача возбуждения и
Сигналы, поступающие на входы нейрона (синапсы) складываются с разными знаками. Некоторые из этих сигналов, про которые можно условно сказать, что они положительные, вызывают возбуждение клетки нейрона, другие (условно отрицательные) — торможение.
Когда общее возбуждение клетки нейрона в течение небольшого промежутка времени превышает некоторый порог, клетка вырабатывает сигнал, который передается через ее выход (аксон) другим клеткам.
Надо сказать, что сигналы между нейронами передаются не в виде электрических импульсов, а в виде специальных химических веществ — нейротрансмиттеров. Всего насчитывается три десятка различных нейротрансмиттеров. В зависимости от вида вещества может передаваться либо возбуждающий, либо тормозящий сигнал. Что же касается самой передачи сигнала, то она происходит за счет механизма диффузии.
В то же время внутри нейрона наблюдается электрическая активность. Таким образом, работа самого нейрона основана на передаче электрических импульсов.
Искусственный нейрон.
На рис. 1.2 показана электрическая схема искусственного нейрона, собранную из таких устройств, как умножители, сумматор и функциональный преобразователь.
Входные сигналы поступают в наш искусственный нейрон (в дальнейшем — просто нейрон) через контакты, обозначенные на этой схеме .
Рисунок 1.2 Искусственный нейрон
Входные сигналы умножаются при помощи набора умножителей на некоторые весовые коэффициенты, значения которых подаются на входы .
Далее результаты умножения суммируются, и попадают на вход функционального преобразователя, реализующего так называемую функцию активации нейрона.
Рассмотрим эту схему
Входы нейрона.
В этой модели входы играют роль синапсов биологического нейрона. Если модель нейрона создается как электрическая схема, то на эти входы подаются входные сигналы.
Программная модель предполагает запись в «синапсы» нашего нейрона входных значений. При этом входной сигнал нормирован по величине на единицу и может быть как положительным, так и отрицательным числом с плавающей точкой, изменяясь в диапазоне от -1 до 1.
Весовые коэффициенты и память нейрона.
Значения входных сигналов умножаются на весовые коэффициенты W1…Wn. Эти коэффициенты позволяют регулировать возбуждение, создаваемое со стороны отдельных входов нейрона.
Таким образом, с помощью весовых коэффициентов мы моделируем различие чувствительности разных синапсов биологического нейрона.
Хотя на рис. 4-2 это не показано, модель нейрона предполагает хранение значений весовых коэффициентов и их изменение. Настраивая весовые коэффициенты нейрона, мы можем изменять его реакцию на тот или иной набор воздействий со стороны входов .
Как видно дальше, из искусственных нейронов создаются нейронные сети. Эти сети можно обучать нужной реакции на различные возбуждения. Характер этой реакции запоминается именно в виде весовых коэффициентов отдельных нейронов сети.
В случае программной реализации нейронов память весовых коэффициентов может представлять собой обычный массив, ячейки которого содержат значения коэффициентов.
Сумматор
Сумматор в схеме
Величину сигнала на выходе сумматора можно рассчитать по следующей несложной формуле:
Сигнал на выходе сумматора учитывает значения всех входных сигналов, умноженные на соответствующие весовые коэффициенты.
Функция активации.
Сигнал, полученный от сумматора, передается функции активации. Результат, полученный при вычислении этой функции, является выходным сигналом нейрона Y.
Таким образом, если обозначить функцию активации как F, выходной сигнал Y нейрона зависит от вектора входных значений и вектора весовых коэффициентов следующим образом:
На практике используются разные функции активации, позволяющие изменить поведение нейрона, например, линейная, пороговая, сигмоидная и др. Рассмотрим кратко для примера некоторые из этих функций.
Линейная функция активации.
График линейной функции активации показан на рис. 1.3. Как видно, этот график представляет собой прямую линию, угол наклона которой зависит от константы k, а величина сдвига по горизонтальной оси координат — от константы t.
Рисунок 1.3 Линейная функция активации
При использовании линейной функции активации значение на выходе нейрона равно взвешенной сумме, вычисляемой по следующей формуле:
)
Константа t называется порогом нейрона. Изменяя порог нейрона, можно сдвигать функцию активации по оси абсцисс.
Пороговая функция активации меняет свое значение скачкообразно, когда аргумент функции достигает значения порога нейрона t.
Используют два варианта пороговой функции — пороговую биполярную функцию активации и пороговую бинарную функцию активации.
На рис. 1.4 приведем график пороговой биполярной функции, изменяющей свое значение от –1 до 1.
Рисунок 1.4 Пороговая биполярная функция активации
Помимо биполярной пороговой функции
активации применяется так
Рисунок 1.5. Пороговая бинарная функция активации
Сигмоидная функция.
Сигмоидная функция изменяет свое значение в диапазоне от 0 до 1, как это показано на рис. 1.6.
Особенностью сигмоидной функции является ее монотонность и дифференцируемость во всем диапазоне значений аргумента. Благодаря этому сигмоидная функция часто применяется при создании нейронных сетей.
Рис. 1.6. Сигмоидная функция активации
Существует и так называемая биполярная сигмоидная функция активации, принимающая значения в диапазоне от –1 до 1 (рис. 1.7).
Рисунок 1.7. Сигмоидная биполярная функция активации
Схематическое изображение нейрона.
Как видите, модель нейрона достаточно проста. Существует немало реализаций этой модели, как аппаратных, так и программных.
Итак, рассмотренный выше искусственный нейрон можно представить себе как совокупность следующих компонентов:
На рис. 1.2 была показана подробная схема искусственного нейрона, включающая в себя все перечисленные выше компоненты. Однако на схемах нейронных сетей чаще используется упрощенная схема нейрона, которую мы привели на рис. 1.8.
Рисунок 1.8. Схематическое обозначение нейрона
Здесь входные значения попадают на входные элементы (аналоги синапсов), обозначенные вертикальным рядом кружков. Влияние весовых коэффициентов отмечается на этой схеме при помощи набора значений .
Далее входные сигналы, умноженные
на весовые коэффициенты, передаются
в сумматор и функцию активации,
для обозначения которых
И, наконец, выход нейрона обозначен как Y.
Структуры нейронных сетей.
Сам по себе искусственный нейрон представляет собой относительно простое устройство, выполняющее несложные функции. Из этих устройств можно формировать сети нейронов, объединяя отдельные нейроны связями.
Нейронным сетям по плечу решение достаточно сложных задач, таких, например, как распознавание образов и речи, кластеризация значений, предсказание значений сложных и неизвестных функций на основе анализа имеющихся значений этих функций и так далее.
Существует множество способов объединить отдельные нейроны в сеть. Чтобы успешно решить с помощью нейронной сети ту или иную задачу, необходимо правильно выбрать топологию сети, т.е. сколько в сети должно быть нейронов, и как они должны быть связаны между собой.
Кроме того, существует еще проблема обучения нейронных сетей, о которой мы расскажем позже в этой главе.
Однослойная нейронная сеть
Простейшая нейронная сеть состоит из одного слоя нейронов. Соответствующая топология нейронной сети показана на рис. 1.9.
Рисунок 1.9 Однослойная нейронная сеть
Слой нейронов — это такой набор нейронов, на которые в каждый момент времени параллельно поступает информация от других нейронных элементов сети. Таким образом, элементы, обозначенные на рис. 1.9 цифрами от 1 до m представляют собой слой нейронов.
Первый слой нашей сети, на который подаются входные сигналы , играет роль распределительного слоя нейронной сети. Каждый элемент распределительного слоя нейронной сети имеет связи со всем нейронами следующего слоя, называемого обрабатывающим слоем.
Заметим, что хотя сеть фактически и состоит из двух слоев, одна называется однослойной. Первый распределительный слой не считается, так как он не занят обработкой информации, а играет вспомогательную роль.
Такую нейронную сеть можно представить себе в виде черного ящика, у которого имеется nвходов и m выходов. Кроме этого, имеется набор (матрица) весовых коэффициентов, общее количество которых равно произведению n на m.
Примечательно то, что, изменяя матрицу весовых коэффициентов, можно полностью изменять поведение сети, т.е. ее реакцию на те или иные комбинации входных сигналов.
В процессе обучения можно заставить сеть распознавать определенные комбинации сигналов и их значений. При этом один набор выходных значений может соответствовать одному набору входных значений, другой набор выходных значений — другому набору входных значений и так далее. Это свойство нейронной сети и позволяет применять ее для распознавания образов вообще, и для распознавания речи, в частности.
Персептрон Розенблатта.
Другая структура нейронной
сети, применяющаяся для
Такая сеть состоит из трех слоев, показанных на рис. 1.10.
Рисунок 1.10. Топология персептрона Розенблатта
Слой, обозначенный как S1…Sn, — это входной сенсорный слой. Его назначение состоит в том, чтобы воспринимать входные сигналы.
Слой A1…Am называется ассоциат
Что же касается слоя R1…Rm, то он называется эффекторным, и служит для передачи выходных воздействий. Особенностью этого слоя является использование в нейронах пороговой функции активации.
Многослойные нейронные сети.
При исследовании мозга было обнаружено
наличие в нем слоистых структур.
С помощью искусственных
Структура такой многослойной сети показана на рис. 1.11.
Рисунок 1.11. Многослойная нейронная сеть
В каждом слое может находиться разное количество нейронов. При этом все входы нейронов следующего слоя соединены с выходами всех нейронов предыдущего слоя.
Все нейроны сети имеют свои наборы весовых коэффициентов. При моделировании весовые коэффициенты нейрона можно представить в виде массива. Аналогично, весовые коэффициенты всех нейронов одного слоя можно объединить в массив массивов.
Многослойные нейронные сети могут решать более сложные задачи, нежели однослойные. При этом, однако, промежуточные слои должны использовать нелинейные функции активации, например, сигмоидную функцию (рис. 1.6) или сигмоидную биполярную функцию (рис. 1.7).