Автор работы: Пользователь скрыл имя, 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
Если нужно сохранение 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.
Требования к разрабатываемому
приложению
Практическая часть
Обучение линейного нейрона (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,'
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},
[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},
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