Нейросеревые модели

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

°ла, одним входом, двумя нейронами в первом слое и одним нейроном во втором слое, настроить сеть для обучения с использованием алгоритма градиентного спуска 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).

. Галушкин, А. И. Теория н