Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лр1 бригада1

.docx
Скачиваний:
3
Добавлен:
30.11.2022
Размер:
2.07 Mб
Скачать

Федеральное государственное бюджетное образовательное учреждение высшего образования «Национальный исследовательский университет «МЭИ»

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

Лабораторная работа №1

По курсу: «Нейро-нечеткие технологии в задачах управления»

Изучение основ применения искусственных нейронных сетей

Выполнили студенты группы А-03-19

Бригада №1

Козлов И. А.

Муромцева Э. А.

Ярикова Л. Ю.

Проверил

Косинский М. Ю.

Москва 2022

Лабораторная работа №1

Цель работы - изучение основ работы с искусственными нейронными сетями (ИНС) в среде Neural Toolbox ППП Matlab.

Выполнение работы:

  1. Открыли необходимые данные в среде Matlab.

  2. Запустили Network Data Manager Neural Toolbox с помощью команды nntool.

  3. Загрузили входные и выходные данные для обучения.

В качестве входных данных использовали input11, а в качестве выходных – target11.

  1. На основе загруженных данных создали ИНС и задали параметры обучения для метода обратного распространения ошибки.

Рис 1. Параметры обучения ИНС.

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

  1. Для обучения созданной сети выделили ее и нажали кнопку open.

Рис 2. Схема обучаемой ИНС.

Во вкладке Training Info указали входную и целевую составляющие обучающей выборки в соответствующих полях, а также отклики и ошибки.

Рис 3. Задание составляющих обучающей выборки.

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

Рис 4. Задание параметров процесса обучения.

Запустили ИНС на обучение и построили графики ошибки обучения и градиента ошибки обучения.

Рис 5. Графики среднеквадратической ошибки обучающей, верификационной и тестовой выборок.

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

  1. Проверили работу обученной сети.

Загрузили новые входные (input13) и целевые выходные (target11) данные сети (аналогично пункту 3). На вкладке Simulate указали входные и целевые данные, а также отклики и ошибки. Отметили пункт для учета целевых данных.

Рис 6. Окно Simulate

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

>> plot(lr1_p5_10_11_GD_errors)

>> plot(lr1_p5_10_11_GD_outputs)

>> plot(target13)

Рис 7. График ошибки работы ИНС.

Рис 8. График выходных значений ИНС.

Рис 9. График целевых значений ИНС.

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

>> input11_half = input11(:, 1:500);

>> input13_half = input13(:, 1:500);

>> target11_half = target11(:, 1:500);

>> target13_half = target13(:, 1:500);

Для новой выборки аналогично пунктам 1-7 провели обучение.

Рис 10. Задание составляющих новой обучающей выборки.

Рис 11. Графики новых среднеквадратической ошибки обучающей, верификационной и тестовой выборок.

Рис 12. Окно Simulate для новой выборки.

Причина остановки обучения – завершение эпох.

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

>> plot(lr1_p5_10_11_GD_half_errors)

>> plot(lr1_p5_10_11_GD_half_outputs)

>> plot(target13_half)

Рис 13. График ошибки для новой выборки.

Рис 14. График выходных значений для новой выборки.

Рис 15. График целевых значений выходов для новой выборки.

  1. Увеличили вдвое количество нейронов в скрытом слое. Повторили пп.1-7.

Аналогично пунктам 1-7 задаем параметры ИНС и ее обучения. В результате получаем:

Рис 16. Графики среднеквадратической ошибки обучающей, верификационной и тестовой выборок для новой ИНС.

Рис 17. График выходных значений.

Рис 18. График ошибки.

Причина остановки обучения – завершение эпох.

  1. Добавили дополнительный слой ИНС. Рассмотрели случаи, когда в дополнительном слое больше, меньше и равное количество нейронов, чем в предыдущем слое. Повторили пп.1-7.

Аналогично пунктам 1-6 провели обучение ИНС с 5, 10 и 20 нейронами на скрытом слое.

Рис 19. Общая схема новой ИНС.

В результате обучения ИНС получаем следующие результаты:

5 нейронов.

Рис 20. Графики среднеквадратической ошибки обучающей, верификационной и тестовой выборок для ИНС с 5 нейрона в скрытом слое.

Рис 21. График выходных значений.

Рис 22. График ошибки.

Причина остановки обучения – завершение эпох.

10 нейронов.

Рис 23. Графики среднеквадратической ошибки обучающей, верификационной и тестовой выборок для ИНС с 10 нейрона в скрытом слое.

Рис 24. График выходных значений.

Рис 25. График ошибки.

Причина остановки обучения – завершение эпох.

20 нейронов.

Рис 26. Графики среднеквадратической ошибки обучающей, верификационной и тестовой выборок для ИНС с 20 нейрона в скрытом слое.

Рис 27. График выходных значений.

Рис 28. График ошибки.

Причина остановки обучения – завершение эпох.

  1. Повторили пп.1-10 с другими параметрами обучения – с помощью алгоритма Левенберга - Маркварда.

Аналогично пунктам 1-6 обучим ИНС с помощью алгоритма Левенберга - Маркварда.

Рис 29. Схема ИНС.

Получим следующие графики:

Рис 30. Графики среднеквадратической ошибки обучающей, верификационной и тестовой выборок для ИНС с алгоритмом обучения Левенберга - Маркварда.

Рис 31. График выходных значений.

Рис 32. График ошибки.

Причина остановки обучения – переобучение, т.е. validation stop (достижение показателя validation checks значения 6).

Аналогичным образом, как и в пункте 8, создадим копию выборки, содержащую половину элементов из исходной выборки. Затем проведем обучение ИНС на новой выборке. Получим следующее:

