Гордеев А.С. Моделирование в агроинженерии - файл n1.doc

Гордеев А.С. Моделирование в агроинженерии
скачать (2046.7 kb.)
Доступные файлы (1):
n1.doc3932kb.03.12.2007 20:56скачать

n1.doc

1   2   3   4   5   6   7   8   9   10
Power Electronics - элементы силовой электроники. Пиктограммы блоков "Power Electronics - элементы силовой электроники" приведены на рис.7.18.

Diode - Силовой диод. Моделирует полупроводниковый силовой диод. Модель диода состоит из последовательно включенных резистора Ron, индуктивности Lon, источника постоянного напряжения Vf и ключа SW (рис. 7.19.).

Блок логики управляет работой ключа. При положительном напряжении на диоде (Vak - Vf) происходит замыкание ключа и через прибор начинает протекать ток. При снижении тока Iak через диод до нуля происходит его выключение. На рис. 7.20. показана схема модели однополупериодного выпрямителя, работающего на активно-индуктивную нагрузку. В модели параллельно самому диоду включена последовательная RC-цепь, выполняющая демпфирующие функции.

Thyristor, Detailed Thyristor – Тиристор. Моделирует тиристор. В библиотеке SimPowerSystem имеется две модели тиристора: Thyristor (упрощенная модель) и Detailed Thyristor (уточненная модель). Упрощенная модель тиристора состоит из последовательно включенных резистора Ron, индуктивности Lon, источника постоянного напряжения Vf и ключа SW (рис.7.21.).

Рис.7.18. Пиктограммы блоков "Power Electronics - элементы силовой электроники".




Рис. 7.19. Модель диода




Рис. 7.20. Схема модели однополупериодного выпрямителя, работающего на активно-индуктивную нагрузку.

Блок логики управляет работой ключа. При положительном напряжении на тиристоре (Vak - Vf) и наличии положительного сигнала на управляяющем электроде (g) происходит замыкание ключа и через прибор начинает протекать ток. Размыкание ключа (выключение тиристора ) выполняется при снижении тока Iak, протекающего через тиристор, до нуля.




Рис. 7.21. Упрощенная модель тиристора.

IGBT - Биполярный IGBT транзистор. Моделирует бипо-лярный транзистор с изолиро-ванным затвором. Модель IGBT транзистора состоит из последо-вательно включенных резистора Ron, индуктивности Lon, источника постоянного напряже-ния Vf и ключа SW (рис. 7.22). Блок логики управляет работой ключа. Включение прибора происходит в случае, если напряжение коллектор-эмиттер положительно и больше, чем Vf, и на затвор транзистора подан положительный сигнал (g > 0).

Выключение прибора происходит при уменьшении сигнала на затворе до нуля (g = 0). При отрицательном напряжении коллектор-эмиттер транзистор находится в выключенном состоянии.
Рис. 7.22. Модель IGBT транзистора.


Mosfet - Mosfet транзистор. Моделирует силовой полевой транзистор с параллельно включенным обратным диодом.

Ideal Switch - Идеальный ключ. Моделирует идеальный ключ.

Universal Bridge - Универсальный мост. Моделирует универсальный мост.


    1. Дополнительные возможности SimPowerSystems


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

Блок Powergui является инструментом графического интерфейса пользователя и обеспечивает решение следующих задач:

- расчет схемы комплексным методом;

- расчет установившегося режима;

- дискретизация модели;

- задание начальных условий;

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

- анализ схемы с помощью инструмента Simulink LTI-Viewer;

- определение полного сопротивление (импеданса) цепи,

- выполнение гармонического анализа;

- создание отчета;

- создание файла характеристик намагничивания для модели нелинейного трансформатора.

Simulink LTI-Viewer, входящий в состав инструмента Control System Toolbox, является инструментом для анализа линейных систем в Simulink. С помощью него можно определить реакцию системы на единичное импульсное и ступенчатое воздействия, построить частотные характеристики, найти нули и полюса общей передаточной функции системы, построить годограф Найквиста и т.д. На рис. 7.23. показан пример электрической схемы и результаты ее анализа. На нем представлены графики изменения амплитуды и фазы тока источника при изменении частоты источника питания.
Рис. 7.23.Пример анализа электрической цепи.

Гармонический анализ. Для проведения гармонического анализа необходимо предусмотреть вывод исследуемых сигналов в рабочую область Matlab. Это можно выполнить путем соответствующей настройки осциллографа Scope или с помощью блока To Workspace. Настройка процедуры гармонического анализа выполняется с помощью параметров задаваемых в окне Powergui FFT Tools:

- Start time (s): [Начальное время (с)]. Время начала временного интервала, для которого проводится гармонический анализ;
- Number of cycles: [Число периодов]. Число периодов исследуемого сигнала, для которого выполняется анализ;
- Fundamental frequency (Hz): [Базовая частота]. Частота первой гармоники исследуемого сигнала;
- Max frequency (Hz): [Максимальная частота]. Частота наивысшей гармоники, до которой необходимо выполнить расчет.
На рис. 7.24. приведена схема трехфазного мостового выпрямителя и окно инструмента гармонического анализа. На верхнем графике рисунка показан один период исследуемого сигнала, а на нижнем - его гистограмма амплитуд гармоник.




Рис. 7.24. Схема трехфазного мостового выпрямителя и окно инструмента гармонического анализа.


7.4. Алгоритм расчета SimPowerSystem-модели
После того как SimPowerSystem-модель построена, она может быть запущена на расчет. Перед началом каждого расчета происходит инициализация модели. При инициализации вычисляется модель пространства состояний электрической схемы и строится эквивалентная модель, которая может рассчитываться в Simulink (рис. 7.25).

