Сделай Сам Свою Работу на 5

Операционная среда MATLAB 6





В. Г. ПОТЕМКИН

 

 

НЕЙРОННЫЕ СЕТИ
MATLAB 6

 

 

Под общей редакцией

кандидата технических наук В. Г. Потемкина

 

 


УДК 681. Пакеты прикладных программ

Выпускается с 1999 года

 

 

Медведев В. С., Потемкин В. Г.

Нейронные сети. MATLAB 6./Под общ. ред. В. Г. Потемкина. – М.: ДИАЛОГ-МИФИ, 2001. – 630 с. – (Пакеты прикладных программ; Кн. 4).

 

ISBN 5-86404-144-0 (Кн. 4)

 

В книге содержится описание пакета прикладных программ Neural Network Toolbox (ППП NNT) версии 4 (выпуски 11 и 12), функционирующего под управлением ядра системы MATLAB версий 5.3 и 6.

Книга состоит из двух частей. Первая часть содержит теорию и описание различных типов нейронных сетей; вторая – включает справочный материал, связанный с описанием М-функций пакета.

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

Приведено полное описание вычислительной модели нейронной сети в виде массива записей. Архитектура нейронной сети представлена ее S-моделью, которая воспроизводится с помощью системы SIMULINK. Пакет программ дополнен библиотекой Neural Network Toolbox Block Library, содержащей блоки, необходимые для формирования S-модели нейронной сети.



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

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

 

Учебно-справочное издание

Медведев Владимир Степанович, Потемкин Валерий Георгиевич

Нейронные сети. MATLAB 6.

Под общ. ред. В. Г. Потемкина.

 

 

ISBN 5-86404-144-0 (Кн. 4) © Медведев В. С., Потемкин В. Г., 2001

ISBN 5-86404-135-1 © Оригинал-макет, оформление обложки,

ЗАО «Диалог-МИФИ», 2001

 


ПРЕДИСЛОВИЕ

Предлагаемая вниманию читателя книга входит в серию "Пакеты прикладных программ". Эта серия книг [54–56] посвящена описанию прикладного программного обеспечения фирмы MathWorks, функционирующего под управлением ядра системы MATLAB.



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

Теория нейронных сетей развивается в течение последнего полувека, но практическое ее применение стало возможно только в последние 10–15 лет, когда была создана необходимая элементная база для реализации нейронных сетей. Обращаем внимание читателей на ряд обзорных работ по нейронным сетям на русском языке [57, 58].

Тем не менее данная книга занимает особое место, поскольку в ней описан реальный инструмент для расчета и проектирования нейронных сетей. Книга состоит из двух частей. Часть 1 содержит теорию и описание конкретных нейронных сетей. В нее также включен раздел по системе MATLAB 6 и GUI-интерфейсу для работы с ППП NNT. Часть 2 вклю­чает справочный материал по описанию М-функций пакета.

Значительное внимание уделено проектированию контроллеров для систем управления на основе нейронных сетей. Рассмотрено несколько весьма сложных систем управления, для которых процедура проектирования контроллера занимает значительное время.
В первую очередь это модель химического реактора с непрерывным перемешиванием, где используется модель управляемого процесса для предсказания поведения реактора в процессе его функционирования. Другая модель – управление движущимся объектом в магнитном поле. Здесь в качестве модели управляемого процесса используется нелинейная авторегрессионная модель со скользящим средним, которая входит в состав регулятора
и реализуется в виде нейронной сети. Еще один пример связан с управлением роботом, здесь нейронные сети используются для построения как модели управляемого объекта, так и самого регулятора. Работа с этими системами возможна только при наличии ядра системы MATLAB версии 6 и системы Simulink версий 4 (R12) или 5.



