Нейросеревые модели
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
°ла, одним входом, двумя нейронами в первом слое и одним нейроном во втором слое, настроить сеть для обучения с использованием алгоритма градиентного спуска GD, обучить эту сеть и путём её моделирования оценить качество обучения. Порядок выполнения задания следующий:
. Создать нейронную сеть с прямой передачей сигнала:
net8 = newff([0 5], …. % - диапазоны значений входа;
[2 1], ….. % - количество нейронов в слоях;
{?tansig?, % - функция активации для 1-го слоя;
?logsig?} % - функция активации для 2-го слоя;
?traingd?); % - имя функции обучения.
2. Убедиться, что веса и смещения каждого слоя инициализированы с помощью алгоритма Нгуена-Видроу:
net8.initFcn % - должно быть ?initlay?;.layers{1}.initFcn % - должно быть ?initnw?;.layers{2}.initFcn % - должно быть ?initnw?;.IW{1,1} % - вес входа;.LW{2,1} % - веса для 2-го слоя..b{1}.b{2}
3. Задать обучающие последовательности входов и целей T:
P = [0 1 2 3 4 5]; % - вектор входа;= [0 0 0 1 1 1]; % - вектор целей.
. Выдать на экран параметры обучающей функции traingd и их значений по умолчанию:
info = traingd(?pdefaults?)= epochs: 100 % - максимальное количество циклов
обучения;: 25 % - интервал вывода данных;: 0 % - предельное значение критерия обучения;: Inf % - максимальное время обучения;_grad: 1.0e-006 % - максимальное значение градиента
критерия % качества;_fail: 5 % - максимально допустимый уровень
% превышения ошибки контрольного
% подмножества по сравнению с обучающим.
Процедура обучения прекратится, когда будет выполнено одно из следующих условий:
а) значение функции качества стало меньше предельного goal;
б) градиент критерия качества стал меньше значения min_grad;
в) достигнуто предельное значение циклов обучения epochs;
г) превышено максимальное время, отпущенное на обучение time;
д) ошибка контрольного подмножества превысила ошибку обучающего более чем в max_fail раз.
Функция traingd предполагает, что функции взвешивания dotprod, накопления netsum и активации transig или rogsig имеют производные. Для вычисления производных критерия качества обу-
чения perf по переменным веса и смещения используется метод обратного распространения. В соответствии с методом градиентного спуска вектор настраиваемых переменных получает следующее приращение:= lr * dperf / dx ,
где tr - параметр скорости настройки, равный по умолчанию 0,01.
Функцией одновременного поиска минимума вдоль заданного направления в данной сети является функция srchbac.
. Обучить рассматриваемую сеть: net8.trainParam.epochs = 500;.trainParam.90al = 0.01;
[net8, TR] = train(net8, P, T);% - характеристики процедуры обучения.
6. Произвести моделирование сети и оценить качество ее обучения:
Ynet8 = sim(net8, P) % - целевые значения.
Задание 9. Повторить 8-е задание для следующих функций обучения: traingda, traingdm, traingdx, trainrp, traincgf, traincgp, traincgb, trainscg, trainbfg, trainoss, trainlm. Сравнить полученные результаты.
Задание 10. Создать и обучить сеть для аппроксимации синусоидальной функции, зашумленной нормально распределенным шумом, выполнив следующие действия:
. Задать обучающие последовательности:
P = [-1: .05: 1];= sin[2*pi*P] + 0.1*randn(size(P));
2. Сформировать сеть с прямой передачей сигнала:
net10 = newff([-1 1], [20 1], {?transig?, ?purelin?}, … ?trainbr?);
3. Настроить сеть:
net10.trainParam.epochs = 50;.trainParam.show = 10; % для отображения.
4. Обучить сеть и построить график аппроксимируемой функции и график выхода сети: net10 = train(net, P, T);
Y = sim(net, P);(P, Y, P, T, +) % - два графика.
5. Изменяя количество нейронов в первом слое, исследовать качество аппроксимации.
Задание 11. Создать сеть и произвести ее последовательную адаптацию, выполнив следующие команды:
net11 = newff([-1 2; 0 5], [3, 1], … {?tansig?, ?purelin?}, ?traingd?);.inputWeights{1, 1}.learnFcn = ?learngd?;.layerWeights{2, 1}.learnFcn = ?learngd?;.biases{1}.learnFcn = ?learngd?;.biases{2}.learnFcn = ?learngd?;.layerWeights{2, 1}.learnParam.lr = 0.2;= [-1 -1 2 2; 0 5 0 5];= [-1 -1 1 1];= num2cell(P,1);= num2cell(T,1);.adaptParam.passes = 50;
[net11, a, e] = adapt(net11, P,T);= sim(net11, P) % [-1.02] [-0.99624] [1.0279] [1.0021];(e) % - должно быть 5,5909е-004.
Задание 12. Создать сеть и произвести ее последовательную адаптацию, используя следующие функции настройки весов и смещений: learngdm, learnlv1, learnlv2, learnk, learncon, learnis, learnos, learnsom, learnh, learnhd. Сравнить алгоритм настройки для одной и той же обучающей последовательности.
Задание 13. Создать, обучить и апробировать многослойную нейронную сеть с прямой передачей сигнала для принятия решения о зачислении в высшее учебное заведение абитуриентов, сдавших вступительные экзамены по математике, физике и русскому языку.
Правила приема таковы:
. Проходной балл для абитуриентов, не имеющих льгот, должен быть равен 11;
. Удовлетворительные оценки по математике и физике для этой категории абитуриентов недопустимы;
. Абитуриенты, имеющие льготы, зачисляются при любых положительных оценках по всем трем предметам.
Для обучения сети следует использовать все изученные методы адаптации и обучения и провести анализ их эффективности. Следует также определить минимальное количество слоев и нейронов, обеспечивающее удовлетворительное решение поставленной задачи. Для формирования обучающего, контрольного и тестового множества построить дискретную имитационную модель, используя инструментальный пакет Simulink.
Список литературы
1. Дьяконов, В. Matlab 6: учебный курс [Текст] / В. Дьяконов. - СПб.: Питер, 2001. - 592 с.
. Медведев, В. Г. Нейронные Сети Matlab 6 / В. Г. Медведев; под общ. ред. к.т.н. В. Г. Потемкина. - М.: ДИАЛОГ-МИФИ, 2002. - 496 с. - (Пакеты прикладных программ; Кн.4).
. Галушкин, А. И. Теория н