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

Автор работы: Пользователь скрыл имя, 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 Мб (Скачать файл)
 

    ОГЛАВЛЕНИЕ 

 Приложение 1. Текст программы 

  
 
 

 

Введение

 

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

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

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

    2) Нейронные сети – средство обработки информации:

        а) гибкая модель для нелинейной аппроксимации многомерных функций;

        б) средство прогнозирования во времени для процессов, зависящих от многих переменных;

         в) классификатор по многим признакам, дающий разбиение пространства на области;

         г)  средство распознавания образов;

         д)  инструмент для поиска по  ассоциациям;

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

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

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

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

 

1. Постановки задачи.

 

       В данном курсовом проекте нейронная  сеть используется для аппроксимации  следующей параметрической функции:

                                        (1.1)

    Данная  функция представляет собой систему дифференциальных уравнений первого порядка. Для решения таких систем уравнений используются численные методы. Т. е. для заданной последовательности t0, t1, t2, …tn [a,b] и начальных условий x(t0), y(t0), z(t0), не определяя самого решения системы

    

 можно вычислить приближенно значения 

x0, x1, x2, …xn;

y0, y1, y2, …yn;

z0, z1, z2, …zn;

    Т. о. численное решение системы дифференциальных уравнений позволяет вместо отыскания ее точного решения получить приближенную таблицу значений функций для заданной последовательности аргумента. Для численного решения системы дифференциальных уравнений (1.1) будет выбран наиболее точный метод решения – метод Рунге-Кутта. Его описание приведено в Пункте 2 “Генерация обучающей выборки” курсового проекта. Получив решение системы (1.1) можем построить график функции. 

    График  функции в трехмерном пространстве представлен на рис. 1.1. 

    

    Рис. 1.1. График функции

    Графики функции в проекции на плоскости представлен на рис. 1.2 -1.4 .

    

    Рис. 1.2. Проекция графика функции на плоскость  XY

    

    Рис. 1.3. Проекция графика функции на плоскость XZ

    

 

    Рис. 1.4. Проекция графика функции на плоскость YZ

    Графики зависимости X, Y, Z от t представлены на рисунках 1.5- 1.7.  

    

 

    Рис. 1.5. Зависимость X от t

    

 

    Рис. 1.6. Зависимость Y от t

         

    Рис. 1.7. Зависимость Z от t 
 
 
 

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

 

2. Генерирование обучающей выборки.

 

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

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

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

         Таблица 2.1

Обучающая выборка функции

    

 

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

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

                               

    Рис.3.1.1. Трехслойная нейронная сеть.

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

     Рассмотрим  нейронную сеть, состоящую из трех слоев (рис. 3.1.1.). Обозначим слои нейронных элементов от входа к выходу соответственно через . Тогда выходное значение j-го нейрона последнего слоя равняется:

                                                      (3.1.1.)

      ,                                      (3.1.2.)

         где — взвешенная сумма j-го нейрона выходного слоя;

             —выходное значение i-го нейрона предпоследнего слоя;

             —соответственно весовой коэффициент;

             —порог j-го нейрона выходного слоя.

     Аналогичным образом выходное значение i-го нейрона предпоследнего слоя определяется, как:

                                                         (3.1.3.)

      .                                        (3.1.4.)

     Соответственно  для k-го слоя:

                                                         (3.1.5.)

      .                                        (3.1.6.)

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

      ,                       (3.1.7.)

      ,                            (3.1.8.)

         где — среднеквадратичная ошибка нейронной сети для одного образа.

     Она определяется, как

      ,                                        (3.1.9.)

         где — эталонное выходное значение j-го нейрона.

     Ошибка  j-го нейрона выходного слоя равняется:

      .                                                    (3.1.10.)

            Для любого скрытого слоя ошибка -го нейронного элемента определяется рекурсивным образом через ошибки нейронов следующего слоя :

                                             (3.1.11.)

            где — количество нейронов следующего слоя по отношению к слою ;

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

        — взвешенная сумма -го нейрона.                                

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

                                               (3.1.12.)

                                                      (3.1.13.)

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

                            (3.1.14.)

                                  (3.1.16.)

                         где — скорость обучения.

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

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

1.    Задается шаг обучения  и желаемая среднеквадратичная ошибка нейронной сети .

2. Случайным образом инициализируются весовые коэффициенты и пороговые значения нейронной сети.

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

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