Читателю следует выбрать стиль работы с книгой. Начинающему знакомиться
с теорией и практикой нейронных сетей рекомендуется в первую очередь просмотр демонстрационных примеров и формирование сетей с помощью GUI-интерфейса NNTool. Опытному пользователю, создающему собственные архитектуры нейронных сетей, следует применять режим работы из командного окна, который позволяет воспользоваться всеми возможностями ППП NNT. Следует также обратить внимание на интерфейс ППП NNT с системой SIMULINK, что позволяет наглядно отображать архитектуру сети и выполнять моделирование как статических, так и динамических нейронных сетей.

При чтении книги читатель найдет большое количество примеров формирования
и расчета нейронных сетей. Все операторы в этих примерах проверены и в точности соответствуют приводимым результатам. Таким образом, читатель, предполагающий активно использовать компьютер при изучении материала этой книги, сможет воспроизводить примеры в среде системы MATLAB с установленным ППП NNT. Кроме того, мы
предполагаем к моменту выхода книги разместить на сайте www.mathworks.ru М-файлы этих сценариев, которые будут доступны для копирования. Это позволит избавиться
от возможных непреднамеренных ошибок пользователя.

Авторы выражают благодарность О. А. Мишулиной за полезные советы при подготовке рукописи книги, способствовавшие ее улучшению.

В. С. Медведев,
В. Г. Потемкин
,

сентябрь 2001 г.


Введение

В последние годы наблюдается повышенный интерес к нейронным сетям, которые нашли применение в самых различных областях человеческой деятельности – бизнесе, медицине, технике. Нейронные сети используются при решении задач прогнозирования, классификации, управления. Такой впечатляющий успех определяется несколькими причинами [46–49]:

· Нейронные сети – это исключительно мощный метод имитации процессов и явлений, позволяющий воспроизводить чрезвычайно сложные зависимости. Нейронные сети по свой природе являются нелинейными, в то время как на протяжении многих лет для построения моделей использовался линейный подход. Кроме того, во многих случаях нейронные сети позволяют преодолеть "проклятие размерности", обусловленное тем, что моделирование нелинейных явлений в случае большого числа переменных требует огромного количества вычислительных ресурсов.

· Другая особенность нейронных сетей связана с тем, что они используют механизм обучения. Пользователь нейронной сети подбирает представительные данные, а затем запускает алгоритм обучения, который автоматически настраивает параметры сети. При этом от пользователя, конечно, требуется какой-то набор эвристических знаний
о том, как следует отбирать и подготавливать данные, выбирать нужную архитектуру сети и интерпретировать результаты, однако уровень знаний, необходимый для успешного применения нейронных сетей, гораздо скромнее, чем, например, при использовании традиционных методов.

Тем не менее искусственные нейронные сети основаны на весьма простой биологической модели нервной системы. Нервная система человека, построенная из элементов, называемых нейронами, имеет ошеломляющую сложность. Около 1011 нейронов участвуют примерно в1015 передающих связях, имеющих длину метр и более. Каждый нейрон обладает многими качествами, общими с другими элементами организма человека, но его уникальной способностью является прием, обработка и передача электрохимических сигналов по нервным путям, которые образуют коммуникационную систему мозга.

Интенсивность сигнала, получаемого нейроном (следовательно, и возможность его активации), сильно зависит от активности линии связи. Каждая линия связи имеет определенную протяженность, и специальные химические вещества передают сигнал вдоль нее. Предполагается, что обучение заключается в первую очередь в изменении интенсивности связей. Например, в классическом опыте Павлова каждый раз непосредственно перед кормлением собаки звонил колокольчик и собака быстро научилась связывать звонок колокольчика с пищей.

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

Теория нейронных сетей возникла из исследований в области искусственного интеллекта, а именно из попыток воспроизвести способность нервных биологических систем обучаться и исправлять ошибки, моделируя низкоуровневую структуру мозга. Основой исследований по искусственному интеллекту в 60–80-е гг. были экспертные системы. Такие системы основывались на высокоуровневом моделировании процесса мышления
(в частности, на представлении, что процесс нашего мышления построен на манипуляциях с символами). Скоро стало ясно, что подобные системы, хотя и могут принести пользу в некоторых областях, не отражают ключевых свойств человеческого интеллекта. Согласно одной из точек зрения причина этого состоит в том, что они не в состоянии воспроизвести структуру мозга. Чтобы создать искусственный интеллект, необходимо построить систему с архитектурой похожей на строение мозга.

