Обучение линейного нейрона

Автор работы: Пользователь скрыл имя, 20 Декабря 2010 в 20:07, курсовая работа

Краткое описание

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

Для достижения поставленной цели необходимо решить следующие задачи:

•самостоятельное изучение специальной литературы
•изучение встроенных инструментальных средств системы для математических расчетов MATLAB
•рассмотрение возможностей и особенностей базового программного обеспечения из состава ППП Neural Network Toolbox (NNT) ПС MATLAB 6
•практическое применение ППП Neural Network Toolbox (NNT) ПС MATLAB 6 при проектировании вероятностной нейронной сети

Содержание

Введение 3
1. Аналитическая часть
1.1 Содержательная и математическая постановка решаемой задачи 5
1.2 Краткое описание возможностей ПС MATLAB 6.1 и тулбокса NNT 12
1.3 Краткое описание возможностей и особенностей использования приложений Notebook 17
1.4 Требования к разрабатываемому приложению 22
2. Практическая часть 24
Заключение 29
Список использованных источников 30

Прикрепленные файлы: 1 файл

КУРСОВАЯ_ИИС.doc

— 285.00 Кб (Скачать документ)

Если  нужно сохранение Notebook с заданным именем, то надо исполнить команду Save As (Сохранить как) из меню File (Файл) главного меню. Появится стандартное окно записи файла (рис. 2.12), и его можно записать как файл документа с расширением .doc.

Если  использовался шаблон, то это будет окно шаблона. В этом случае файл записывается с расширением .dot. При закрытии последнего из ряда документов приложение Notebook создает окно с запросом о том, нужно ли закрыть MATLAB. Для редактирования уже созданного Notebook достаточно загрузить его с помощью команды Открыть из меню Файл.

Создание  ячейки ввода

Команда Define Input Cell (Alt + D) формирует ячейку ввода. Если маркер ввода

находится в начале абзаца, то весь абзац преобразуется  в ячейку ввода. Если команда используется при наличии выделенного фрагмента текста, то этот фрагмент преобразуется в ячейку ввода. Ячейка автостарта (см. ниже) также преобразуется в ячейку ввода, если в ней размещен маркер ввода. Пустая строка с маркером ввода становится ячейкой ввода после набора нужного выражения и его фиксации нажатием клавиш Ctrl + Enter. Текст ячейки ввода обрамляется жирными квадратными скобками — [Текст]. Используется стиль Input с жирным шрифтом Courier New темно-зеленого цвета размером 10 пунктов.

Создание  ячейки автостарта

Команда Define Autolnit Cell создает ячейку автостарта. Это ячейка, которая будет исполняться сразу после загрузки М-книги в текстовый процессор Word. Тут уместно отметить, что обычные ячейки (без автостарта) не эволюционируют без специальной команды. Ячейки автостарта обязательно эволюционируют и выдают результаты, соответствующие имеющимся в М-книге входным данным. Правила применения этой команды те же, что были описаны для предшествующей команды. Текст соответствующей ячейки стиля Autolnit имеет темно-синий

цвет (шрифт Courier New, размер 10 пунктов).

Создание  зоны вычислений

Команда Define Calc Zone превращает выделенный текст (с ячейками ввода и вывода) в  некоторую зону вычислений, решающую определенную задачу. Таких зон в М-книге может быть много, и они могут использоваться для решения ряда задач. Примером, где такие зоны полезны, являются сборники различных задач с действующими примерами.

Преобразование  ячеек MATLAB в обычный  текст

Команда Undefine Cells преобразует выделенные ячейки в обычный текст. Обрамления ячеек при этом убираются, а текст представляется стилем Обычный (Normal). Если выделений текста нет, а маркер ввода стоит на ячейке MATLAB, то именно эта ячейка преобразуется в текст.

Удаление  ячеек вывода

Команда Purge Output Cell удаляет ячейки вывода. Если надо удалить одну ячейку вывода, достаточно разместить в ней маркер ввода и исполнить данную команду. Для удаления нескольких ячеек их надо предварительно выделить. При этом можно выделить и весь текст М-книги, содержащей ячейки вывода.

