Метод обучения нейронных сетей (правило обратного распространения ошибки)

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    344,33 Кб
  • Опубликовано:
    2014-07-19
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Метод обучения нейронных сетей (правило обратного распространения ошибки)

Федеральное государственное автономное образовательное учреждение

высшего профессионального образования

«СИБИРСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ»

Институт Космических и Информационных технологий

Кафедра «Системы искусственного интеллекта»








КУРСОВАЯ РАБОТА

По дисциплине: «Интеллектуальные системы и технологии»

Тема: «Метод обучения нейронных сетей (Правило обратного распространения ошибки)»


Студент

Непомнящая Т.О.



Красноярск

Оглавление

Введение

. Теоретический материал

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

. Алгоритм обучения сети по D - правилу

. Алгоритм обратного распространения ошибки

. Выполнение задания с помощью алгоритма обучения сети по D - правилу. Реализация в программном продукте NeuroPro 0.25.

. Выполнение задания с помощью алгоритма обратного распространения ошибки

Вывод

Используемая литература

Введение

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

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

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

Дельта-правило (Δ-правило) - метод обучения перцептрона (математическая и компьютерная модель восприятия информации мозгом) по принципу градиентного спуска по поверхности ошибки.

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

Алгоритм обучения нейронных сетей:

.        Формирование структуры сети;

.        Обучение;

.        Тестирование;

.        Использование.

1. Теоретический материал

нейронной алгоритм перцептрон программный

Схема искусственного нейрона представлена на рис. 1, где  -входы нейрона,  - синаптические веса связей нейрона, S - взвешенная сумма входных значений нейрона, F(S) - функция активации, значением которой является Y - выходное значение нейрона.

Рис. 1. Формальный нейрон (математическая модель)

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

.,

где k = const.

Пример этой функции активации представлен на рис. 2.

Рис. 2. График сигмоидальной функции активации (пример)

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

Таблица 1 - Типы искусственных нейронных сетей

Тип

Описание

По топологии

Полносвязные

Каждый нейрон связан с другим нейроном в сети (из-за высокой сложности обучения не используется).

Слоистые

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

По типу связей

Прямого распространения

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

Рекуррентные

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

По организации обучения

С учителем

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

Без учителя

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

По типу сигнала

Бинарные

На вход нейронных сетей подают только нули или единицы.

Аналоговые

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

По типу структур

Однородная

Все нейроны в нейронной сети используют одну функцию активации.

Нейроны в нейронной сети имеют разные функции актикацин.


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

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

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

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

Цель обучения: сеть обучается, чтобы для некоторого множества входов давать желаемое (или, по крайней мере, сообразное с ним) множество выходов. Каждое такое входное (или выходное) множество рассматривается как вектор. Обучение осуществляется путем последовательного предъявления входных векторов с одновременной подстройкой весов в соответствии с определенной процедурой. В процессе обучения веса сети постепенно становятся такими, чтобы каждый входной вектор вырабатывал выходной вектор.

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

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

Существуют три парадигмы обучения: "с учителем", "без учителя" (самообучение) и смешанная.

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

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

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

Рисунок 3

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

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

ij(n+1) = w(n) +OUTiOUTj,

где wij(n) - значение веса от нейрона i к нейрону j до подстройки, ij(n+1) - значение веса от нейрона i к нейрону j после подстройки,

- коэффициент скорости обучения, i- выход нейрона i и вход нейрона j, OUTj- выход нейрона j.

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

. Алгоритм обучения сети по D - правилу

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

Рис. 4. Однослойная нейронная сеть

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

Алгоритм обучения по D - правилу:

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

шаг: предъявление нейронной сети образа (на вход подаются значения из обучающей выборки - вектор Х), берется соответствующий выход (вектор D).

шаг: вычисление выходных значений нейронной сети (вектор Y).

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

,

где  - желаемое выходное значение на i-нейроне,

 - реальное значение на i-нейроне.

шаг: изменение весов (и порогов при использовании пороговой функции) по формулам:


где t-номер текущей итерации цикла обучения,

 - вес связи i-входа с i-нейроном,

 - коэффициент обучения, задается от 0 до 1,

 - входное значение,

 - пороговое значение i-нейрона.

шаг: проверка условия продолжения обучения (вычисление значения ошибки и/или проверка заданного количества итераций). Если обучение не завершено, то 2 шаг, иначе заканчиваем обучение.