Искусственные нейронные сети также составлены из множества простых элементов, действующих параллельно. Как и в природе, функция нейронной сети в значительной степени определяется связями между элементами. Нейронную сеть можно обучать для выполнения конкретной функции, регулируя значения коэффициентов (весов) связи. Обычно искусственные нейронные сети настраиваются или обучаются так, чтобы конкретные входы преобразовывались в заданный целевой выход. Сеть настраивается (обучается), основываясь на сравнении сигналов выхода и цели до тех пор, пока выход сети не будет соответствовать цели. Чтобы обучить сеть при таком управляемом обучении, как правило, используется много пар значений сигналов вход/цель.

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

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

Теория нейронных сетей развивается в течение последних пяти десятилетий, но нашла широкое применение только в последние 15 лет. Поэтому строгая терминология
в области нейронных сетей еще не установилась. Этим теория нейронных сетей отличается от теории управления или оптимизации, где терминология, основные математические методы и процедуры проектирования выверены при решении практических задач в течение многих лет.

ППП Neural Network Toolbox служит средством, которое помогает пользователям развивать методы проектирования и расширять область применения нейронных сетей.
Поскольку данная область исследований характеризуется значительной новизной, данное пособие описывает только основные положения теории нейронных сетей и используемые в ней методы и процедуры, а на примерах поясняет, как применять их. Мы полагаем, что понимание примеров и их приложений весьма существенно для успешного использования этого ППП.

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

· в космонавтике и аэронавтике – для построения систем автоматического пилотирования самолетов, имитации траекторий полета, разработки перспективных конструкций
автопилотов, моделирования и обнаружения неисправностей агрегатов летательных аппаратов, управления воздушным движением, обработки аэрокосмической информации;

· в автомобилестроении– для проектирования автоматических систем управления;

· в банковском деле – для автоматического чтения документов и их контроля, оценки эффективности кредитных вложений;

· в военном деле – для управления оружием, слежения за целями, выделения и распознавания объектов, построения новых типов датчиков, обработки звуковых, радиолокационных и телевизионных изображений, постановки и подавления помех, идентификации сигналов и изображений;

· в электронике – для управления процессом проектирования и размещения микросхем на плате, нелинейного моделирования и анализа отказа микросхем, для построения систем машинного зрения и синтеза речи;

· в финансовом деле – для анализа кредитных потоков, оценки недвижимости, общего финансового анализа, прогнозирования стоимости валюты;

· в страховом деле–для определения оптимальной стратегии страхования;

· в промышленном производстве–для управления производственными процессами, анализа продукции, диагностики работы машин, контроля качества, тестирования продукции, анализа качества сварочных работ, шлифовальных операций, анализа
и синтеза химических веществ, прогнозирования цены продукта;

· в медицине–для анализа раковых клеток, диагностики заболеваний, конструирования протезов, оптимизации времени трансплантации, планирования расходов больницы, консультаций в отсутствие специалистов;

· в нефтегазовой промышленности – для разведки месторождений;

· в робототехнике–для управления роботами, построения контроллеров роботов
и манипуляторов и систем технического зрения;

· при передаче данных–для сжатия и отображения данных, распознавания речи, классификации гласных звуков, преобразования текста в речь, для синхронного перевода.

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

Используемые обозначения

Обозначения скаляров, векторов и матриц:

скаляры – курсивные строчные буквы: a, b, c;

векторы – прямыестрочные полужирные буквы: a, b, c;

матрицы – прямые прописныеполужирные буквы: A, B, C.