Создание  многострочной ячейки ввода

Команда Group Gells объединяет все ячейки ввода  в выделенной части документа  в группу ячеек ввода. При этом выделенный текст размещается после этой группы, за исключением той части текста, которая размещена до первой ячейки. Ячейки вывода, имеющиеся в выделенном тексте, устраняются. Если первая ячейка ввода имеет статус ячейки автостарта, то такой статус приобретают все ячейки группы. Группе ячеек можно придать этот статус и с помощью команды Autolnit Cell.

Преобразование  группы ячеек в  ячейки ввода

Команда Ungroup Cells преобразует группу ячеек  в обычные ячейки ввода или  ячейки автостарта. Ячейки вывода, связанные  с преобразуемыми ячейками, удаляются. Для преобразования надо указать  группу путем размещения маркера  ввода в конце строки, завершающей группу, или в ячейке вывода, связанной с выделенной группой ячеек.

Управление  показом маркеров

Как уже  указывалось, обычно ячейки ввода и  вывода MATLAB отмечаются жирными серыми квадратными скобками (маркерами), отличными  от обычных квадратных скобок. Маркеры видны только на экране дисплея. Команда Hide/Show Cell Markers позволяет убрать или, напротив, включить показ маркеров. При печати М-книг маркеры не печатаются независимо от того, видны они на экране дисплея или нет.

Пуск  оценки ячеек

Команда Evaluate Cell (Оценка Ячейки) направляет текущую ячейку ввода или группу ячеек в решатель MATLAB для проведения необходимых вычислений или обработки данных. Этот процесс принято называть оцениванием (evaluate) или попросту вычислением ячейки. Результат, в том числе и в виде сообщений об ошибках (они выводятся красным цветом), направляется в ячейку вывода текстового редактора Word. Ячейка ввода (или группа ячеек) считается текущей, если маркер ввода находится в ее поле, в конце ее строки или в связанной с ней ячейке вывода. Выделенная ячейка также считается текущей.

Пуск  оценки зоны

Команда Evaluate Calc Zone (Оценка вычисляемой зоны) вызывает пересчет текущей зоны вычислений. Зона считается текущей, если в ней  размещен маркер ввода. Для каждой ячейки ввода в зоне создается ячейка вывода.

Пуск  оценки всей М-книги

Команда Evaluate M-book вызывает пересчет всех ячеек  ввода или групп ячеек для  текущей М-книги. Текущей является та книга, текст которой (или его  часть) виден в активном окне текстового процессора Word. Заметим, что Word может работать с несколькими М-книгами поочередно. При этом все они загружены в свои окна, но лишь одно окно (видимое на экране) является активным и текущим. Вычисления начинаются от начала М-книги и продолжаются до ее конца. Результаты вычислений поступают в ячейки вывода, а если каких-либо выходных ячеек еще нет, то они создаются. Рекомендуется применять эту команду в конце отладки и редактирования М-книги, чтобы соблюсти соответствие между модифицированными ячейками ввода и их ячейками вывода. 
 
 
 
 
 
 

    1.4. Требования к разрабатываемому  приложению 

  1. Доступность - требования ко времени непрерывной  работы приложения, например, 24x7, минимальное  время простоя и т.п.;
 
  1. Надежность - поведение приложения при наступлении  нештатных ситуаций, например, автоматический перезапуск, восстановление работы, дублирование важных данных, резервирование логики;
 
  1. Требования  к долговременному хранению результатов  работы приложения, например, использование  базы данных, требования ко времени  продолжительности хранения данных;
 
  1. Масштабируемость - требования к горизонтальному или  вертикальному масштабированию  приложения;
 
  1. Требования  к удобству использования приложения с точки зрения использования, поддержки;
 
  1. Требования  к безопасности работы или использования  приложения, связанные с разграничением доступа, работой с приватными данным, снижения подверженности рискам от внешних атак;
 
  1. Требования  к конфигурируемости работы приложения, взаимодействия и расположения компонентов;
 
  1. Требования  к производительности решения, количество одновременно работающих пользователей, обслуживаемых транзакций, времени реакции, продолжительности вычислений, скорости и пропускной способности каналов связи;
 
  1. Описание  ограничений, накладываемых на объем  доступной памяти, процессорного  времени, дискового пространства, пропускную способность сети, при которых приложение должно эффективно выполнять возложенные на него задачи;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Практическая  часть