Инициализация выполняется в 4 этапа:

- cортировка SimPowerSystem-блоков, получение параметров блоков, опреде-ление топологии схемы и автоматическое присвоение номеров узлам схемы. При сортировке блоки разделяются на две группы: линейные и нелинейные;

- вычисление модели пространства состояний линейной части системы. На этом же этапе происходит расчет установившегося режима и определение началь-ных значений переменных;

- если задана дискретизация модели, то определяется дискретная модель схемы в пространстве состояний;

- строится Simulink-модель схемы и запоминается внутри одного из измерите-льных блоков. Это означает, что на схеме должен присутствовать хотя бы один измерительный блок (Current Measurement, Voltage Measurement, Three-Phase VI Measurement или Multimeter). Связь между эквивалентной Simulink-моделью и измерительными блоками осуществляется с помощью блоков Goto и From.


Рис. 7.25. Алгоритм расчета SimPower-System-модели.


В эквивалентной Simulink-модели используется блок State-Space или блок S-function для моделирования линейной части системы. Для моделирования SimPo-werSystem-блоков используются их прототипы из библиотеки powerlib_models. Для моделирования источников энергии используются блоки источников Soures библиотеки Simulink.


ГЛАВА 8. НЕЙРОННЫЕ СЕТИ
8.1. Основы теории нейронных сетей
В последние десятилетия в мире бурно развивается новая прикладная область математики, специализирующаяся на искусственных нейронных сетях. Искусствен-ные нейронные сети составлены из множества простых элементов, действующих параллельно. Как и в природе, функция нейронной сети в значительной степени определяется связями между элементами. Нейронную сеть можно обучать для выполнения конкретной функции, регулируя значения коэффициентов (весов) связи. Обычно искусственные нейронные сети настраиваются или обучаются так, чтобы конкретные входы преобразовывались в заданный целевой выход. Сеть настраива-ется, основываясь на сравнении сигналов выхода и цели до тех пор, пока выход сети не будет соответствовать цели. Чтобы обучить сеть при таком управляемом обучении, как правило, используется много пар значений сигналов вход/цель.

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

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

Искусственные нейронные сети основаны на простой биологической модели нервной системы человека.

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

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

В отличие от классического получения прогноза, основанного на аналитичес-ком представления зависимостей, в нейронных сетях имеется возможность:

- поэтапного накопления исходных данных;

- быстрого получения результата;

- уточнение результатов по мере получения новых данных (обучение с учителем).

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

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

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

Каждый синапс характеризуется величиной синаптической связи или ее весом wi, который по физическому смыслу эквивалентен электрической проводимости.
Рис. 8.1 Искусственный нейрон.

Текущее состояние нейрона определяется как взвешенная сумма его входов:

(8.1)

Выход нейрона есть функция его состояния:

Y = F(A). (8.2)

Нелинейная функция f называется функцией активации и может иметь различный вид, как показано на рисунке 8.2.
Рис. 8.2 Виды активационных функций нейрона:

а) функция единичного скачка;

б) линейный порог (гистерезис);

в) сигмоид – гиперболический тангенс;

г) сигмоид – формула (8.3)
Одной из наиболее распространенных является нелинейная функция с насы-щением, так называемая логистическая функция, или сигмоид (т.е. функция S-образного вида):

(8.3)

При уменьшении a сигмоид становится более пологим, в пределе при a=0 вырождаясь в горизонтальную линию на уровне 0.5, при увеличении a сигмоид приближается по внешнему виду к функции единичного скачка с порогом T в точке x=0. Из выражения для сигмоида очевидно, что выходное значение нейрона лежит в диапазоне [0 1]. Следует отметить, что сигмоидная функция дифференцируема на всей оси абсцисс, что используется в некоторых алгоритмах обучения. Кроме того, она обладает свойством усиливать слабые сигналы лучше, чем большие, и предотв-ращает насыщение от больших сигналов, так как они соответствуют областям аргументов, где сигмоид имеет пологий наклон.

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

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

Процесс нахождения весов нейрона называется обучением. Обучение нейрон-ной сети может вестись с учителем или без него.

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

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

Существует множество различных алгоритмов обучения, которые можно разделить на два больших класса: детерминистские и стохастические.

В детерминистском алгоритме подстройка весов представляет собой жест-кую последовательность действий.

В стохастическом алгоритме подстройка весов производится на основе дейст-вий, подчиняющихся некоторому случайному процессу.

Классифиикация нейронных сетей. По представлению информации нейрон-ные сети могут быть бинарные и аналоговые.

Бинарные нейронные сети оперируют с двоичными сигналами, и выход каж-дого нейрона может принимать только два значения: логический ноль ("затормо-женное" состояние) и логическая единица ("возбужденное" состояние). К этому классу сетей относится и рассмотренный выше перцептрон, так как выходы его нейронов, формируемые функцией единичного скачка, равны либо 0, либо 1.

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

Еще одна классификация делит нейронные сети на синхронные и асинхронные. В синхронных нейронных сетях в каждый момент времени свое состояние меняет лишь один нейрон.

В асинхронных сетях состояние меняется сразу у целой группы нейронов, как правило, у всего слоя.

Алгоритмически ход времени в нейронных сетях задается итерационным выполнением однотипных действий над нейронами.

Сети классифицируются также по числу слоев- 1, 2 и т.д.
8.2. Нейроны и архитектура сети в пакете Neural Network Toolbox

пакета Matlab

Простой нейрон. Элементарной ячейкой нейронной сети является нейрон. Структура нейрона с единственным скалярным входом показана на рис. 8.3а.