Рис 33. Графики новых среднеквадратической ошибки обучающей, верификационной и тестовой выборок.

Рис 34. График выходных значений.

Рис 35. График ошибки.

Причина остановки обучения – переобучение, т.е. validation stop (достижение показателя validation checks значения 6).

Затем, аналогично пункту 9, увеличим в 2 раза количество нейронов в скрытом слое. Проведем обучение ИНС и получим следующие результаты:

Рис 36. Графики среднеквадратической ошибки обучающей, верификационной и тестовой выборок для новой ИНС.

Рис 37. График ошибки.

Рис 38. График выходных значений.

Причина остановки обучения – переобучение, т.е. validation stop (достижение показателя validation checks значения 6).

Проведем обучение с 5, 10 и 20 нейронами на скрытом слое ИНС. Получаем:

Рис 39. Графики среднеквадратической ошибки обучающей, верификационной и тестовой выборок для ИНС с 5 скрытыми нейронами.

Рис 40. График ошибки.

Рис 41. График выходных значений.

Причина остановки обучения – переобучение, т.е. validation stop (достижение показателя validation checks значения 6).

Рис 42. Графики среднеквадратической ошибки обучающей, верификационной и тестовой выборок для ИНС с 10 скрытыми нейронами.

Рис 43. График ошибки.

Рис 44. График выходных значений.

Причина остановки обучения – переобучение, т.е. validation stop (достижение показателя validation checks значения 6).

Рис 45. Графики среднеквадратической ошибки обучающей, верификационной и тестовой выборок для ИНС с 20 скрытыми нейронами.

Рис 46. График ошибки.

Рис 47. График выходных значений.

Причина остановки обучения – переобучение, т.е. validation stop (достижение показателя validation checks значения 6).

  1. По результатам моделирования сравнили полученные результаты: длительность обучения, количество эпох обучения, полученные значения ошибок обучения и работы ИНС.

В случаях обучения ИНС методом обратного распространения ошибки (градиентный спуск) остановка обучения происходила из-за завершения эпох. ИНС потребовались все 1000 эпох для обучения. Для метода Левенберга – Маркварда причиной остановки обучения было переобучение ИНС (достижение показателя validation checks значения 6 – переобучение на протяжении 6 эпох). В среднем ИНС потребовалось всего 23 эпохи для обучения.

Наименьший диапазон ошибок (-0,05; 0,03) для ИНС с алгоритмом обучения обратного распространения ошибки был зафиксирован для случая увеличения количества нейронов в скрытом слое в два раза и для случая добавления дополнительного скрытого слоя с 20 нейронами на нем. Для ИНС с алгоритмом обучения Левенберга – Маркварда наименьший диапазон ошибки (-0,015; 0,015) был зафиксирован для случая обучения ИНС на выборке с половиной элементов изначальной выборки.

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

  1. Провели кластеризацию данных input11 одним из классических методов – методом главных компонент.

По заданию проведем разделение данных на 5 кластеров.

>> c1 = kmeans(input11', 5)

>> c11 = find(c1 == 1);

>> c12 = find(c1 == 2);

>> c13 = find(c1 == 3);

>> c14 = find(c1 == 4);

>> c15 = find(c1 == 5);

Результаты, полученные с помощью классического метода

>> disp(string(sum(c1==1)) + " " + string(sum(c1==2)) + " " + string(sum(c1==3)) + " " + string(sum(c1==4)) + " " + string(sum(c1==5)));

218 187 190 205 200

  1. Построили график, иллюстрирующий разделение данных на кластеры.

>> scatter3(transpose(input11(1,:)), transpose(input11(2,:)), transpose(input11(3,:)), 50, c1)

Рис 48. Разделение данных на кластеры.

  1. Создали ИНС вида Competitive. Провели ее обучение с целью выделения кластеров.

Рис 49. Параметры ИНС.

Рис 50. Схема обучаемой ИНС.

Выведем график разделения выборки на 5 кластеров с помощью обученной ИНС.

>>scatter3(transpose(input11(1,:)), transpose(input11(2,:)), transpose(input11(3,:)), 50, clusters)

Рис 51. Разделение выборки на 5 кластеров при помощи ИНС.

>> disp(string(sum(clusters==1)) + " " + string(sum(clusters==2)) + " " + string(sum(clusters==3)) + " " + string(sum(clusters==4)) + " " + string(sum(clusters==5)));

180 184 218 203 215

Таблица1. Разделение данных на 5 кластеров разными методами.

Номер кластера

Метод главных компонент

ИНС

1

218

180

2

187

184

3

190

218

4

205

203

5

200

215

Общее число совпадений кластеризации с помощью классического метода и ИНС:

>> sum(c1==clusters)

ans =

893

Вывод:

Диаграммы рассеивания для метода главных компонент и обученной ИНС очень схожи, но чисто по ним мы не можем сделать точных выводов какой алгоритм справился со своей задачей лучше или хуже другого. Поэтому проанализируем, сколько и каких элементов было занесено в кластеры одним и вторым методом. Метод главных компонент отнес 218 элементов к первому кластеру, 187 – ко второму, 190 – к третьему, 205 – к четвертому и 200 к пятому. Созданная ИНС отнесла 180 элементов к первому кластеру, 184 – ко второму. 218 – к третьему, 203 – к четвертому и 215 к пятому. Общее количество совпадений ИНС и метода главных компонент – 893 элемента. Таким образом, мы получаем довольно высокий результат совпадений разных методов - 89,3%.