Читать практическое задание по Отсутствует: "Решение задач с использованием нейронных сетей в Matlab" Страница 2

назад (Назад)скачать (Cкачать работу)

Функция "чтения" служит для ознакомления с работой. Разметка, таблицы и картинки документа могут отображаться неверно или не в полном объёме!

параметры обучения. Задаем функцию оценки функционирования sse..performFcn='sse';

В этом случае в качестве оценки вычисляется сумма квадратичных отклонений выходов сети от эталонов. Задаем критерий окончания обучения - значение отклонения, при котором обучение будет считаться законченным:.trainParam.goal=0.01;

Задаем максимальное количество циклов обучения. После того, как будет выполнено это количество циклов, обучение будет завершено:.trainParam.epochs=1000;

Теперь можно начинать обучение:

[net,tr]=train(net,P,T);

Процесс обучения иллюстрируется графиком зависимости оценки функционирования от номера цикла обучения (номера эпохи). Таким образом, обучение сети окончено. Теперь эту сеть можно сохранить в файле nn1.mat: nn1 net;

В последующих сеансах работы сохранённую сеть можно загрузить, используя функцию (‘nn1’).

этап - Тестирование сети

Перед тем, как воспользоваться нейронной сетью, необходимо исследовать степень достоверности результатов вычислений сети на тестовом массиве входных векторов. В качестве тестового массива необходимо использовать массив, компоненты которого отличаются от компонентов массива, использованного для обучения. В нашем случае для получения тестового массива достаточно воспользоваться еще раз программой mas1.

Для оценки достоверности результатов работы сети можно воспользоваться результатами регрессионного анализа, полученными при сравнении эталонных значений со значениями, полученными на выходе сети, когда на вход поданы входные векторы тестового массива. В среде MATLAB для этого можно воспользоваться функцией postreg. Следующий набор команд иллюстрирует описанную процедуру: >> mas1 - создание тестового массива P

>> y=sim(net,P); - обработка тестового массива обученной сетью, y - выходы сети.

>> [m,b,r]=postreg(y(1,:),T(1,:));При выполнении последней команды выводится график в координатах: по оси ординат A - значения, полученные на первом выходе сети (расчетные значения коэффициента С), по оси абсцисс T - эталонные значения коэффициента с. Совершенно очевидно, что если все точки группируются вблизи прямойA = T, (1) то сеть на тестовом массиве работает правильно. Над графиком выводится уравнение прямой, найденное по полученным данным в виде:A = m·T + b. (2) Зависимость (2) тем точнее представляет (1), чем значение m ближе к 1, а значение b к 0.

Кроме того, выводится коэффициент корреляции R (в параметрах команды обозначен r).

Рисунок 1 -[m,b,r]=postreg(y(1,:),T(1,:)) - достоверность результатов работы сети для С коэффициента.

Рисунок 2 - [m,b,r]=postreg(y(2,:),T(2,:));- достоверность результатов работы сети для А коэффициента.

Рисунок 3 - [m,b,r]=postreg(y(3,:),T(3,:));- достоверность результатов работы сети для S коэффициента. Графики показывают, что сеть хорошо решает поставленную задачу для всех трех выходных параметров и можно перейти к её использованию.

Сохраним обученную сеть net на диске в файл nn1.matnn1 net

- этап: Моделирование сети.

Можно самим задать любые значения коэффициентов, рассчитать значения входного вектора, определить коэффициенты на выходе сети и сравнить их с заданными.

Например, пусть P(i,:)=a/(b+x^c)

P=P'

То есть a=0.1; b=0.1;с=0.1 Подставив этот входной вектор в качестве аргумента функции sim: p=0.1./(0.1+x.^0.1);=p'=sim(net,p) =

.0910(A)

.0821(B)

.1150(C) Близость полученных значений к правильному результату (0.1; 0.1; 0.1) свидетельствует о


Интересная статья: Основы написания курсовой работы