Рис.8.3. Простой нейрон.




Скалярный входной сигнал р умножается на скалярный весовой коэффициент w, и результирующий взвешенный вход w*p является аргументом функции акти-вации нейрона, которая порождает скалярный выход а. Нейрон, показанный на рис. 8.3б, дополнен скалярным смещением b, суммируется со взвешенным входом w*p и приводит к сдвигу аргумента функции на величину b. Действие смещения можно свести к схеме взвешивания, если представить, что нейрон имеет второй входной сигнал со значением, равным 1.

Вход n функции активации нейрона по-прежнему остается скалярным и рав-ным сумме взвешенного входа и смещения b. Эта сумма является аргументом функции активации.

Выходом функции активации является сигнал а. Константы w и b являются скалярными параметрами нейрона. Основной принцип работы нейронной сети состоит в настройке параметров нейрона таким образом, чтобы работа сети соответ-ствовала некоторому желаемому поведению. Регулируя веса или параметры смеще-ния, можно обучить сеть выполнять конкретную работу; возможно также, что сеть сама будет корректировать свои параметры, чтобы достичь требуемого результата.

Уравнение нейрона со смещением имеет вид:

a = f(w*p + b*1) (8.4)

Как уже отмечалось, смещение b - настраиваемый скалярный параметр нейро-на, который не является входом, а константа 1 рассматривается как вход и может быть учтена в виде линейной комбинации векторов входа:

