- •Курсовая работа
- •Решение Диофантова уравнения с помощью генетического алгоритма
- •Аннотация
- •Содержание
- •Введение
- •1. Идентификация предметной области
- •1.1 Общий вид генетического алгоритма
- •1.2 Генетические операторы
- •1.3 Достоинства и недостатки стандартных и генетических методов
- •1.4 Актуальные проблемы и модификации генетического алгоритма
- •2. Решение Диофантовых уравнений с помощью генетического алгоритма
- •2.1 Диофантовы уравнения
- •2.1 Обоснование выбора программных средств реализации
- •2.2 Формирование обучающей выборки
- •2.3 Выбор структуры нейронной сети
- •2.4 Прогнозирование ввп на основе многослойной нейронной сети
- •Заключение
- •Список использованных источников
- •Приложение а Блок-схема алгоритма обратного распространения ошибки
2.3 Выбор структуры нейронной сети
Прогнозирование ВВП будет выполнено на основе однонаправленной многослойной сети, обучающейся по алгоритму обратного распространения ошибки.
Для решения задачи будем использовать нейронную сеть с одним скрытым слоем. Число нейронов во входном слое равно количеству факторов, влияющих на значение ВВП, и составляет 13 нейронов. Так как необходимо осуществить прогнозирование одной величины – значения ВВП – следовательно, достаточно одного нейрона в выходном слое.
Для определения числа нейронов в скрытом слое L воспользуемся следующими рекомендациями:
где n – размерность входного сигнала;
m – размерность выходного сигнала;
Lw – число синаптических весов, определяемое неравенством:
где N – число элементов обучающей выборки.
Из представленных формул следует, что число нейронов в скрытом слое может быть от 5 до 375.
На основании этих результатов примем число нейронов скрытого слоя равным 5.
Таким образом, с учётом всего вышеизложенного, структуру нейронной сети можно представить в виде, изображённом на рисунке 6.
Рисунок 6 – Структура нейронной сети
Обучение многослойной нейронной сети производится по алгоритму обратного распространения ошибки. Блок-схема данного алгоритма представлена в приложении А.
2.4 Прогнозирование ввп на основе многослойной нейронной сети
Для прогнозирования ВВП с использованием приложения NeuroPro необходимо подготовить исходные данные. Для этого, используя таблицу 1, следует подготовить в Microsoft Excel обучающую выборку в виде таблицы 2 и сохранить эти данные как файл базы данных в формате DBF4 (dBASE IV) с названием «ВВП.dbf».
Создание нейронной сети в приложении NeuoPro и работа с ней возможна только в рамках некоторого нейропроекта. Для его создания необходимо выбрать пункт меню «Файл-Создать». В появившемся окне открыть файл с обучающими данными (ВВП.dbf) и нажать на кнопку «Новая сеть». В появившемся окне «Создание нейронной сети» на вкладке «Выходы и входы» установим тип значений – количественный и определим с помощью переключателя входные поля Х1, …, Х13 и выходное поле Y (рисунок 7).
Таблица 2 - Обучающая выборка
X1 |
X2 |
X3 |
X4 |
X5 |
X6 |
X7 |
X8 |
X9 |
X10 |
X11 |
X12 |
X13 |
Y |
109 |
287 |
75 |
17 |
11 |
5,9 |
4,3 |
4,73 |
59 |
204 |
654 |
37,3 |
6,4 |
148 |
114 |
271 |
71 |
18 |
13 |
6,9 |
5,3 |
4,81 |
55 |
189 |
684 |
36,6 |
6,5 |
150 |
121 |
289 |
79 |
22 |
16 |
7,7 |
5,3 |
4,85 |
59 |
179 |
745 |
35,9 |
6,5 |
168 |
122 |
279 |
78 |
24 |
16 |
7,2 |
5,7 |
4,94 |
61 |
168 |
746 |
35,4 |
6,6 |
175 |
110 |
284 |
77 |
24 |
17 |
7,2 |
5,4 |
5,01 |
60 |
158 |
779 |
34,9 |
6,7 |
169 |
110 |
273 |
73 |
27 |
21 |
7,1 |
5,2 |
5,1 |
61 |
150 |
837 |
34,6 |
6,7 |
181 |
111 |
274 |
74 |
27 |
22 |
7,3 |
5,5 |
5,19 |
62 |
144 |
842 |
34,0 |
6,7 |
188 |
113 |
271 |
76 |
27 |
20 |
7,1 |
5,2 |
5,34 |
63 |
137 |
831 |
33,5 |
6,8 |
200 |
116 |
272 |
76 |
30 |
22 |
7,3 |
4,8 |
5,39 |
65 |
132 |
848 |
33,2 |
6,8 |
201 |
127 |
291 |
79 |
32 |
20 |
8,3 |
5,2 |
5,45 |
65 |
127 |
843 |
33,0 |
6,9 |
205 |
124 |
282 |
74 |
48 |
21 |
8,4 |
4,9 |
5,51 |
66 |
124 |
835 |
32,9 |
7,0 |
198 |
132 |
292 |
72 |
76 |
21 |
8,7 |
5,5 |
5,56 |
75 |
122 |
1017 |
32,5 |
7,2 |
217 |
119 |
283 |
68 |
19 |
14 |
7,0 |
4,7 |
5,62 |
68 |
120 |
812 |
31,9 |
7,1 |
172 |
122 |
266 |
67 |
20 |
15 |
6,7 |
5,0 |
5,67 |
64 |
118 |
821 |
31,7 |
7,5 |
175 |
134 |
288 |
76 |
26 |
18 |
7,3 |
5,6 |
5,72 |
67 |
117 |
903 |
31,6 |
7,6 |
194 |
130 |
272 |
73 |
25 |
16 |
6,9 |
6,2 |
5,76 |
69 |
115 |
901 |
31,3 |
7,8 |
202 |
125 |
267 |
72 |
25 |
18 |
6,5 |
5,5 |
5,77 |
68 |
114 |
920 |
31,5 |
7,9 |
205 |
128 |
255 |
71 |
29 |
22 |
6,6 |
5,5 |
5,78 |
68 |
114 |
993 |
31,1 |
7,9 |
213 |
130 |
259 |
74 |
29 |
23 |
7,0 |
5,2 |
5,79 |
69 |
114 |
999 |
30,9 |
7,9 |
222 |
132 |
256 |
76 |
29 |
22 |
7,2 |
6,3 |
5,83 |
71 |
114 |
982 |
30,9 |
7,9 |
241 |
132 |
261 |
75 |
32 |
23 |
6,9 |
6,2 |
5,86 |
74 |
114 |
1026 |
31,0 |
8,0 |
252 |
140 |
274 |
79 |
33 |
22 |
8,2 |
6,2 |
5,88 |
75 |
112 |
1006 |
31,0 |
8,1 |
242 |
136 |
279 |
74 |
53 |
22 |
8,2 |
5,8 |
5,91 |
76 |
111 |
997 |
31,1 |
8,1 |
226 |
142 |
286 |
74 |
84 |
22 |
9,2 |
7,7 |
5,96 |
89 |
111 |
1214 |
30,7 |
8,2 |
238 |
На вкладке «Структура сети» установим число слоёв нейронов равное 3, число нейронов для первого слоя – 13, для второго слоя – 5, для третьего слоя – 1 (рисунок 8).
Далее необходимо задать имя нейронной сети «Прогнозирование ВВП» и нажать кнопку «Создать». После выполненных действий имя созданной сети появится в списке сетей нейропроекта и становится активной.
Для обучения созданной нейронной сети необходимо выбрать пункт меню «Нейросеть-Обучение». При этом на экран выводится окно, где имеется возможность наблюдать процесс обучения и при необходимости самостоятельно закончить обучение нажатием кнопки «Завершить», заменяющейся в случае удачного обучения кнопкой «Готово» (рисунок 9).
Рисунок 7 – Задание входов и выходов нейронной сети
Рисунок 8 – Задание структуры нейронной сети
Рисунок 9 – Окно обучения нейронной сети
В результате обучения нейронной сети происходит настройка её весовых коэффициентов.
По окончании обучения можно вычислить значимость входных сигналов сети выбором пункта меню «Нейросеть-Значимость входных сигналов сети». Вычисленные показатели выводятся в отдельное окно в виде гистограммы, где наиболее значимому входу соответствует самый длинный столбец (рисунок 10).
Рисунок 10 – Значимость входных сигналов
В нашем исследовании получилось, что наибольшее влияние на прогнозируемое значение ВВП оказывают следующие факторы: Х4 (инвестиции в основной капитал), X8 (официальный курс доллара США), Х13 (общая численность безработных).
Тестирование нейронной сети можно провести с целью выявления её прогностических возможностей. Для этого нужно выбрать пункт меню «Нейросеть-Тестирование». Результат тестирования выводится в отдельное окно и представляет собой выходные данные для нейронной сети (желаемый результат), а также значения прогноза этих полей (вычисленное сетью значение выхода) (рисунок 11).
Рисунок 11 – Результаты тестирования нейронной сети
С помощью специальных алгоритмов, вызываемых командами меню «Нейросеть», можно упростить структуру спроектированной нейросети. При этом можно:
- сократить число входных сигналов;
- сократить число нейронов;
- равномерно упростить сеть;
- сократить число синапсов;
- сократить число неоднородных входов;
Из всех доступных методов упрощения нейросети воспользуемся сокращением числа входных сигналов, нейронов и синапсов. Результаты упрощения нейронной сети представлены на рисунках 12, 13, 14.
Рисунок 12 – Результат сокращения числа входных сигналов
Рисунок 13 – Результат сокращения нейронов сети
Рисунок 14 – Результат сокращения синапсов сети
Из результатов упрощения нейронной сети видно, что удалено одиннадцать малозначимых входных сигналов из тринадцати, одиннадцать нейронов из девятнадцати и двести тридцать четыре синапса из двухсот шестидесяти. Таким образом, с использованием стандартных алгоритмов удалось существенно сократить структуру нейронной сети, что позволит в дальнейшем увеличить скорость выполнения сетью возложенных на неё задач.
Для решения задачи прогнозирования ВВП с помощью спроектированной нейронной сети необходимо подготовить тестовый пример. Для этого в приложении Microsoft Excel создадим файл базы данных с именем Прогноз.dbf, в котором отразим характеристики признаков за прогнозируемый период, например, за декабрь 2000 года (таблица 3). Значение Y при этом не указывается, так как сеть должна спрогнозировать это значение.
Таблица 3 – Данные для тестирования
X1 |
X2 |
X3 |
X4 |
X5 |
X6 |
X7 |
X8 |
X9 |
X10 |
X11 |
X12 |
X13 |
Y |
189 |
286 |
74 |
84 |
22 |
9 |
8 |
25 |
89 |
111 |
1214 |
31 |
8 |
|
Опрос обученной сети происходит в окне нейропроекта. При этом необходимо открыть тестовый файл исходных данных Прогноз.dbf и выполнить команду «Нейросеть-Тестирование». Результат тестирования показан на рисунке 15.
Рисунок 15 – Результат тестирования сети
Полученный при тестировании нейронной сети результат говорит о том, что на декабрь 2000 года прогнозировалось значение внутреннего валового продукта порядка 246 млрд. рублей. Как показывают статистические данные за указанный период, прогнозируемые данные совпадают с реальными.