Обозначения весовых матриц:

весовая матрица– W(t);

элемент матрицы – wij(t), где i – номер строки, j – номер столбца, t – время или итерация;

вектор-столбец – wj(t) (вектор, соответствующий столбцу j матрицы W);

вектор-строка – wi(t) (вектор, соответствующий строке i матрицы W);

вектор смещений – b(t);

элемент вектора смещений – bi(t).

Обозначения для слоев нейронной сети:

верхний индекс из одного символа применяется для того, чтобы указать принадлежность некоторого элемента слою. Например, вектор входа слоя 3 обозначается как p3;

верхний индекс из двух символов применяется для того, чтобы указать источник сигнала (l) и пункт назначения (k); он используется для обозначения матриц весов входа IWk,l и матриц весов слоя LWk,l. Например, матрица весов от слоя 2 к слою 4 будет обозначаться как LW42.

Пример структурной схемы нейронной сети:

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

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

· верхние индексы соответствуют индексам массива ячеек: p1 ® p{1};

· нижние индексы соответствуют индексам массива чисел: p2 ® p(2), p12 ® p{1}(2);

· индекс в круглых скобках соответствует второму индексу массива ячеек: p1(k) ® p{1, k}.


Часть 1. ППП Neural Network Toolbox

Система MATLAB 6

Семейство программных продуктов MATLAB 6 поставляется на двух компакт-дисках, и в соответствии с инструкцией пользователь должен инсталлировать те программные продукты, которые необходимы для последующей работы. Требования, предъявляемые
к ресурсам персонального компьютера, следующие:

· рекомендуемые процессоры – Pentium, Pentium Pro, Pentium II, Pentium III или AMD Athlon;

· операционные системы Microsoft Windows 95, Windows 98, Windows NT 4.0 с пакетом Service Pack 5 или Windows 2000;

· устройство CD-ROM для выполнения инсталляции;

· требования к оперативной памяти – минимум 64 M для Windows 95, 98, NT 4.0
и 2000, крайне рекомендуется использовать 128 M, поскольку потери в производительности при 64 M составляют около 40 %;

· объем требуемого пространства памяти на диске зависит в основном от размеров
используемой справочной системы, рекомендуется не менее 4 Г;

· рекомендуется применять 8-битовый графический адаптер и дисплей с палитрой
не менее 256 цветов.

Далее предполагается, что необходимая установка выполнена и вы готовы к сеансу работы в среде MATLAB 6.

Операционная среда MATLAB 6

Работа с системой MATLAB начинается с того, что вы запускаете систему с иконки рабочего стола системы Windows. В результате на дисплее открывается рабочий стол системы (рис. 1.1).

Он содержит элементы графического интерфейса пользователя, которые предназначены для работы с файлами, переменными и приложениями, связанными с MATLAB.
На рис. 1.1 вы видите три открытых окна: командное окно Command Window, в котором расположена командная строка, окно (панель) запуска приложений Launch Pad с кнопками развертки/свертки и окно предыстории вызовов Command History.

Кроме того, имеются клавиши для переключения окна запуска Launch Pad на окно рабочей области Workspace и окна предыстории Command History на окно текущего каталога Current Directory. Здесь же показан вертикальный разделитель окон, перемещение которого управляет размещением окон в поле экрана. Отметим также информационное окно текущего каталога на инструментальной панели рабочего стола, а также кнопки вызова подсказки, закрытия и отделения командного окна от рабочего стола. Последняя кнопка позволяет перейти в режим работы предшествующих версий системы MATLAB.

Рис. 1.1

Описанный рабочий стол появляется по умолчанию при запуске системы MATLAB 6. Вы можете изменить состав и размещение рабочих окон, открывая новые, закрывая имеющиеся, а также изменяя их размеры с помощью вертикальных и горизонтальных разделителей. Кроме того, можно отделять окна от рабочего стола и помещать их на рабочий стол, используя меню View инструментальной панели.

