Адаптируемый линейный слой

Автор работы: Пользователь скрыл имя, 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

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

sam_kursach.doc

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

Для принудительного  вычисления ячейки автостарта следует:

    • Позиционировать курсор в ячейке автостарта.
    • Использовать команду Evaluate Cell или сочетание клавиш Ctrl-Enter.

Рассмотрим некоторые  команды, которые поддерживает Notebook.

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

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

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

 

Это лишь некоторые самые часто используемые команды, которые поддерживает Notebook.

Excel Link объединяет вычислительные  и графические возможности MATLAB с возможностями электронной таблицы Microsoft Excel. Excel Link позволяет обмениваться данными между MATLAB и Excel, обеспечивая беспрецедентные возможности для анализа, обработки и представления данных. [7]

Любые данные, импортируемые  из Excel могут быть переданы в MATLAB для анализа. Связь между Excel и MATLAB не требует создания промежуточных файлов.

 

 

  • 2.8 Формирование требований к разрабатываемому приложению.
  •  

    Линейный нейрон позволяет  адаптировать сеть так, что, учитывая один сигнал, он может предсказать, второй сигнал. Одно из самых главных требований к этому приложению – максимальная точность. 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,cat(2,T{:}),'--')

    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','Error'})


     

    Код этого приложения включает в себя всего лишь 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,cat(2,T{:}),'--')- извлекает информацию об ошибке сети и строит соответствующий график

     

    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','Error'})

     

    Далее  функция ADAPT имитирует адаптивные сети. Он принимает сеть, сигнал, и выходной сигнал, и фильтрует сигнал адаптивно. На построенном графике выход Y обозначен синим цветом, цель T красным и ошибка E - зеленым. При Т = 2 сети видно, что, ошибка, отношения между входными сигналами и целями падает почти до нуля.

    Каждый объект осям графика может  иметь одну метку оси х. Метка  отображается под соответствующей  осью в двумерный график и в сторону или ниже оси в трехмерном графике.

     

    График 2

     

  • 3.2 Рассмотрение особенностей реализации приложения.
  •  

    Matlab очень удобен для реализации приложений для решения аналогичных задач, пример которой был рассмотрен выше. Рассмотрим теперь, какие именно возможности Matlab были использовании при реализации приложения.

    1. Среда Matlab, из которой запускаются сопутствующие приложения. В Matlab код вводиться построчно, поэтому можно сразу определить ошибку в синтаксисе кода, если она появиться. Matlab сам сообщит нам об ошибке.
    2. Возможность записывать комментарии в коде программы и отделять их от основного кода, чтобы интерпретатор не рассматривал их как часть приложения.
    3. Функции, прописанные в библиотеках Matlab. Можно использовать уже имеющиеся. Но нужно обязательно знать принцип работы той или иной функции.
    4. 3.3 Детальное описание особенностей выполнения демонстрационного примера.

     

    Разберем каждую использованную функцию в отдельности.

    Составим список функций, которые использовались в этом приложении.

    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у и этой модели в частности, любой пользователь сможет воспользоваться этим приложением и без проблем достигнуть поставленные перед собой цели.

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    Список использованной литературы.

     

    1. М. В. Головицына «Информационные технологии проектирования радиоэлектронных средств» Бином. Лаборатория знаний с. 402
    2. Ю.П.Маслобоев Neural Network Toolbox. Семинар "Обзор возможностей системы MATLAB" 26.02.02
    3. В.Г.Потемкин. Notebook "Нейронные сети"
    4. http://ru.wikipedia.org Интернет ресурс
    5. Семенов Н.А. Лекции.
    6. http://neural-networks.ru/Vvedenie-v-Matlab/ Интернет ресурс
    7. http://matlab.exponenta.ru Интернет ресурс
    8. Дьяконов Владимир Павлович, Круглов Владимир Васильевич

    Информация о работе Адаптируемый линейный слой