Нейронные сети

Автор работы: Пользователь скрыл имя, 22 Ноября 2011 в 22:10, курсовая работа

Краткое описание

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

Содержание работы

Введение 4
1. Постановка задачи 5
2. Генерирование обучающей выборки 10
3. Проектирование нейронных сетей и алгоритмов обучения 11
3.1 Алгоритм обратного распространения ошибки 11
3.2 Рекуррентная сеть. Архитектура сети. 15
4. Разработка программных модулей 21
5. Тестирование и результаты исследования 22
Заключение 27
Литература 28

Содержимое работы - 1 файл

Пояс мой.doc

— 1.42 Мб (Скачать файл)

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

                ,    (3.1.17)

     где индекс j характеризует нейроны следующего слоя по отношению к слою i.

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

                ,     (3.1.18)

                .    (3.1.19)

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

     c) для каждого слоя нейронной  сети происходит изменение весовых коэффициентов и порогов нейронных элементов:

                 (3.1.20)

              .   (3.1.21)

4. Вычисляется  суммарная среднеквадратичная ошибка  нейронной сети:

                  (3.1.22)

     где — размерность обучающей выборки.

5. Если  то происходит переход к шагу 3 алгоритма. В противном случае алгоритм обратного распространения ошибки заканчивается.

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

3.2 Рекуррентная сеть. Архитектура сети.

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

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

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

    Обобщенная  архитектура такой сети представлена на рис.3.2.1. 

                          X(t) Y(t) 
 
 

                          Y(t-1)                          Y(t)  
 
 

Рис.3.2.1. Обобщенная архитектура рекуррентной сети 

    Как видно из рисунка, значение Y, полученное на предыдущем этапе, учитывается на следующем этапе функционирования сети. MLP – многослойный персептрон, Z-1 – элемент задержки.

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

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

    Модель  сети Джордана представлена на рис.3.2.2.

   

 

Рис.3.2.2.Модель рекуррентной сети Джордана 

    В такой сети количество контекстных  нейронов равно количеству выходных нейронных элементов. Wli – синоптическая связь между l-м контекстным нейроном и i-м нейроном скрытого слоя. Контекстные нейроны выполняют распределительные функции.

    Зависимость выходных значений от входных в такой  сети отражена в формулах (3.2.1)-(3.2.4).

                                                               yj=F(Sj(t))                                         (3.2.1)

          Sj(t)=          (3.2.2)

    Для скрытого слоя применяются следующие  формулы:

          pi=F(Si(t))              (3.2.3)

                                                                Si(t)=        (3.2.4)

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

    В общем случае процедура обучения состоит из следующих шагов:

    1) В начальный момент времени  t=1 все контекстные нейроны сети устанавливаются в нулевые значения.

    2) Входной образ подается на  сеть, и происходит его прямое  распространение по сети.

    3) В соответствии с алгоритмом обратного распространения ошибки происходит модификация весовых коэффициентов и пороговых значений нейронной сети.

    4) Устанавливается значение времени  t=t+1 и осуществляется переход к пункту 2 алгоритма.

    5) Обучение производится до тех пор, пока суммарная среднеквадратичная ошибка сети не станет меньше заданной.

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

    Выходные  значения сети определяются по формуле (3.2.5), значения скрытого слоя – по формулам (3.2.3) и (3.2.4).

          y(t)=         (3.2.5)

    Настраиваемыми  параметрами будут Vi(t+1), T(t+1), Wki(t+1), Wli(t+1), Ti(t+1). Для этого используется метод градиентного спуска, в соответствии с которым для минимизации суммарной среднеквадратичной ошибки синоптические связи должны изменяться по формулам (3.2.6)-(3.2.10).

                               (3.2.6)

                                (3.2.7)

                     (3.2.8)

                     (3.2.9)

                     (3.2.10)

    Квадратичная  ошибка для одного выходного образа определяется по формуле (3.2.11).

           ,         (3.2.11)

    где е – эталонное значение.

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

                                                    (3.2.12)

                                                                        (3.2.13)

                                            (3.2.14)

                                       (3.2.15)

                                              (3.2.16) 

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

    1. распределительный,
    2. скрытый,
    3. выходной.

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

    Архитектура нейронной сети для прогнозирования и аппроксимации заданной функции представлена на рис.3.2.3. Подаются значения X(t), Y(t), Z(t) и прогнозируются X(t+1), Y(t+1), Z(t+1). Как видно из рисунка, трехслойная нейронная сеть имеет три входных нейронных элемента, три выходных нейронных элемента и три контекстных нейрона, значения которых получают на выходе сети предыдущего этапа, количество нейронов скрытого слоя можно изменять.

    

Рис.3.2.3. Архитектура нейронной сети в первом случае 

    Примем  следующие обозначения:

    X(t)=x1, Y(t)= x2, Z(t)= x3 ;

    X(t+1)=y1, Y(t+1)= y2, Z(t+1)= y3 ;

    Тогда зависимость выходных значений от входных в нашей сети отражена в формулах (3.2.1*), (3.2.3*).

                                                     yj=                                          (3.2.1*)

    Для скрытого слоя применяются следующие  формулы:

          pi=        (3.2.3*)

    Настраиваемые параметры рассчитываются по формулам 3.5 – 3.16.  

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

    В этом случае, зависимость выходных значений от входных в такой сети отражена в формулах (3.2.1**), (3.2.3**).

                                                     x(t+1)=                                       (3.2.1**)

    Для скрытого слоя применяются следующие  формулы:

          pi=     (3.2.3**)

    Настраиваемые параметры рассчитываются по формулам 3.5 – 3.16. 

 

4. Разработка программных модулей.

 

    Для реализации проекта была выбрана  среда программирования Borland Delphi 7.0. Выбор обусловлен тем, что Borland Delphi 7.0 базируется на технологии объектно-ориентированного программирования и позволяет создавать приложения под операционные системы Windows 9x, XP с удобным для пользователя интерфейсом.

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

    Ниже  представлены модули разработанной  системы:

  1. М1 – главный модуль;
  2. М2 – обучение нейронной сети и вывод результатов;
  3. М3– прогнозирование и вывод результатов;
  4. М4 – построение графиков эталонной и спрогнозированной функций;
 

    Модуль  М1 выводит на экран главную форму. Этот модуль позволяет пользователю просматривать всю информацию, содержащуюся в программе, а также осуществляет выход из программы. Т.е. с его помощью осуществляется доступ ко всем остальным модулям.

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

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

    Модуль  М4 предназначены для вывода графиков эталонной и спрогнозированной  функций.

 

    

5. Тестирование и результаты исследования.

 

    При запуске программы появляется главная форма, которая изображена на рис.5.1.

Информация о работе Нейронные сети