Для настройки таких параметров рабочего стола, как тип и размер шрифта, цвета символов командной строки, следует воспользоваться опцией Preferences меню File (рис. 1.2).

Рис. 1.2

Командное окно

Командное окно Command Window показано на рис. 1.3 и предназначено для работы
с переменными, файлами и функциями системы MATLAB.

Рис. 1.3

В отличие от предшествующих версий в среде системы MATLAB 6 все операторы как
в зоне просмотра командного окна, так и в командной строке могут быть активизированы
с помощью правой кнопки мыши. При этом появляется контекстное меню со следующими опциями: Evaluate Selection (Вычислить выделенное), Open Selection (Открыть выделенное), Help on Selection (Справка по выделенному), Copy (Копировать), Paste (Вставить).

Окно предыстории

Окно предыстории вызова операторов Command History показано на рис. 1.4. Оно содержит строки операторов, которые вводились в командном окне с начала сеанса работы.

Рис. 1.4

Эти строки можно активизировать к выполнению двойным щелчком левой кнопки мыши, можно переносить из окна на командную строку, а можно использовать правую кнопку мыши. При этом появляется контекстное меню со следующими опциями: Copy(Копировать), Evaluate Selection(Вычислить выделенное), Create M-File (Создать М-файл), Delete Selection (Удалить выделенное), Delete to Selection (Удалить до выде­лен­ного), Delete Entire History (Удалить всю предысторию).

Окно запуска

Окно, или панель запуска, Launch Pad показано на рис. 1.5 и предназначено для вызова программных продуктов, включенных в состав инсталлированной версии системы MATLAB.

Рис. 1.5

Активизация кнопки вызова подменю для каждого из продуктов позволяет обратиться к средству подсказки Help, демонстрационным примерам Demos. Применительно к ядру системы MATLAB можно активизировать либо окно текущего каталога Current Directory, либо окно рабочей области Workspace, либо средство управления путями доступа Path. Можно также вызвать средство построения графического интерфейса пользователя GUIDE (GUI Builder), обратиться через Интернет к странице Product Page (Web) на сайте фирмы The MathWorks Inc., где приведено описание продуктов семейства MATLAB.

И вновь доступно контекстное меню со следующими опциями: Open(Открыть), Edit Source (Отредактировать источник), Refresh (Обновить).

Окно текущего каталога

Окно для просмотра текущего каталога Current Directory показано на рис. 1.6; оно позволяет открывать, просматривать и выполнять поиск информации в файлах системы MATLAB, имеющих необходимое расширение.

Рис. 1.6

Контекстное меню, связанное с правой кнопкой мыши, позволяет реализовать следующие действия: Open (Открыть), Run(Выполнить), View Help (Просмотреть справку), Open as Text (Открыть как текст), Import Data… (Импортировать данные…), New
(Открыть новый... ), Rename (Переименовать), Delete(Удалить), Cut (Вырезать), Copy(Копировать), Paste(Вставить), File Filter (Задать список расширений), Add to Path
(Добавить к пути доступа), Refresh(Обновить).

На инструментальной панели системы MATLAB 6 имеется информационное окно Current Directory, с помощью которого всегда обеспечивается доступ к списку ранее вызванных текущих каталогов, как это показано на рис. 1.7. Это позволяет быстро переходить от одного каталога к другому, получая доступ к интересующим файлам.

Рис. 1.7

Окно рабочей области

Окно рабочей области Workspace показано на рис. 1.8 и содержит список переменных (именованные массивы), накопленных в памяти в процессе работы, расширение списка переменных при обращении к функциям, выполнении М-файлов и загрузке сохраненных переменных.

Рис. 1.8