a = [w b] [p 1]` (8.5)
Функции активации (передаточные функции) нейрона могут иметь самый раз-личный вид. Функция активации f, как правило, принадлежит к классу сигмоидаль-ных функций с аргументом n и выходом а. В пакете используются три наиболее распространенные формы функции активации f.

Единичная функция активации с жестким ограничениям hardlim. Эта функция описывается соотношением с жесткими ограничениями

а = hardlim(n) = 1(n)

и показана на рис. 8.2а.

Линейная функция активации purelin. Эта функция описывается соотношением а = purelin = n и показана на рис. 8.4.
Рис.8.4. Линейная функция активации purelin.


Логистическая функция активации logsig. Эта функция описывается соотно-шением а = logsig(n) = 1/(1 + ехр(-n)). Она принадле-жит к классу сигмоидальных функций, и ее аргумент может принимать любое значение в диапазоне от -? да +?, а выход изменяется в диапазоне от 0 до 1. В ППП Neural Network Toolbox она представлена М-функцией logsig. Благодаря свой-ству дифференцируемости эта функция часто используется в сетях с обучением на основе метода обратного распространения ошибки.

В ППП Neural Network Toolbox включены и другие функции активации. Испо-льзуя язык Matlab пользователь может создавать и свои собственные уникальные функции.

Нейрон с векторным входом. Нейрон с одним вектором входа р c R элементами р1, p2,.., рR показан на рис. 8.5. Здесь каждый элемент входа умножается на весами, w11, w12, …, w1R соответственно и взвешенные значения передаются на сумматор. Их сумма равна скалярному произведению вектора - строки W на вектор входа р. Нейрон имеет смещение b, которое суммируется со взвешенной суммой входов. Результирующая сумма п равна

n = w11p1 + w12p2 + … + w1R + b (8.6)

и служит аргументом функции активации f. В в терминах языка Matlab это выражение записывается так:

n = W*p + b. (8.7)
Рис.8.5. Архитектура нейрона с векторным входом.
Структура нейрона, показанная выше, содержит много лишних деталей. При рассмотрении сетей, состоящих из большого числа нейронов, используется укрупненная структурная схема нейрона (рис. 8.5a).



Рис.8.5a. Структурная схема нейрона с векторным входом.
Вход нейрона изображается в виде темной вертикальной черты, под которой указывается количество элементов входа R. Размер вектора входа р указывается ниже символа р и равен Rxl. Вектор входа умножается на вектор-строку W длины R. Константа 1 рассматривается как вход, который умножается на скалярное смещение b. Входом n функции активации нейрона служит сумма смещения b и произведения W*p. Эта сумма преобразуется функцией активации f, на выходе которой получаем выход нейрона a, который в данном случае является скалярной величиной.

Структурная схема, приведенная на рис. 8.5, называется слоем сети. Слой характеризуется матрицей весов W, смещением b, операциями умножения W*p, суммирования и функцией активации f. Вектор входов р обычно не включается в характеристики слоя.

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

Однослойные сети. Развернутая схема сети из одного слоя с R входными эле-ментами и S нейронами показана на рис. 8.6. В этой сети каждый элемент вектора входа соединен со всеми входами нейрона и это соединение задается матрицей ве-сов W; при этом каждый i-й нейрон включает суммирующий элемент, который формирует скалярный выход n(i). Совокупность скаляр-ных функций n(i) объединяется в S-элемент-ный вектор входа n функции активации слоя. Выходы слоя нейронов формируют вектор-столбец а, и, таким образом, описание слоя нейронов имеет вид:

a = f(W*p + b). (8.8)

Рис.8.6. Однослойная сеть.

Количество входов R в слое может не совпадать с количеством нейронов S. В каждом слое, как правило, используется одна и та же функция активации. Однако можно создавать составные слои нейронов с использованием различных функций активации, соединяя сети, подобные изображенной на рис. 8.6, параллельно. Обе сети будут иметь те же самые входы, и каждая сеть будет генерировать определен-ную часть выходов. Элементы вектора входа передаются в сеть через матрицу весов W, имеющую вид:

(8.9)

Заметим, что индексы строк матрицы W указывают адресатов (пункты назна-чения) весов нейронов, а индексы столбцов - какой источник является входом для этого веса. Таким образом, элемент матрицы весов w12 = W(l, 2) определяет коэф-фициент, на который умножается второй элемент входа при передаче его на первый нейрон.

Многослойные сети. Будем называть весовые матрицы, соединенные с входа-ми, весами входа слоя, а весовые матрицы для сигналов, исходящие из слоя, назовем весами выхода слоя. Далее, будем использовать верхние индексы, чтобы указать источник и адресат для различных весов и других элементов нейронной сети. Чтобы пояснить это, рассмотрим сначала только один, первый слой многослойной сети (рис. 8.7).

Обозначим весовую матрицу, связанную с входами, через IW11, верхние индексы которой указывают, что источником входов является первый слой (второй индекс) и адресатом является также первый слой (первый индекс). Элементы этого слоя, такие, как смещение b1 вход функции активации n1 и выход слоя а1, имеют верхний индекс 1, чтобы обозначить, что они связаны с первым слоем. В дальней-шем для матриц весов входа и выхода слоя будут использованы обозначения IW(Input Weight) и LW(Layer Weight) соответственно.
Рис.8.7. Первый слой многослойной сети.
Когда сеть имеет несколько слоев, то каждый слой имеет свою матрицу весов W, вектор смещения b и вектор выхода а. Чтобы различать весовые матрицы, векто-ры выхода и т. д. для каждого из этих слоев, вводится номер слоя как верхний индекс для представляющей интерес переменной. Слои многослойной сети имеют различные назначения. Слой, который образует выход сети, называется слоем выхода. Все другие слои называются скрытыми слоями.

Сети с прямой передачей сигнала.Однослойная сеть с S нейронами с функци-ями активации logsig, имеющая R входов. Эта сеть, не имеющая обратных связей, называется сетью с прямой передачей сигнала. Такие сети часто имеют один или более скрытых слоев нейронов с сигмоидальными функциями активации, в то время как выходной слой содержит нейроны с линейными функциями активации. Сети с такой архитектурой могут воспроизводить весьма сложные нелинейные зависимос-ти между входом и выходом сети.

Работа сети состоит в вычислении выходов сети на основе известных входов с целью формирования желаемого отображения вход/выход. Конкретная задача опре-деляет число входов и число выходов сети. Кроме числа нейронов в выходном слое сети, для проектировщика важно число нейронов в каждом слое. Большее количес-тво нейронов в скрытых слоях обеспечивает более мощную сеть.
8.3. Создание, инициализация и моделирование сети
Формирование архитектуры сети. Первый шаг при работе с нейронными сетями - это создание модели сети. Для создания сетей с прямой передачей сигнала в ППП NNT предназначена функция newff. Она имеет 4 входных аргумента и 1 выходной аргумент - объект класса network. Первый входной аргумент - это массив размера Rх2, содержащий допустимые границы значений (минимальное и макси-мальное) для каждого из R элементов вектора входа; второй - массив для задания количества нейронов каждого слоя; третий - массив ячеек, содержащий имена функций активации для каждого слоя; четвертый - имя функции обучения.

Например, следующий оператор создает сеть с прямой передачей сигнала:

Net = newff([-1 2; 0 5], [3,1], {‘tansing’, ‘purelin}’, ‘traingd’}.

Эта сеть использует 1 вектор входа с двумя элементами, имеющими допусти-мые границы значений [-1 2] и [0 5]; имеет 2 слоя с тремя нейронами в первом слое и одним нейроном во втором слое; используемые функции активации: tansig - в первом слое, purelin-во втором слое; используемая функция обучения - traingd.

М-функция newff не только создает архитектуру сети, но и инициализирует ее веса и смещения, подготавливая нейронную сеть к обучению. Однако существуют ситуации, когда требуется специальная процедура инициализации сети.

Инициализация сети. После того как сформирована архитектура сети, должны быть заданы начальные значения весов и смещений, или, иными словами, сеть должна быть инициализирована. Такая процедура выполняется с помощью метода init для объектов класса network. Оператор вызова этого метода имеет вид:

Net = init(net);

Моделирование сети.

Функции моделирования сети. Моделирование нейронной сети в Simulink осу-ществляется в соответствии с синтаксисом (метод sim):

[Y,Pf,Af,E,perf] = sim(net,P,Pi,Ai,T)

[Y,Pf,Af,E,perf] = sim(net,{Q TS},Pi,Ai,T)

[Y,Pf,Af,E,perf] = sim(net,Q,Pi,Ai,T)

Описание:

Функция [Y, Pf, Af E, perfj = sim(net, P, Pi, Ai, T) выполняет моделирование нейронной сети и имеет следующие входные и выходные аргументы.

Входные аргументы:

net - имя нейронной сети;

Р - массив входов;

Pi - начальные условия на ЛЗ входов, по умолчанию нулевой вектор;

Ai - начальные условия на ЛЗ слоев, по умолчанию нулевой вектор;

Т - вектор целей, по умолчанию нулевой вектор.

Выходные аргументы: Y - массив выходов;

Pf - состояния на ЛЗ входов после моделирования; Af - состояния на ЛЗ слоев после моделирования; Е - массив ошибок; perf - значение функционала качества.

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

Моделирование статических сетей. Статическая нейронная сеть характеризу-ется тем, что в ее составе нет элементов запаздывания и обратных связей. Ее поведе-ние не зависит от типа вектора входа, поскольку последовательно подаваемые век-торы можно рассматривать как действующие одновременно или как один объеди-ненный вектор. Поэтому в качестве модели статической сети рассмотрим сеть, показанную на рис. 8.8.
Рис.8.8. Статическая сеть.
Это однослойная сеть с двухэлементным вектором входа и линейной функци-ей активации. Для задания такой сети предназначена М-функция newlin из ППП Neural Network Toolbox, которая требует указать минимальное и максимальное значение для каждого из элементов входа; в данном случае они равны -1 и 1 соответственно, а также количество слоев, в данном случае 1:

% Формирование однослойной линейной сети net с двухэлементным входным

% сигналом со значениями от -1 до 1;

Net = newlin([-1 1; -1 1]);

Определим весовую матрицу и смещение равными W = [1 2], b = 0, и зададим эти значения, используя описание структуры сети

net.IW{1,1} = [1 2]; % Присвоение значений весов

net.b{1} = 0; % Присвоение значений смещения.

Предположим, что на сеть подается такая последовательность из четырех векторов входа:






Поскольку сеть статическая, можно перегруппировать эту последовательность в следующий числовой массив:

P = [-1 0 0 1; 0 -1 1 -1].

Теперь можно смоделировать сеть net c вектором входа P и выходом A:

A = sim (net, P)

Результат расчета сети:

А = -1 -2 2 -1.

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

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

Рис.8.9. Модель динамической сети.

Построим однослойную линейную сеть с линией задержки [0 1].

net = newlin([-1 1], 1[0 1]);

Зададим следующую матрицу весов W = [1 2] и нулевое смещение:

net.IW{1,1} = [1 2]; % Присваивание значений весов

net.biasConnect = 0; % Присваивание значений смещений

Предположим, что входная последовательность имеет вид {-1, -1/2,1/2,1}, и зададим ее в виде массива ячеек

Р = {-1 -1/2 1/2 1};

Теперь можно моделировать сеть, используя метод sim:

А = sim(net,P) % Моделирование сети net с входным сигналом Р и

выходом А

Результат:

А = [-1] [-5/2] [-1/2] [2]

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

a(t) = p(t) +2p(t-1).

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

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

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

Процедуры адаптации и обучения.

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

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

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

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

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

Явление переобучения. Одна из наиболее серьезных трудностей при обучении сети заключается в том, что в ряде случаев минимизируется не та ошибка, которую на самом деле нужно минимизировать: каждый раз требуется минимизировать ошибку, которая появляется в сети, когда на нее подаются совершенно новые наб-людения. Весьма важно, чтобы нейронная сеть обладала способностью приспосаб-ливаться к этим новым наблюдениям.

На самом деле сеть обучается минимизировать ошибку на некотором ограни-ченном обучающем множестве. Это не отвечает требованиям теории о наличии иде-ального и бесконечно большого обучающего множества. Это порождает проблему, которая известна как явление переобучения.

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

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

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

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

Способы адаптации и обучения. В ППП Neural Network Toolbox реализовано 2 способа адаптации и обучения: последовательный и групповой, в зависимости от того, применяется ли последовательное или групповое представление входов.

Адаптация нейронных сетей. Адаптация – это первоначальная, предваритель-ная настройка параметров сети. В ходе обучения эти параметры будут потом изме-няться, оптимизироваться.

Адаптация статических сетей. Воспользуемся следующей моделью однослой-ной линейной сети с двухэлементным вектором входа, значения которого находятся в интервале [-1 1], и нулевым параметром скорости настройки:

% Формирование однослойной статической линейной сети с двумя

Входами и нулевым параметром скорости настройки

net « newlin([-l 1;-1 1], 1, 0, 0);

Требуется адаптировать параметры сети так, чтобы она формировала линейную зависимость вида

t = 2р1 + р2.

Последовательный способ. Рассмотрим случай последовательного представ-ления обучающей выборки. В этом случае входы и целевой вектор формируются в виде массива формата cell:

% Массив ячеек векторов входа

Р = {[-1; 1] [-1/3; 1/4] [1/2; 0] [1/6; 2/3]};

Т = {-1 -5/12 1 1); % Массив ячеек векторов цели

Р1 = [Р{:}], Т1=[Т{:}] % Переход от массива ячеек к массиву double

Для адаптации первоначально задают скорости изменения весов и смещений.

Зададим значения параметров скорости настройки и весов входа и смещения:

net.IW{l} = [0 0]; % Присваивание начальных весов- нулевых
net.b{l} =0;


% Присваивание начального смещения- нулевого

net.inputWeights{l,1}.learnParam.lr =0.2;

net.biases{1,1}.learnParam.lr = 0.1;

Зададим сеть:

net.IW{l} = [0 0]; % Присваивание начальных весов

net.b{1} = 0; % Присваивание начального смещения

В ППП NNT процедуры адаптации реализуются на основе метода adapt.

Выполним 1 цикл адаптации сети:

% Последовательная адаптация сети с входами Р и целями Т

[netl,a,e] = adapt(net,P,T); % netl-новая сеть, а-выход, е-ошибка обучения

Последовательная адаптация выполняется в течение определенного количес-тва циклов. Теперь выполним последовательную адаптацию сети в течение 30 циклов:

% Последовательная адаптация сети с входами Р и целями Т за 30 циклов

net = newlin([-l 1;-1 1], 1, 0, 0);

net.IW{l} = [0 0]; % Присваивание начальных весов

net.b{l} =0;% Присваиэание начального смещения

Зададим значения параметров скорости настройки для весов входа и смещения:

net.inputWeights{l,1}.learnParam.lr = 0.2;

net.biases{1,1}.learnParam.lr = 0;

P = {[-1; 1] [-1/3; 1/4] [1/2; 0] [1/6; 2/3]}; % Массив векторов входа

T = {-1 -5/12 1 1}; % Массив векторов цели

for 1=1:30,

[net,a{i},e{:L}] = adapt(net, P,T);

W(i, :)=snet.IW{l,l}; end

mse(cell2mat(e{30>)) % Среднеквадратичная ошибка адаптации

W(30,:) % Веса после 30 циклов

cell2mat(a{30})

cell2mat(e{30})
Построим графики зависимости значений выходов сети и весовых коэффи-циентов в зависимости от числа итераций:

subplot(3,1,1)

plot(0:30,t[0 0 0 0];cell2mat(cell2mat(a'))],'k') %

xlabe1(''), у label ( 'Выходы a(i)'), grid

subplot(3,1,2)

plot(0:30,[[0 0]; Wb'k')

xlabel(''), ylabel('Beca входов w(i)'), grid

subplot(3,1,3)

for i=l:30, E(i) = mse(e{i}); end

semilogy(1:30, E, '+k')

xlabel(' Циклы'), ylabel('Ошибка'),grid

Условие окончания адаптации определяется погрешностью приближения к целевому вектору; в данном случае мерой такой погрешности является среднеквад-ратичная ошибка rnse(e{i}), которая должна быть меньше заданной. В оптимальном случае она должна приближаться к нулю.

Групповой способ адаптации. Рассмотрим случай группового представления обучающей последовательности. В этом случае входы и целевой вектор формиру-ются в виде массива формата double.

Р = [-1 -1/3 1/2 1/6; 1 1/4 0 2/3];

Т = [-1 -5/12 11];

Используется та же модель статической сети с теми же требованиями к погре-шности адаптации. Основной цикл адаптации сети с заданной погрешностью выглядит следующим образом:

% Групповой способ адаптации сети с входами Р и целями Т

net3 = newlin([-l 1;-1 1],1, 0, 0.2);

net3.IW{l} = [0 0]; % Присваивание начальных весов

net3.b{l} = 0; % Присваивание начального смещения

net3.inputWeights{l,1}.learnParam.lr = 0.2;

Р = [-1 -1/3 1/2 1/6; 1 1/4 0 2/3];

Т = [-1 -5/12 1 1];

ЕЕ = 10; i=l;

while ЕЕ > 0.0017176

[net3,a{i},e{i},pf] = adapt(net3,Р,Т);

W(i,:) = net3.IW{l,l};

ЕЕ = mse(e{i});

ее(i)= ЕЕ;

i « i+1;

end

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

Последовательный способ. Обратимся к линейной модели нейронной сети с одним входом и одним элементом запаздывания. Установим начальные условия на линии задержки, а также для весов и смещения равными 0, а параметр скорости настройки равным 0.5:

net s newlin ([-l 1], 1, [0 13], 0.5);

Pi = {0}; % Начальное условие для элемента запаздывания

net.IW{l} = [0 0]; % Значения весов

net.biasConnect = 0; % Значение смещения

Чтобы применить последовательный способ адаптации, представим входы и цели как массивы ячеек:

Р = {-1/2 1/3 1/5 1/4}; % Вектор входа

Т * { -1 1/6 11/15 7/10}; % Вектор цели

Пусть необходимо приспособить сеть для формирования нужного выхода на основе следующего соотношения:

y(t) = 2p(t) + p(t-l).

Используем для этой цели М-функцию adapt и основной цикл адаптации сети с заданной погрешностью, как это уже было описано выше:

ЕЕ = 10; i = 1;

while ЕЕ > 0.0001

[net,a{i},e{i},pf] = adapt(net,P,T);

W(i, : )=net.IW{l,l};

ЕЕ = mse(e{i});

ее (i) = ЕЕ ;

i = i+1;

end

Групповой способ представления обучающего множества для адаптации динамических систем не применяется.

Обучение нейронных сетей.

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

% Формирование однослойной статической линейной сети с двумя входами

% и нулевым параметром скорости настройки

net = newlin([-l 1;-1 13,1, 0, 0);

net.IW{l} = [0 0]; % Значения весов

net.b{l} = 0; % Значения смещений

Требуется обучить параметры сети так, чтобы она формировала линейную зависимость вида

t = 2p1+p2.

Последовательный способ. Для этого представим обучающую последователь-ность в виде массивов ячеек:

Р = {[-1; 13 С-1/3; 1/4] [1/2; 0] [1/6; 2/3]}; % Массив векторов входа

Т = {-1 -5/12 11};% Массив векторов цели

Теперь все готово к обучению сети. Будем обучать ее с помощью функции train в течение 30 циклов.

В этом случае для обучения и настройки параметров сети используются функции trainwb и learnwh соответственно.

% Параметр скорости настройки весов

net.inputWeights{l,1}.learnParam.lr = 0.2;

net-biases{1}.learnParam.lr = 0; % Параметр скорости настройки смещений

net.trainParam.epochs =30; % Число циклов обучения

netl = train(net,P,T);

Параметры сети после обучения равны следующим значениям:

w = netl.iw{l}

у = sim(netl, P)

ЕЕ = mse([y{:}]-[T{:}])

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

Групповой способ. Для этого представим обучающую последовательность в виде массивов формата double array:

Р = [-1 -1/3 1/2 1/6; 1 1/4 0 2/3];

Т = [-1 -5/12 1 1];

netl = train(net,P,T);

Параметры сети после обучения равны следующим значениям:

w = netl.iwd}

у = sim(netl/ P)

ЕЕ = mse(y-T)

Динамические сети. Обучение динамических сетей выполняется аналогичным образом с использованием метода train.
8.5. Типы сетей, реализуемых в ППП Neural Network Toolbox
Рассмотрим следующие типы сетей, наиболее известных в литературе и реализуемых в ППП Neural Network Toolbox :

1. Перспетроны;

2. Линейные сети;

3. Радиальные базисные сети;

4. Сети кластеризации и классификации данных;

5. Рекурентные сети.

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

Архитектура персептрона. Нейрон, используемый в модели персептрона, имеет ступенчатую функцию активации hardlim с жесткими ограничениями (рис. 8.10). Каждый элемент вектора входа персептрона взвешен с соответствующим весом w1j, и их сумма является входом функции активации. Нейрон персептрона возвращает 1, если вход функции активации n > 0, и 0, если n < 0.


Рис.8.10. Нейрон персептрона.
Функция активации с жесткими ограничениями придает персептрону способ-ность классифицировать векторы входа, разделяя пространство входов на 2 облас-ти, как это показано на рис. 8.11. для персептрона с двумя входами и смещением.




Рис.8.11. Разделение пространства персептроном на 2 области.
Пространство входов делится на 2 области разделяющей линией L, которая для двумерного случая задается уравнением wTp + b = 0. (8.10.)

Эта линия перпендикулярна к векто-ру весов w и смещена на величину b. Век-торы входа выше линии L соответствуют положительному потенциалу нейрона, и, следовательно, выход персептрона для этих векторов будет равен 1; векторы входа ниже линии L соответствуют выходу персептрона, равному 0. При изменении значений смещения и весов граница линии L изменяет свое положение. Персептрон без смещения всегда формирует разделяю-щую линию, проходящую через начало координат; добавление смещения форми-рует линию, которая не проходит через начало координат, как это показано на рис. 8.11. В случае, когда размерность вектора входа превышает 2, разделяющей границей будет служить гиперплоскость.

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

a = f(Wp + b). (8.11.)

Модель персептрона. Для формирования модели однослойного персептрона предназначена функция newp:

net = newp(PR, S)

со следующими входными аргументами:

PR- массив минимальных и максимальных значений для R элементов входа размера Rx2;

S - число нейронов в слое.

В качестве функции активации персептрона по умолчанию используется функция hardlim.

Пример:

Функция

net = newp([0 2],1);

создает персептрон с одноэлементным входом и одним нейроном; диапазон значений входа - [0 2].

Моделирование персептрона. Рассмотрим однослойный персептрон с одним двухэлементным вектором входа, значения элементов которого изменяются в диапазоне от -2 до 2:

net = newp([-2 2;-2 2],1); % Создание персептрона net

По умолчанию веса и смещение равны 0, и для того, чтобы установить желаемые значения, необходимо применить следующие операторы:

net.IW{l,l}= [-1 1] ; net.b{l} = [1].

В этом случае разделяющая линия имеет вид:

L: -р12+1 = 0. (8.12)

Теперь определим, как откликается сеть на входные векторы р1и р2, располо-женные по разные стороны от разделяющей линии, рис.8.11, и введем:

p1 = [1; 1];

a1 = sim(net, pl) % Моделирование сети net с входным вектором pi;

получим: a1=1;

р2 = [1; -1];

а2 = sim(net, p2) % Моделирование сети net с входным вектором р2

и получим:

а2 = 0.

Персептрон правильно классифицировал эти два вектора.

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

Архитектура линейной сети. На рис. 8.12. показан линейный нейрон с двумя входами. Он имеет структуру, сходную со структурой персептрона; единственное отличие состоит в том, что используется линейная функция активации purelin.

Весовая матрица W в этом случае имеет только одну строку и выход сети определяется выражением:

a = purelin(n) = purelin(Wp + b) = Wp + p = w11p1 + w12p2 +b. (8.13)

Подобно персептрону, линейная сеть задает в пространстве входов разделяю-щую линию, на которой функция активации n=0 (рис. 8.13.). Векторы входа, распо-ложенные выше этой линии, соответствуют положительным значениям выхода, а расположенные ниже - отрицательным. Это означает, что линейная сеть может быть применена для решения задач классификации. Однако такая классификация может быть выполнена только для класса линейно разделимых объектов. Таким образом, линейные сети имеют то же самое ограничение, что и персептрон.


Рис.8.12. Линейный нейрон с двумя входами.

Архитектура сети. Архитектура линейной сети аналогична архитектуре персептрона: она включает S нейронов, размещенных в одном слое и связанных с R входами через матрицу весов W.

Создание модели линейной сети. Линейную сеть с одним нейроном, показан-ную на рис. 8.12., можно создать следующим образом:

net = newlin([-1 1; -1 1],1);
Рис.8.13. Линейная функция активации.


Первый входной аргумент задает диапазон изменения элементов вектора входа; вто­рой аргумент указывает, что сеть имеет единственный выход. Начальные веса и смещение по умолчанию равны 0. Присвоим весам и смещению следующие значения:

net.IW{l,l} = [2 3];

net.b{l> =[-4].

Теперь можно промоделировать линейную сеть для следующего предъявлен-ного вектора входа:

Р = [5;6];

а = sim(net,p);

и получим:

а = 24.

Применение линейных сетей для задачи классификации векторов. Покажем, как линейные сети могут быть применены для решения задач классификации. Проиллюстрируем решение задачи классификации, ранее решенной с помощью персептрона. Используем для этого простейшую линейную сеть, представленную на рис. 8.12. Обучающее множество представлено следующими четырьмя парами векторов входов и целей:



Определим линейную сеть с начальными значениями веса и смещения, испо-льзуемыми по умолчанию, т. е. нулевыми; зададим допустимую погрешность обучения, равную 0.1:

р = [2 1 -2 -1;2 -2 2 1];

t = [0 1 0 l]

net = newlin( [-2 2; -2 2],1);

% Инициализация линейной сети с двумя входами и одним выходом

net.trainParam.goal= 0.1;

[net, tr] = train(net,p,t);

После прогона и достижения порогового значения функции качества соответ-ствующие параметры сети принимают значения:

weights =-net.iw{l,1}

bias = net.b(l)

или для данного примера:

weights = -0.061482 -0.21938;

bias = [0.5888].

Mоделирование созданной сети с векторами входа из обучающего множества и вычисление ошибки осуществляется следующим образом:

А = sim(net, p)

err = t - sim(net,P),

равные для данного примера:

А = 0.028173 0.86719 0.2741 0.432

err = -0.028173 0.03282 0.2741 0.568.

Радиальные базисные сети. Радиальные базисные нейронные сети состоят из большего количества нейронов, чем стандартные сети с прямой передачей сигналов и обучением методом обратного распространения ошибки, но на их создание требу-ется значительно меньше времени. Эти сети особенно эффективны, когда доступно большое количество обучающих векторов.

Модель нейрона и архитектура сети. На рис. 8.14. показана радиальная базис-ная сеть с R входами. Функция активации для радиального базисного нейрона имеет вид:

radbas(n) = e^(n2). (8.14.)

Вход функции активации определяется как модуль разнос-ти вектора весов w и вектора входа р, умноженный на смещение b.
Рис.8.14. Радиальная базисная сеть с R входами.

Радиальная базисная сеть состоит из двух слоев: скрытого радиального базисного слоя, име-ющего S1 нейронов, и выходного линейного слоя, имеющего S2 нейронов (рис.8.15).

Входами блока ||dist|| на этом рисунке являются вектор входа р и матрица весов IW1,1, выходом - вектор, состоящий из S1 элементов, которые определяются рассто-яниями между i-ым вектором входа р и i-ой вектор-строкой iIW1,1 матрицы весов. Это вектор весов i-го нейрона. Выход блока ||dist|| умножается поэлементно на вектор смещения b1 и формирует вход функции активации. Тогда выход первого слоя может быть записан в следующей форме:

a{l}=radbas (net.prod (dist (net.IW{l, 1} ,p) ,net.b{l}))).
Рис.8.15. Слои радиальной базисной сети.
Создание сети. Для построения радиальных базисных сетей предназначены М-функции newrbe и niewrb. Для построения радиальных базисных сетей с нулевой ошибкой предназначена функция newrbe, которая вызывается следующим образом:

net = newrbe(P, T, SPREAD).

Эта функция возвращает радиальную базисную сеть с такими весами и смеще-ниями, что ее выходы T точно равны входам P. Параметр SPREAD- параметр влияния, определяющий долю влияния смещения.

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

В качестве примера приведем пример обучения и моделирования следующей радиальной сети:

P = [1 2 3 4 5 6 7 8];% Входной вектор

T = [0 1 2 3 2 1 2 1];выходной вектор

% Аппроксимировать, т.е.найти весовые коэффициенты W и b, позволяющие по входной величине p найти величину a.

Определим первоначально параметр влияния:

spread = 0.7;

Сформируем сеть:

net = newgrnn(P,T,spread);

Смоделируем сеть по входному вектору P:

A = sim(net,P)

Зададим входную величину p, по которой необходимо найти выходную величину а:

p = 3.5;

a = sim(net,p)

Результат:

а=2.5.

или по последовательности, например,

P2 = 3: 7; % входная величина изменяется от 0 до 8 с шагом 0.1

Результат:

A2 = sim(net,P2)

А2=2, 3, 2, 1, 2,

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

М-функция newrb позволяет управлять коичеством нейронов скрытого слоя.

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

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

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

Архитектура слоя Кохонена показана на рис. 8.16. Здесь использован блок ndist для вычисления отрицательного евклидова расстояния между вектором входа р и строками матрицы весов IW'. Вход функции активации n' - это результат суммирования вычисленного расстояния с вектором смещения b.
Рис.8.16. Архитектура слоя Кохонена.
Конкурирующая функция активации анализирует значения элементов вектора n' и формирует выходы нейронов, равные 0, для всех нейронов, кроме одного нейрона - победителя, имеющего на входе максимальное значение. Таким образом, вектор выхода слоя а' имеет единственный элемент, равный 1, который соответствует нейрону-победителю, а остальные равны 0.

Номер активного нейрона С определяет ту группу (кластер), к которой наиболее близок входной вектор.

Создание сети. Для формирования слоя Кохонена предназначена М-функция newc.

Предположим, что задан массив из четырех двухэлементных векторов, которые надо разделить на 2 класса:

р = [0.1 0.8 0.1 0.8; 0.2 0.8 0.1 0.8].

В этом примере 2 вектора расположены вблизи точки (0,0) и 2 вектора - вблизи точки (1,1). Сформируем слой Кохонена с двумя нейронами для анализа двухэле-ментных векторов входа с диапазоном значений от 0 до 1:

net = newc([0 1; 0 l],2);

Первый аргумент указывает диапазон входных значений, второй определяет количество нейронов в слое.

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

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

Создание сети. В ППП NNT для создания сети Элмана предусмотрена М-функция newelm

Архитектура сети Элмана - это, как правило, двухслойная сеть с обратной связью от выхода ко входу первого слоя (рис. 8.17). В качестве функций активации в сети Элмана часто используются: в скрытом, рекурентном слое - функция гиперболического тангенса tansig, в линейном слое - функция purelin.



Рис.8.17. Архитектура сети Элмана.
1   2   3   4   5   6   7   8   9   10


Учебный материал
© bib.convdocs.org
При копировании укажите ссылку.
обратиться к администрации