neuro_lab2
.pdfОтчет по лабораторной работе № 2
по дисциплине «Нейрокомпьютеры и их применение»
на тему: «Многослойный персептрон»
Цель работы: изучение алгоритмов обучения многослойного персептрона, выбор структуры и контроль качества обучения ИНС, решение задачи классификации многомерных данных.
1. Проведем предварительный анализ данных файла min_water.txt.
Для этого применим кластерный анализ к переменным. Столбец var1 не содержателен, поэтому применим операцию ignore к нему. Столбец var2 определяет 5 типов минеральной воды. Столбцы var3-var25 определяют различные признаки образцов минеральной воды. Будем проводить кластерный анализ так: группирование производить относительно выходной переменной var2, в качестве x зафиксируем, например, var3, для Y будем последовательно менять значения: var4var25. Те var4-var25, которые позволят получить 5 достаточно хорошо определенных несмешанных групп информативны. Например, информативны var3 и var6:
Рис. 22 – Пример проведения кластерного анализа
Было выявлено, что информативны var3, 6, 7, 8, 16, 19, 21, 22 (возможны и другие варианты, если мы зафиксировали не var3, а другую переменную).
Отметим столбец var2 выходом; столбцы var3, 6, 7, 8, 16, 19, 21, 22 – входами,.к остальным применим операцию ignore.
1
Рис. 23 - Часть отредактированной таблицы
Изменим соотношение чисел в cases на 24:8:8 – 24 строки (образца минеральной воды) для обучения, 8 – для верификации (валидации), 8 – для тестирования соответственно.
Рис. 24 - Часть отредактированной таблицы
Сделаем, чтобы разбиение на примеры для обучения, верификации, теста было случайным, для этого выберем: Edit – cases – shuffle – train, verify and test.
2
Рис. 25 - Часть отредактированной таблицы
Сделаем, чтобы для каждого из 5 типов воды было, по крайней мере, по 1 тестовой (синей) строке и 1 верификационной (красной) строке. В сумме должно быть 16 строк – для некоторых признаков, например, 1,3, 4 апризнаков – по 2 тестовых примера и 2 верификационных примера.
Рис. 27 - Часть отредактированной таблицы
3
2. Создадим многослойный персептрон, например с двумя внутренними слоями:
Рис. 28 – Многослойный персептрон с одним выходом Характеристики нейросети:
−Тип: многослойный перцептрон
−Число слоев: 4
−Число входов: 8 (равно числу выявленных в пункте 1 признаков)
−Число нейронов первого внутреннего слоя: 5
−Число нейронов второго внутреннего слоя: 3
−Число выходов: 1
−Steps: 1
−Lookahead: 0
−Функция преобразования нейронов: minimax
−Функция активации нейронов первого слоя: linear
−Функция активации нейронов первого внутреннего слоя: logistic
−Функция активации нейронов второго внутреннего слоя: logistic
−Функция активации нейронов выходного слоя: linear
−Функция ошибки: sum-squared
Обучим нейросеть методом обратного распространения ошибки. Параметры обучения:
−Число эпох: 2000
−Скорость обучения: от 0,5 до 0,0001
−Momentum: 0,3
4
Рис. 29 – График ошибки обучения и ошибки верификации нейросети
Рис. 30 - Таблица с предсказаниями нейросети и действительными классами
Пусть допуск по тесту 5% (то есть отклонение реального выхода НС не должно быть больше 5%, при этом нужно учитывать нормировку, например для образца № 27 отклонение (0,077 / 4) * 100% = 2%). Из рис. 30 видно, что все тестовые (синие) ответы сети верны, кроме образца № 3 с
5
отклонением более 8 %. Тогда отношение числа неверно распознанных тестовых образцов к общему числу тестовых образцов:
(1/8)*100% = 12,5 %
Вывод: из рис. 29 видно, что в процессе обучения нейросети в течение 2000 эпох значение ошибки обучения постепенно убывает, на последней эпохе составляет 0,05; значение ошибки верификации убывает, затем практически не меняется и составляет на последней эпохе 0,17. Из рис. 30 видно, что значения, предсказанные нейросетью, в основном отличаются от действительных менее, чем на 10 %; ошибка на тестовых данных составляет 0,077. Следовательно, данную нейросеть можно использовать для задачи распознавания образцов минеральной воды.
3. Изменим таблицу, чтобы число выходных переменных было 5, для этого применим ignore к var2, в конец таблицы добавим 5 переменных, обозначим их в качестве выходных и заполним нулями и единицами:
Рис. 31 - Часть отредактированной таблицы
6
Рис. 32 - Часть отредактированной таблицы Создадим многослойный персептрон с пятью выходами:
Рис. 33 - Многослойный персептрон с пятью выходами Характеристики нейросети:
−Тип: многослойный перцептрон
−Число слоев: 4
−Число входов: 8 (равно числу выявленных в пункте 1 признаков)
−Число нейронов первого внутреннего слоя: 5
−Число нейронов второго внутреннего слоя: 3
−Число выходов: 5
−Steps: 1
7
−Lookahead: 0
−Функция преобразования нейронов: minimax
−Функция активации нейронов первого слоя: linear
−Функция активации нейронов первого внутреннего слоя: logistic
−Функция активации нейронов второго внутреннего слоя: logistic
−Функция активации нейронов выходного слоя: logistic
−Функция ошибки: sum-squared
Обучим нейросеть методом обратного распространения ошибки. Параметры обучения:
−Число эпох: 2000
−Скорость обучения: 0,9
−Momentum: 0,3
Рис. 34 – График ошибки обучения и ошибки верификации нейросети
8
Рис. 35 - Таблица с предсказаниями нейросети и действительными классами
Пусть допуск 6 %. Все тестовые (синие) образцы удовлетворяют этому допуску. Тогда:
(0/8) *100% = 0 %
Вывод: из рис. 34 видно, что в процессе обучения нейросети в течение 2000 эпох значение ошибки обучения постепенно убывает, на последней эпохе составляет 0,0108; значение ошибки верификации убывает и составляет на последней эпохе 0,0163. Из рис. 35 видно, что значения, предсказанные нейросетью, в основном отличаются от действительных менее, чем на 10 %; ошибка на тестовых данных составляет 0,0152. Следовательно, данную нейросеть можно использовать для задачи распознавания образцов минеральной воды. Целесообразнее использовать для классификации образцов полученную сеть, а не сеть из пункта 2, так как для данной сети более вероятно отсутствие переобучения (ошибка верификации все время убывает), а значение ошибок обучения, верификации и тестовой меньше на последней эпохе при равном числе эпох обучения.
4. Решим задачу классификации образцов минеральной воды с помощью квазиньютоновского алгоритма обучения с чилом эпох обучения равным 1000.
9
Рис. 36 – График ошибки обучения и ошибки верификации нейросети
Рис. 37 - Таблица с предсказаниями нейросети и действительными классами
Пусть допуск 1 %. Все тестовые (синие) образцы удовлетворяют этому допуску. Тогда:
(0/8) *100% = 0 %
Вывод: из рис. 36 видно, что в процессе обучения нейросети в течение 1000 эпох значение ошибки обучения постепенно убывает и составляет практически ноль на последней эпохе; значение ошибки верификации сначала убывает, в районе 500-й эпохи резко возрастает, затем практически равно нулю. Из рис. 37 видно, что значения, предсказанные нейросетью отличаются от
10