На рис. 1.8 показан список переменных, охватывающий все типы данных: это массивы действительных и комплексных (complex) чисел удвоенной точности double array, разновидности этих массивов, описываемые глобальной переменной global и переменными логического типа logical. Кроме того, список содержит массив строк char array, массив разреженной матрицы sparse array, массив записей struct array, массив ячеек cell array,
а также специальные типы целочисленных массивов uint8 и uint32 и объект типа inline object. Для каждой переменной указывается размер массива Size, объем памяти Bytes
и тип массива Class.

Окно рабочей области, как и все окна рабочего стола системы MATLAB 6, сопровождается контекстным меню, которое включает следующие опции: Open Selection… (Открыть выделенное…), Graph Selection (Построить график), Select All (Выделить все), Import Data (Импорт данных), Save Selection As…(Сохранить выделенное как…), Save Workspace As… (Сохранить рабочую область как…), Delete Selection(Удалить выделенное), Delete Workspace (Удалить рабочую область).

На рис. 1.9 показана глубина вложенности опции Graph Selection, что позволяет в режиме контекста строить любые типы графиков. Это определяет совершенно новый стиль работы в среде системы MATLAB 6, когда многие предварительные действия вообще
не требуют обращения к командной строке и могут быть реализованы с использованием только правой кнопки мыши.

Рис. 1.9

После завершения сеанса работы данные в рабочей области не сохраняются, и пользователь должен предусмотреть их сохранение в виде файла данных. Это реализуется либо
с помощью опции контекстного меню Save Workspace As…, либо с помощью этой же опции из меню File, либо с использованием команды save. Любая из этих операций приводит к созданию специального двоичного файла с расширением .mat. Чтобы прочитать МАТ-файл и разместить его в рабочей области, следует воспользоваться опцией Import Data… или использовать команду load.

Окно рабочей области помимо перечисленных функций выполняет функции обозревателя (средства просмотра) данных. Достаточно выполнить двойной щелчок по левой клавише мыши, чтобы вызвать редактор данных Array Editor.

На рис. 1.10 показан редактор данных, который позволяет в интерактивном режиме просматривать и корректировать одномерные и двумерные числовые массивы, массивы строк и массивы строковых ячеек.

Рис. 1.10

Справочная подсистема

В состав системы MATLAB 6 входит чрезвычайно мощная подсистема справки Help. Объем документации, к которой организуется доступ, составляет более 250 М и поставляется на отдельном компакт-диске. Обеспечивается доступ не только к встроенной системе Help, но и к документам в формате HTML, а также к полнотекстовым документам в формате PDF.

Рис. 1.11

Экран справочной системы делится на 2 области: область навигатора Help Navigator, где пользователь может указать интересующую его тему, термин или функцию, относящиеся к продуктам семейства MATLAB, и область для просмотра найденной информации. Остановимся подробнее на описании этих областей.

Навигатор справочной системы позволяет установить в поле Product Filter меру использования источников информации: в полном (All) или ограниченном объеме (Selected). С помощью кнопки Contents tabвывести заголовки и оглавления документов; с помощью кнопки Index tab вывести на экран индексный указатель, а с помощью кнопки Search tab обратиться к поисковой системе. Наконец, кнопка Favoritestab позволяет просмотреть и изменить список справочных документов, определенных в качестве первоочередных для просмотра.

Как только требуемая информация найдена, она выводится в окно просмотра. При этом обеспечивается возможность перехода к другим страницам, используя стрелки
в верхней и нижней частях страницы или клавиши "вперед" и "назад" инструментальной панели этого окна. Здесь же вы можете увидеть кнопку вывода на печать содержимого страницы, а также окно для поиска Find in page, окно с названием документа-источника, а также кнопку создания закладки Add to Favorites.

Рис. 1.12

И вновь, как это свойственно среде MATLAB 6, пользователь имеет доступ к контекстному меню со следующими опциями: Evaluate Selection (Вычислить выделенное), Open Selection (Открыть выделенное), Help on Selection (Справка о выделенном), Back (Назад), Forward (Вперед), Reload(Перезагрузить раздел), Copy (Копировать).

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.