. Алгоритм обратного распространения ошибки

Многослойная искусственная нейронная сеть (рис. 4) может содержать произвольное количество слоев (К), каждый слой состоит из нескольких нейронов, число которых также может быть произвольно ( - количество нейронов в слое), количество входов n, количество выходов Н= - числу нейронов в выходном (последнем) слое.

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

Слои между первым и последним называются промежуточными или скрытыми. Веса в такой сети имеют три индекса i- номер нейрона следующего слоя, для которого связь входная, j - номер входа или нейрона текущего слоя, для которого связь выходная, k - номер текущего слоя в нейронной сети (для входов, вектора Х, k=0).

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

Алгоритм обучения методом обратного распространения ошибки:

шаг: инициализация матриц весов случайным образом (в циклах).

шаг: предъявление нейронной сети образа (на вход подаются значения из обучающей выборки - вектор X) и берется соответствующий выход (вектор D).

шаг (прямой проход): вычисление в циклах выходов всех слоев и получение выходных значений нейронной сети (вектор Y).


где  - выход i-нейрона k-слоя,

 - функция активации,

 - синаптическая связь между j - нейроном слоя k-1 и i-нейроном слоя k,

 - входное значение.

шаг (обратный проход): изменение весов в циклах по формулам:

- для последнего (выходного) слоя,

- для промежуточных слоев,

где t-номер текущей итерации цикла обучения (номер эпохи),

 - коэффициент обучения задается от 0 до 1,  - выход i-нейрона k-слоя,

- синаптическая связь между j-нейроном слоя k-1 и i-нейроном слоя k,

 -желаемое выходное значение на i-нейроне,

- реальное значение на i-нейроне выходного слоя.

шаг: проверка условия продолжения обучения (вычисление значения ошибки и/или проверка заданного количества итераций). Если обучение не завершено, то 2 шаг, иначе заканчиваем обучение. Среднеквадратичная ошибка вычисляется следующим образом:

Н - количество нейронов в выходном слое,

 - желаемое выходное значение на i-нейроне,

 - реальное значение на i-нейроне выходного слоя.

. Выполнение задания с помощью алгоритма обучения сети по D - правилу. Реализация в программном продукте NeuroPro 0.25.

Задание 1: просчитать одну итерацию цикла обучения по Δ -правилу однослойной бинарной однородной нейронной сети, состоящей из 3 нейронов и имеющей сигмоидальную функцию активации (k=1). В качестве обучающей выборки использовать таблицу истинности для X1→X2&X3, X1&X2 и X1&X3 (не использовать первую строчку таблицы). Синаптические веса задать случайным образом.

1. Обучающая выборка, представленная в табличном виде (размер матрицы 6x7):


. Описание всех входных и выходных сигналов сети:


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


. Результат формирования структуры сети:


5. Пусть веса бинаризованных синапсов задаются с шагом 0.1:


. Вербализация сети:


. Анализ обучающего множества:

8. Результат тестирования нейронной cети:


. Результат обучения нейронной сети:


. Выполнение задания с помощью алгоритма обратного распространения ошибки.

Задание 2: просчитать одну итерацию цикла обучения методом обратного распространения ошибки многослойной аналоговой неоднородной нейронной сети, состоящей из 2 слоёв, причем в первом слое находится 3 нейрона, а во втором - 2. Функция активации нейронов сети - гиперболический тангенс (k=3) функция. Синаптические веса и обучающую выборку задать случайным образом (не нули).

. Обучающая выборка, представленная в табличном виде (размер матрицы 3x4):


. Описание всех входных и выходных сигналов сети:


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


. Результат формирования структуры сети:

4. Вербализация сети:


. Анализ обучающего множества:


. Значимость входных сигналов:


7.Результат тестирования нейронной сети:


. Результат обучения нейронной сети:


Вывод


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

Используемая литература

1. Система электронного обучения СФУ

2. Хайкин С.Нейронные сети: Полный курс. Пер. с англ. Н.Н.Куссуль, А.Ю. Шелестова. 2-е изд. - М.: Издательский дом Вильямс, 2008, 1103 с.

3. Васенко Д.В. «Методы обучения искусственных сетей»

. Заенцев И. Нейронный сети: основные модели. Учебное пособие,1999.

. Короткий С. Нейронные сети: обучение без учителя.

Похожие работы на - Метод обучения нейронных сетей (правило обратного распространения ошибки)

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!