Обучение  линейного нейрона (demolin2)

Training a Linear Neuron

A linear neuron is trained to respond to specific inputs with target outputs. 

 Обучение  Линейного Нейрона

 Линейный  нейрон обучается реагировать на конкретные входы с целевыми выходами. 
 

P defines two 1-element input patterns (column vectors).  T defines associated

1-element targets (column vectors).  A single input linear neuron with a bias

can be used to solve this problem. 

Сформируем  последовательности векторов входа и цели (2 одноэлементных вектора). Единственный входной линейный нейрон с отклонением может использоваться, чтобы решить эту проблему. 

>> P = [1.0 -1.2];

>> T = [0.5 1.0]; 
 

ERRSURF calculates errors for a neuron with a range of possible weight and

bias values.  PLOTES plots this error surface with a contour plot underneath.

The best weight and bias values are those that result in the lowest point on

the error surface. 

 ERRSURF вычисляет ошибки для нейрона с диапазоном весов и величиной смещения. PLOTES графически изображает поверхность ошибок и контур ошибок.

 Лучший  вес и величина смещения - те, которые приводят к самому низкому показателю на поверхности ошибок. 

w_range = -1:0.2:1;  b_range = -1:0.2:1;

ES = errsurf(P,T,w_range,b_range,'purelin');

plotes(w_range,b_range,ES);  

 

MAXLINLR finds the fastest stable learning rate for training a linear network.

For this demo, this rate will only be 40% of this maximum.  NEWLIN creates a

linear neuron.  NEWLIN takes these arguments: 1) Rx2 matrix of min and max

values for R input elements, 2) Number of elements in the output vector, 3) Input delay vector, and 4) Learning rate. 

MAXLINLR вычисляет максимальные значения параметра скорости обучения для линейной сети.

В данном случае это значение составит 40 % от максимальной скорости. NEWLIN создает линейную нейронную сеть.

NEWLIN выбирает следующие аргументы: 1) массив размера R*2 минимальных и максимальных значений для R векторов входа 2) Ряд элементов в векторе цели 3) Входной вектор задержки 4) Изучение уровня.

 

>> maxlr = 0.40*maxlinlr(P,'bias');

>> net = newlin([-2 2],1,[0],maxlr); 
 

 Override the default training parameters by setting the performance goal.

 Отмените параметры обучения по умолчанию и установите исполнительную цель. 

>> net.trainParam.goal = .001; 
 
 

To show the path of the training we will train only one epoch at a time and

call PLOTEP every epoch.  The plot shows a history of the training.  Each dot

represents an epoch and the blue lines show each change made by the learning

rule (Widrow-Hoff by default). 

Чтобы показать путь обучения, мы будем обучать  только одну эпоху за один раз и  «вызывать» PLOTEP каждую эпоху. График показывает историю обучения. Каждая точка представляет эпоху, а синие линии показывают каждое изменение, произведенное изученным правилом (Видроу-Хофф по умолчанию).

 

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

net.trainParam.epochs = 1;

net.trainParam.show = NaN;

h=plotep(net.IW{1},net.b{1},mse(T-sim(net,P)));    

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

r = tr;

epoch = 1;

while true

   epoch = epoch+1;

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

   if length(tr.epoch) > 1

      h = plotep(net.IW{1,1},net.b{1},tr.perf(2),h);

      r.epoch=[r.epoch epoch];

      r.perf=[r.perf tr.perf(2)];

      r.vperf=[r.vperf NaN];

      r.tperf=[r.tperf NaN];

   else

      break

   end

end

tr=r; 
 
 

The train function outputs the trained network and a history of the training

performance (tr).  Here the errors are plotted with respect to training

Информация о работе Обучение линейного нейрона