Автор работы: Пользователь скрыл имя, 23 Декабря 2012 в 17:38, курсовая работа
Целью выполнения данного курсового проекта является расширение теоретических и закрепление практических знаний, полученных в ходе аудиторных и самостоятельных занятий.
Следовательно, можно выделить следующие задачи написания данной работы:
Описать возможности ПС MATLAB 6.1 и тулбокса NNT.
Описать возможности и особенности использования приложений Notebook....
Введение…………………………………………………………………………..3
2. Аналитическая часть…………………………………………………………..5
2.1 Содержательная и математическая постановка решаемой задачи………..5
2.2 Модель линейного нейрона……………………………………………….....6
2.3 Архитектура линейной сети…………………………………………………7
2.4 Обучение линейной сети…………………………………………………….7
2.5 Применение линейных сетей………………………………………………….8
2.6 Краткое описание возможностей и особенностей среды Matlab 2006a и тулбокса NNT (Neural Network ToolBox)………………………………………10
2.7 Краткое описание возможностей и особенностей использования приложений Notebook и ExcelLink……………………………………………..15
2.8 Формирование требований к разрабатываемому приложению…………..20
3. Проектная часть……………………………………………………………….21
3.1 Описание назначения, состава и функций разработанного приложения...21
3.2 Рассмотрение особенностей реализации приложения…………………….24
3.3 Детальное описание особенностей выполнения демонстрационного примера…………………………………………………………………………...24
3.4 Анализ возможности и целесообразности использования разработанного приложения в составе интеллектуальных ЭИС………………………………..28
4. Заключение…………………………………………………………………….30
Список литературы………………………………………………………………31
Для принудительного вычисления ячейки автостарта следует:
Рассмотрим некоторые команды, которые поддерживает Notebook.
3. Define Calc Zone превращает выделенный текст (с ячейками ввода и вывода) в некоторую зону вычислений, решающую определенную задачу. Таких зон в M-книге может быть много, и они могут использоваться для решения ряда задач. Примером, где такие зоны полезны, являются сборники различных задач с действующими примерами.
4. Evaluate Cell (Оценка ячейки) направляет текущую ячейку ввода или группу ячеек в решатель MATLAB для проведения необходимых вычислений или обработки данных. Этот процесс принято называть оцениванием (evaluate) или попросту вычислением ячейки. Результат, в том числе и в виде сообщений об ошибках (они выводятся красным цветом), направляется в ячейку вывода текстового редактора Word. Ячейка ввода (или группа ячеек) считается текущей, если маркер ввода находится в ее поле, в конце ее строки или в связанной с ней ячейке вывода. Выделенная ячейка также считается текущей. [8]
Это лишь некоторые самые часто используемые команды, которые поддерживает Notebook.
Excel Link объединяет вычислительные
и графические возможности
Любые данные, импортируемые из Excel могут быть переданы в MATLAB для анализа. Связь между Excel и MATLAB не требует создания промежуточных файлов.
Линейный нейрон позволяет адаптировать сеть так, что, учитывая один сигнал, он может предсказать, второй сигнал. Одно из самых главных требований к этому приложению – максимальная точность. 100% точность не может быть достигнута в связи с тем, что это всего лишь модель процесса, а не сам процесс.
Нам нужно будет создать линейный слой. Аргументом является число нейронов в слое. [0 1] задает один вход без задержки и один вход с задержкой на единицу. Еще одним аргументом будет является скорость обучения.
Все это можно проделать с помощью встроенных в Matlab функций, что существенно упростит работу при моделировании.
3. Проектная часть
3.1
Описание назначения, состава и
функций разработанного
В начале проектной части рассмотрим код приложения:
time = 1:0.01:2.5; X = sin(sin(time).*time*10); P = con2seq(X); T = con2seq(2*[0 X(1:(end-1))] + X);
plot(time,cat(2,P{:}),time, title('Input and Target Signals') xlabel('Time') legend({'Input','Target'})
net = newlin([-3 3],1,[0 1],0.1);
[net,Y,E,Pf]=adapt(net,P,T); plot(time,cat(2,Y{:}),'b', ... time,cat(2,T{:}),'r', ... time,cat(2,E{:}),'g',[1 2.5],[0 0],'k') legend({'Output','Target',' |
Код этого приложения включает в себя всего лишь 14 строк и 2 графика, которые будут рассмотрены позже. Из этого можно сделать вывод, что даже при решении такой серьезной и не простой задачи, Mаtlab позволяет нам, благодаря своим полезным функциям, решить эту задачу за минимальное количество шагов.
Рассмотрим каждую из строк приложения:
time = 1:0.01:2.5; - определяет время шагов этого моделирования
X = sin(sin(time).*time*10); - задает синусоидальную функцию
Поскольку предполагается адаптивная настройка параметров сети, то в следующих двух строчках обучающая последовательность должна быть представлена в виде массива ячеек:
P = con2seq(X);
T = con2seq(2*[0 X(1:(end-1))] + X);
P определяет сигнал этих шагов по времени. Т сигнала, поступающего от P, сдвигая его влево, умножив его на 2 и добавить его к себе.
plot(time,cat(2,P{:}),time,
title('Input and Target Signals') – задаем обозначение (название) графику
xlabel('Time') – подпись по оси Х «Time»
legend({'Input','Target'}) – дается название линиям на графике
Таким образом мы провели моделирование сети. И вот, что у нас получилось на графике:
График 1
net = newlin([-3 3],1,[0 1],0.1); - создает линейный слой. [-3; 3] является ожидаемый диапазон входного сигнала. Вторым аргументом является число нейронов в слое. [0 1] задает один вход без задержки и один вход с задержкой на один. Последним аргументом является скорость обучения.
[net,Y,E,Pf]=adapt(net,P,T); - Разрешить нейронной сети для изменения веса и смещения на входы. Последовательная адаптация сети с входами Р и целями Т.
plot(time,cat(2,Y{:}),'b', ...
time,cat(2,T{:}),'r', ...
time,cat(2,E{:}),'g',[1 2.5],[0 0],'k')
legend({'Output','Target','
Далее функция ADAPT имитирует адаптивные сети. Он принимает сеть, сигнал, и выходной сигнал, и фильтрует сигнал адаптивно. На построенном графике выход Y обозначен синим цветом, цель T красным и ошибка E - зеленым. При Т = 2 сети видно, что, ошибка, отношения между входными сигналами и целями падает почти до нуля.
Каждый объект осям графика может иметь одну метку оси х. Метка отображается под соответствующей осью в двумерный график и в сторону или ниже оси в трехмерном графике.
График 2
Matlab очень удобен для реализации приложений для решения аналогичных задач, пример которой был рассмотрен выше. Рассмотрим теперь, какие именно возможности Matlab были использовании при реализации приложения.
Разберем каждую использованную функцию в отдельности.
Составим список функций, которые использовались в этом приложении.
Plot – команда для построения графиков
title – дается заголовок графику
xlabel – задается подпись оси Х
legend – размещение легенды с информацией о линиях
newlin - формирует нейронную сеть в виде линейного слоя.
Синтаксис: net = newlin(PR, s, id, lr);
Входные аргументы:
PR – массив размера Rх2 минимальных и максимальных значений для R векторов входа;
s – число нейронов;
id – описание линии задержки на входе сети, по умолчанию [0];
lr- параметр скорости настройки, по умолчанию 0.01.
Выходные аргументы:
net – объект класса network object с архитектурной линейного слоя.
Adapt - разрешает нейронной сети изменение веса и смещения на входы.
Синтаксис: [net,Y,E,Pf,Af,tr] = adapt(net,P,T,Pi,Ai)
Описание:
net |
Сеть |
P |
Входящие параметры сети |
T |
Цели сети (по умолчанию равно нулю) |
Pi |
Начальная задержка входного условия (по умолчанию равно нулю) |
Ai |
Начальный уровень задержки условиях (по умолчанию равно нулю) |
net |
Обновление сети |
Y |
Выходные параметры сети |
E |
Ошибки сети |
Pf |
Окончательные условия входных задержек |
Af |
Окончательные условия задержки слоя |
tr |
Обучение записи (эпоха и перфорация) |
Теперь следует определить инструкцию для пользователя:
1) Откроем Matlab.
(По умолчанию: Пуск -> Все программы -> MATLAB -> r2006a -> MATLAB)
2) Открываем m-файл с моделью demolin8 и нажимаем клавишу Enter:
3) Появится такое окно:
4) Затем нажимаем на ссылку «View the published version of this demo to learn more about "demolin8.m"». (Просмотр демонстрации опубликованной версии, чтобы больше узнать о "demolin8.m") MATLAB выдаст нам справку об этом примере с текстом программы и графиками.
5) Затем откроем этот файл в редакторе, нажав на строку «Open demolin8.m in the Editor». Появится такое окно:
6) Запускаем модель на выполнение (Debug -> Run). На plot’е отображается график:
Как видно из графика, модель работает нормально, поэтому реализация модели на этом закончена.
3.4
Анализ возможности и
Благодаря этому приложению пользователь может провести адаптацию линейных нейронов так, что, учитывая один сигнал, он может предсказать, второй сигнал. После прогона модели у пользователя появляется возможность увидеть получившийся график и узнать ответ, изучив график.
Чтобы человек смог провести анализ данных и сделать предсказание о втором сигнале, ему может потребоваться большое количество времени. Ведь скорость работы современных ЭВМ составляет около 100 Mflops (flops – операция с плавающей запятой в секунду). В мозгу содержится примерно 1011 нейронов. Время прохождения одного нервного импульса около 1 мс, и можно считать, что производительность одного нейрона порядка 10 flops. Эквивалентное быстродействие мозга составит 1012 flops. Если рассмотреть задачи решаемые мозгом, и подсчитать требуемое количество операций для их решения на обычных ЭВМ, то получим оценку быстродействия до 1012-1014 flops. Разница в быстродействии – 4-6 порядков. Из этих цифр видно, насколько быстрее можно решить задачу по предсказанию поведения второго сигнала с помощью ЭВМ, а именно, с помощью MATLABа.
Благодаря этому приложению можно решать задачи по подавлению шумов. Пример этой задачи был рассмотрен выше в пункте 2.5 «Применение линейных сетей».
Конечно, это далеко не совершенная модель и полностью разобраться в адаптации линейного слоя с помощью нее невозможно, однако получить достаточно точный и хороший результат вполне возможно. Таким образом данная модель может дать толчок в изучении проблемы адаптации линейного слоя и в проблеме предсказания сигнала. Отсюда следует целесообразность и обоснованность применения разработанной модели в составе интеллектуальных ЭИС.
4. Заключение.
В данной работе была рассмотрена адаптация линейного слоя. Этот процесс был отображен с помощью среды Matlab 2006a. Эта среда отлично подходит для решения задач, связанных с адаптации линейного слоя и предсказанием сигнала.
К таким задачам можно отнести: задачу классификации векторов, задачу по фильтрации сигнала, задачу по подавлению шумов и многие другие.
Разработанная программа проста в применении, и ее использование не вызовет затруднений даже у начинающего пользователя. Безусловно, от пользователя требуется минимальный набор знаний о том, как работать в MATLABе, что такое нейронные сети и что такое линейные сети. Но благодаря MATLABу и этой модели в частности, любой пользователь сможет воспользоваться этим приложением и без проблем достигнуть поставленные перед собой цели.
Список использованной литературы.