Нейронные сети. 2
ОГЛАВЛЕНИЕ
Приложение
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 до 2000. Первые двадцать значений, полученные методом Рунге-Кутта, представлены в таблице 2.1.
Таблица 2.1
Обучающая выборка функции
3. Проектирование нейронных сетей и алгоритмов обучения.
3.1 Алгоритм обратного распространения ошибки
Рис.3.1.1. Трехслойная нейронная сеть.
Алгоритм обратного распространения ошибки был предложен в 1986 г. рядом авторов независимо друг от друга. Он является эффективным средством обучения нейронных сетей.
Рассмотрим нейронную сеть, состоящую из трех слоев (рис. 3.1.1.). Обозначим слои нейронных элементов от входа к выходу соответственно через . Тогда выходное значение j-го нейрона последнего слоя равняется:
где — взвешенная сумма j-го нейрона выходного слоя;
—выходное значение i-го нейрона предпоследнего слоя;
—соответственно весовой коэффициент;
—порог j-го нейрона выходного слоя.
Аналогичным образом выходное значение i-го нейрона предпоследнего слоя определяется, как:
Соответственно для k-го слоя:
Алгоритм
обратного распространения
где — среднеквадратичная ошибка нейронной сети для одного образа.
Она определяется, как
где — эталонное выходное значение j-го нейрона.
Ошибка j-го нейрона выходного слоя равняется:
Для любого скрытого слоя ошибка -го нейронного элемента определяется рекурсивным образом через ошибки нейронов следующего слоя :
где — количество нейронов следующего слоя по отношению к слою ;
—синоптическая связь между -м и -м нейроном различных слоев;
— взвешенная сумма -го нейрона.
Производные
среднеквадратичной ошибки по весовым
коэффициентам и порогам
Для минимизации среднеквадратичной ошибки сети весовые коэффициенты и пороги нейронных элементов должны изменяться с течением времени следующим образом:
где — скорость обучения.
Данное
утверждение является очевидным. Оно
определяет правило обучения многослойных
нейронных сетей в общем, виде, которое
называется обобщенным дельта правилом.
Алгоритм
обратного распространения
1. Задается шаг обучения и желаемая среднеквадратичная ошибка нейронной сети .
2. Случайным образом инициализируются весовые коэффициенты и пороговые значения нейронной сети.
3. Последовательно подаются образы из обучающей выборки на вход нейронной сети. При этом для каждого входного образа выполняются следующие действия:
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)
Рис.3.2.1.
Обобщенная архитектура рекуррентной
сети
Как видно из рисунка, значение Y, полученное на предыдущем этапе, учитывается на следующем этапе функционирования сети. MLP – многослойный персептрон, Z-1 – элемент задержки.
Существуют различные варианты архитектуры таких сетей, которые отличаются друг от друга способом организации обратных синоптических связей. В данной работе была использована модель Джордана.
В
1986 году Джордан предложил рекуррентную
нейронную сеть, в которой выходы
нейронных элементов последнего
слоя соединены посредством
Модель сети Джордана представлена на рис.3.2.2.
Рис.3.2.2.Модель
рекуррентной сети Джордана
В такой сети количество контекстных нейронов равно количеству выходных нейронных элементов. Wli – синоптическая связь между l-м контекстным нейроном и i-м нейроном скрытого слоя. Контекстные нейроны выполняют распределительные функции.
Зависимость выходных значений от входных в такой сети отражена в формулах (3.2.1)-(3.2.4).
Sj(t)= (3.2.2)
Для скрытого слоя применяются следующие формулы:
pi=F(Si(t)) (3.2.3)
Для
обучения рекуррентных нейронных сетей
используется алгоритм обратного распространения
ошибки, адаптированный к архитектуре
рекуррентной нейронной сети.
В общем случае процедура обучения состоит из следующих шагов:
1) В начальный момент времени t=1 все контекстные нейроны сети устанавливаются в нулевые значения.
2) Входной образ подается на сеть, и происходит его прямое распространение по сети.
3) В соответствии с алгоритмом обратного распространения ошибки происходит модификация весовых коэффициентов и пороговых значений нейронной сети.
4)
Устанавливается значение
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.16)
В данном курсовом проекте в качестве нейронной сети (НС) применяется рекуррентная нейронная сеть с одним скрытым слоем. Обучение производится согласно алгоритму обратного распространения ошибки, адаптированного к архитектуре рекуррентной нейронной сети. При этом используются три слоя:
- распределительный,
- скрытый,
- выходной.
В качестве функции активации скрытого и выходного слоя используется линейная функция.
Архитектура нейронной сети для прогнозирования и аппроксимации заданной функции представлена на рис.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*).
Для скрытого слоя применяются следующие формулы:
pi= (3.2.3*)
Настраиваемые
параметры рассчитываются по формулам
3.5 – 3.16.
В
данном курсовом проекте рассмотрим
также модификацию описанной
выше архитектуры сети. Архитектура
нейронной сети для прогнозирования и
аппроксимации заданной функции во втором
случае состоит из шести входных нейронных
элементов, количество нейронов в скрытом
и выходном слоях остается прежним.
В этом случае, зависимость выходных значений от входных в такой сети отражена в формулах (3.2.1**), (3.2.3**).
Для скрытого слоя применяются следующие формулы:
pi= (3.2.3**)
Настраиваемые параметры рассчитываются по формулам 3.5 – 3.16.
4. Разработка программных модулей.
Для реализации проекта была выбрана среда программирования Borland Delphi 7.0. Выбор обусловлен тем, что Borland Delphi 7.0 базируется на технологии объектно-ориентированного программирования и позволяет создавать приложения под операционные системы Windows 9x, XP с удобным для пользователя интерфейсом.
Целью
курсового проекта является исследование
нейронных сетей для
Ниже представлены модули разработанной системы:
- М1 – главный модуль;
- М2 – обучение нейронной сети и вывод результатов;
- М3– прогнозирование и вывод результатов;
- М4 – построение графиков эталонной и спрогнозированной функций;
Модуль М1 выводит на экран главную форму. Этот модуль позволяет пользователю просматривать всю информацию, содержащуюся в программе, а также осуществляет выход из программы. Т.е. с его помощью осуществляется доступ ко всем остальным модулям.
Модуль М2 предназначен для обучения нейронной сети при заданных параметрах, а именно: размере обучающей выборки, количестве нейронов в скрытом слое, желаемой ошибке сети и максимальном количестве итераций. Модуль при обучении сети выводит номер итерации и ошибку сети, а по окончании процесса обучения в специальной форме отображает результаты: эталонное значение функции, полученное значение и отклонение.
Модуль М3 системы предназначен для прогнозирования функции и вывода результатов прогнозирования.
Модуль М4 предназначены для вывода графиков эталонной и спрогнозированной функций.
5. Тестирование и результаты исследования.
При запуске программы появляется главная форма, которая изображена на рис.5.1.

- Нейронные сети
- Нейронные сети Кохонена
- Нейронные сети. Распознавание образов
- Нейропсихический подход к проблеме трудностей обучения в школе
- Нейропсихологический подход к проблеме трудностей обучения в школе
- Нейропсихологическое исследование памяти и внимания детей СДВГ
- Нейросетевое моделирование
- Нейминг и визуализация бренда, как средство увеличения его рыночной эффективности и капитализации
- Нейминг - процесс сочинения имени
- Нейроандрогенетическая теория Л. Эллиса
- Нейрогуморальная регуляция половой функции
- Нейрокомпьютеры
- Нейролінгвістичне програмування та стратегії моделювання успіху
- Нейромаркетинг