- •В. Г. Потемкин
- •Предисловие
- •Введение
- •Используемые обозначения
- •Часть 1. Ппп Neural Network Toolbox
- •1. Система matlab 6
- •1.1. Операционная среда matlab 6
- •Командное окно
- •Окно предыстории
- •Окно запуска
- •Окно текущего каталога
- •Окно рабочей области
- •Справочная подсистема
- •1.3. Демонстрационные примеры ппп nnt
- •2. Модель нейрона и архитектура сети
- •2.1. Модель нейрона
- •2.1.1. Простой нейрон
- •2.1.2. Функция активации
- •2.1.3. Нейрон с векторным входом
- •2.2. Архитектура нейронных сетей
- •2.2.1. Однослойные сети
- •2.2.2. Многослойные сети
- •2.2.3. Сети с прямой передачей сигнала
- •2.3. Создание, инициализация и моделирование сети Формирование архитектуры сети
- •Инициализация сети
- •Моделирование сети
- •3. Обучение нейронных сетей
- •3.1. Процедуры адаптации и обучения
- •Явление переобучения
- •Свойство обобщения
- •3.1.1. Способы адаптации и обучения
- •Адаптация нейронных сетей
- •Xlabel(''), ylabel('Выходыa(I)'),grid
- •Xlabel(''), ylabel('Весавходовw(I)'),grid
- •Xlabel(' Циклы'), ylabel('Ошибка'),grid
- •Xlabel(''), ylabel('Выходыa(I)'),grid
- •Xlabel(''), ylabel('Весавходовw(I)'),grid
- •Xlabel('Циклы'), ylabel('Ошибка'),grid
- •Xlabel(''), ylabel('Выходыa(I)'),grid
- •Xlabel(''), ylabel('Весавходовw(I)'),grid
- •Xlabel('Циклы'), ylabel('Ошибка'),grid
- •Обучение нейронных сетей
- •3.2. Методы обучения
- •3.2.1. Обучение однослойной сети
- •3.2.2. Обучение многослойной сети
- •Метод обратного распространения ошибки
- •Характеристика методов обучения
- •3.3. Алгоритмы обучения
- •3.3.1. Градиентные алгоритмы обучения Алгоритм gd
- •Алгоритм gdm
- •Алгоритм gda
- •Алгоритм Rprop
- •3.3.2. Алгоритмы метода сопряженных градиентов
- •Алгоритм cgf
- •Алгоритм cgp
- •Алгоритм cgb
- •Алгоритм scg
- •3.3.3. Квазиньютоновы алгоритмы Алгоритм bfgs
- •Алгоритм oss
- •Алгоритм lm
- •3.3.4. Алгоритмы одномерного поиска
- •Алгоритм gol
- •Алгоритм bre
- •Алгоритм hyb
- •Алгоритм cha
- •Алгоритм bac
- •3.3.5. Расширение возможностей процедур обучения
- •Переобучение
- •Метод регуляризации
- •Формирование представительной выборки
- •Предварительная обработка и восстановление данных
- •Пример процедуры обучения
- •4. Персептроны
- •4.1. Архитектура персептрона
- •4.2. Модель персептрона
- •Моделирование персептрона
- •Инициализация параметров
- •4.3. Процедуры настройки параметров
- •Правила настройки
- •Процедура адаптации
- •5. Линейные сети
- •5.1. Архитектура линейной сети
- •5.2. Создание модели линейной сети
- •5.3. Обучение линейной сети
- •Процедура настройки
- •Процедура обучения
- •5.4. Применение линейных сетей Задача классификации векторов
- •Фильтрация сигнала
- •Предсказание сигнала
- •Подавление шумов
- •Многомерные цифровые фильтры
- •6. Радиальные базисные сети
- •Модель нейрона и архитектура сети
- •Создание сети
- •Радиальная базисная сеть с нулевой ошибкой
- •Итерационная процедура формирования сети
- •Примеры радиальных базисных сетей
- •6.1. Сети grnn
- •Архитектура сети
- •Синтез сети
- •6.2. Сети pnn
- •Архитектура сети
- •Синтез сети
- •7. Сети кластеризации и классификации данных
- •7.1. Самоорганизующиеся нейронные сети
- •7.1.1. Слой Кохонена
- •Архитектура сети
- •Создание сети
- •Правило обучения слоя Кохонена
- •Правило настройки смещений
- •Обучение сети
- •7.1.2. Карта Кохонена
- •Топология карты
- •Функции для расчета расстояний
- •Архитектура сети
- •Создание сети
- •Обучение сети
- •Одномерная карта Кохонена
- •Двумерная карта Кохонена
- •Архитектура сети
- •Создание сети
- •Обучение сети Правила настройки параметров
- •Процедура обучения
- •8. Рекуррентные сети
- •8.1. Сети Элмана
- •Архитектура
- •Создание сети
- •Обучение сети
- •Проверка сети
- •8.2. Сети Хопфилда
- •Архитектура сети
- •Синтез сети
- •9. Применение нейронных сетей
- •9.1. Аппроксимация и фильтрация сигналов
- •9.1.1. Предсказание стационарного сигнала Постановка задачи
- •Синтез сети
- •Проверка сети
- •9.1.2. Слежение за нестационарным сигналом
- •Инициализация сети
- •Проверка сети
- •9.1.3. Моделирование стационарного фильтра
- •Постановка задачи
- •Синтез сети
- •Проверка сети
- •9.1.4. Моделирование нестационарного фильтра
- •Постановка задачи
- •Инициализация сети
- •Проверка сети
- •9.2. Распознавание образов
- •Постановка задачи
- •Нейронная сеть
- •Архитектура сети
- •Инициализация сети
- •Обучение
- •Обучение в отсутствие шума
- •Обучение в присутствии шума
- •Повторное обучение в отсутствие шума
- •Эффективность функционирования системы
- •9.3. Нейронные сети и системы управления
- •9.3.1. Регулятор с предсказанием
- •9.3.2. Регулятор narma-l2
- •9.3.3. Регулятор на основе эталонной модели
- •Часть2. Операторы, функции и команды
- •10. Вычислительная модель нейронной сети
- •10.1. Описание сети Описание архитектуры
- •Функции инициализации, адаптации и обучения
- •10.2. Описание элементов сети
- •Описание входов
- •Описание слоев
- •Описание выходов
- •Описание целей
- •Описание смещений
- •Описание весов входа
- •Описание весов слоя
- •Матрицы весов и векторы смещений
- •Информационные поля
- •11. Формирование моделей нейронных сетей
- •11.1. Модели сетей
- •11.1.1. Однослойные сети Персептрон
- •Линейные сети
- •11.1.2. Многослойные сети
- •Радиальные базисные сети
- •Самоорганизующиеся сети
- •Сети – классификаторы входных векторов
- •Рекуррентные сети
- •11.2. Функции активации
- •Персептрон
- •Линейные сети
- •Радиальные базисные сети
- •Самоорганизующиеся сети
- •Рекуррентные сети
- •11.3. Синаптические функции
- •Функции взвешивания и расстояний
- •Функции накопления
- •11.4. Функции инициализации
- •11.5. Функции адаптации и обучения Функции адаптации
- •Функции обучения
- •Градиентные алгоритмы обучения
- •Алгоритмы метода сопряженных градиентов
- •Квазиньютоновы алгоритмы обучения
- •11.5.1. Функции оценки качества обучения
- •11.6. Функции настройки параметров
- •11.6.1. Функции одномерного поиска
- •11.7. Масштабирование и восстановление данных
- •11.8. Вспомогательные функции
- •Утилиты вычислений
- •Операции с массивами данных
- •Графические утилиты
- •Информация о сети и ее топологии
- •11.9. Моделирование нейронных сетей и система Simulink Функции моделирования сети
- •11.9.1. Применение системы Simulink
- •Библиотеки блоков для моделирования нейронных сетей
- •Построение моделей нейронных сетей
- •Индексный указатель Команды, функции и операторы ппп Neural Network Toolbox
- •Предметный указатель
- •Литература Книги на английском языке:
- •Книги на русском языке:
- •Оглавление
Введение
В последние годы наблюдается повышенный интерес к нейронным сетям, которые нашли применение в самых различных областях человеческой деятельности – бизнесе, медицине, технике. Нейронные сети используются при решении задач прогнозирования, классификации, управления. Такой впечатляющий успех определяется несколькими причинами [46–49]:
Нейронные сети – это исключительно мощный метод имитации процессов и явлений, позволяющий воспроизводить чрезвычайно сложные зависимости. Нейронные сети по свой природе являются нелинейными, в то время как на протяжении многих лет для построения моделей использовалсялинейный подход. Кроме того, во многих случаях нейронные сети позволяют преодолеть "проклятие размерности", обусловленное тем, что моделирование нелинейных явлений в случае большого числа переменных требует огромного количества вычислительных ресурсов.
Другая особенность нейронных сетей связана с тем, что они используют механизм обучения. Пользователь нейронной сети подбирает представительные данные, а затем запускает алгоритм обучения, который автоматически настраивает параметры сети. При этом от пользователя, конечно, требуется какой-то набор эвристических знаний о том, как следует отбирать и подготавливать данные, выбирать нужную архитектуру сети и интерпретировать результаты, однако уровень знаний, необходимый для успешного применения нейронных сетей, гораздо скромнее, чем, например, при использовании традиционных методов.
Тем не менее искусственные нейронные сети основаны на весьма простой биологической модели нервной системы. Нервная система человека, построенная из элементов, называемых нейронами, имеет ошеломляющую сложность. Около 1011нейронов участвуют примерно в1015передающих связях, имеющих длину метр и более. Каждый нейрон обладает многими качествами, общими с другими элементами организма человека, но его уникальной способностью является прием, обработка и передача электрохимических сигналов по нервным путям, которые образуют коммуникационную систему мозга.
Интенсивность сигнала, получаемого нейроном (следовательно, и возможность его активации), сильно зависит от активности линии связи. Каждая линия связи имеет определенную протяженность, и специальные химические вещества передают сигнал вдоль нее. Предполагается, что обучение заключается в первую очередь в изменении интенсивности связей. Например, в классическом опыте Павлова каждый раз непосредственно перед кормлением собаки звонил колокольчик и собака быстро научилась связывать звонок колокольчика с пищей.
Мозг, построенный из очень большого числа нейронов (каждый из которых принимает взвешенную сумму входных сигналов и при определенных условиях имеет возможность передавать сигнал дальше), способен решать чрезвычайно сложные задачи. Такую же модель реализуют и искусственные нейронные сети.
Теория нейронных сетей возникла из исследований в области искусственного интеллекта, а именно из попыток воспроизвести способность нервных биологических систем обучаться и исправлять ошибки, моделируя низкоуровневую структуру мозга. Основой исследований по искусственному интеллекту в 60–80-е гг. были экспертные системы. Такие системы основывались на высокоуровневом моделировании процесса мышления (в частности, на представлении, что процесс нашего мышления построен на манипуляциях с символами). Скоро стало ясно, что подобные системы, хотя и могут принести пользу в некоторых областях, не отражают ключевых свойств человеческого интеллекта. Согласноодной из точек зрения причина этого состоит в том, что они не в состоянии воспроизвести структуру мозга. Чтобы создать искусственный интеллект, необходимо построить систему с архитектурой похожей на строение мозга.
Искусственные нейронные сети также составлены из множества простых элементов, действующих параллельно. Как и в природе, функция нейронной сети в значительной степени определяется связями между элементами. Нейронную сеть можно обучать для выполнения конкретной функции, регулируя значения коэффициентов (весов) связи. Обычно искусственные нейронные сети настраиваются или обучаются так, чтобы конкретные входы преобразовывались в заданный целевой выход. Сеть настраивается (обучается), основываясь на сравнении сигналов выхода и цели до тех пор, пока выход сети не будет соответствовать цели. Чтобы обучить сеть при таком управляемом обучении, как правило, используется много пар значений сигналов вход/цель.
Нейронные сети обучаются выполнять сложные функции в различных областях приложений, включая распознавание образов, идентификацию, классификацию объектов, распознавание речи, системы технического зрения и системы управления. В этих случаях применяются достаточно простые нейронные сети, но даже они оказываются мощным инструментом в арсенале специалиста.
Сегодня могут быть построены искусственные нейронные сети для решения таких задач, которые являются трудными как для компьютеров, построенных по традиционной схеме, так и для человека.
Теория нейронных сетей развивается в течение последних пяти десятилетий, но нашла широкое применение только в последние 15 лет. Поэтому строгая терминология в области нейронных сетей еще не установилась. Этим теория нейронных сетей отличается от теории управления или оптимизации, где терминология, основные математические методы и процедуры проектирования выверены при решении практических задач в течение многих лет.
ППП Neural Network Toolbox служит средством, которое помогает пользователям развивать методы проектирования и расширять область применения нейронных сетей. Поскольку данная область исследований характеризуется значительной новизной, данное пособие описывает только основные положения теории нейронных сетей и используемые в ней методы и процедуры, а на примерах поясняет, как применять их. Мы полагаем, что понимание примеров и их приложений весьма существенно для успешного использования этого ППП.
Нейронные сети нашли применение во многих областях техники, где они используются для решения многочисленных прикладных задач:
в космонавтике и аэронавтике – для построения систем автоматического пилотирования самолетов, имитации траекторий полета, разработки перспективных конструкций автопилотов, моделирования и обнаружения неисправностей агрегатов летательных аппаратов, управления воздушным движением, обработки аэрокосмической информации;
в автомобилестроении – для проектирования автоматических систем управления;
вбанковском деле– для автоматического чтения документов и их контроля, оценки эффективности кредитных вложений;
ввоенном деле– для управления оружием, слежения за целями, выделения и распознавания объектов, построения новых типов датчиков, обработки звуковых, радиолокационных и телевизионных изображений, постановки и подавления помех, идентификации сигналов и изображений;
вэлектронике– для управления процессом проектирования и размещения микросхем на плате, нелинейного моделирования и анализа отказа микросхем, для построения систем машинного зрения и синтеза речи;
вфинансовом деле– для анализа кредитных потоков, оценки недвижимости, общего финансового анализа, прогнозирования стоимости валюты;
в страховом деле – для определения оптимальной стратегии страхования;
впромышленном производстве – для управления производственными процессами, анализа продукции, диагностики работы машин, контроля качества, тестирования продукции, анализа качества сварочных работ, шлифовальных операций, анализа и синтеза химических веществ, прогнозирования цены продукта;
в медицине – для анализа раковых клеток, диагностики заболеваний, конструирования протезов, оптимизации времени трансплантации, планирования расходов больницы, консультаций в отсутствие специалистов;
внефтегазовойпромышленности– для разведки месторождений;
в робототехнике – для управления роботами, построения контроллеров роботов и манипуляторов и систем технического зрения;
при передаче данных – для сжатия и отображения данных, распознавания речи, классификации гласных звуков, преобразования текста в речь, для синхронного перевода.
Этот перечень можно продолжить и далее. Широкое применение нейронных сетей, значительные ресурсы, вкладываемые в создание программного обеспечения и аппаратуры для реализации нейронных сетей, показывают, что имеется большая заинтересованность в разработке искусственных нейронных сетей.