ЛАБОРАТОРНАЯ РАБОТА №2 Аппроксимация...

17
НС 4 курс 2014-2015 1 ЛАБОРАТОРНАЯ РАБОТА №2 Аппроксимация функций двух (нескольких) переменных Цель работы: изучение возможностей пакета NNT среды Matlab для аппроксимации функций; построение, обучение и использование нейронной (радиально-базисной функции) РБФ-сети; обучить нейронную сеть (НС) алгоритмом обратного распространения ошибки, используя функцию neff, для аппроксимации функций; использовать средства nntool для моделирования и визуализации процесса настройки, обучения и тестированяи нейронной сети для аппроксимации. Провести сравнительный анализ, полученных результатов. I. Теоретические сведения Дисциплина «Интеллектуальный анализ данных в информационной среде» предполагает обработку и анализ информации с использованием систем искусственного интеллекта, в том числе и искусственных нейронных сетей; ознакомление студентов с принципами функционирования нейрокомпьютерных сетей; освоение студентами методик обучения нейрокомпьютерных сетей на практике для решения прикладных задач. Формирование у студентов теоретических знаний и практических навыков в области нейросетевого моделирования технических и социально- экономических систем. В результате изучения курса студенты должны свободно владеть математическим аппаратом построения, выбора алгоритмов обучения нейронных сетей и применять на практике. 1. Характеристика пакета NNT Авторами нейроимитатора NNT являются профессор Г. Демус, читающий курс по нейросетевым технологиям в университете Айдахо, и М. Билл, проектирующий аппаратные реализации искусственных нейронных сетей. Система Matlab является и операционной средой и языком программирования, на котором могут быть написаны программы для многократного использования. Язык программирования Matlab является интерпретатором, т. е. каждая инструкция программы распознается и сразу же исполняется. Основным способом получения информации о синтаксисе и правилах использования любой встроенной функции системы является вызов команды help <имя функции>. Команда demo или опция Examples and demos меню обеспечивает доступ к набору примеров системы Matlab. Команда tour вызывает ознакомительную систему Matlab, которая интегрирована с системой демонстрационных примеров и со справочной системой. После запуска Matlab 6 открывается рабочий стол системы. Он содержит элементы графического интерфейса пользователя, которые предназначены для работы с файлами, переменными и приложениями, связанными с Matlab. Как

Upload: others

Post on 05-Jul-2020

21 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ЛАБОРАТОРНАЯ РАБОТА №2 Аппроксимация …korliv.yolasite.com/resources/%D0%9B%D0%A0%20%E2%84%962...НС 4 курс 2014-2015 1 ЛАБОРАТОРНАЯ

НС 4 курс 2014-2015

1

ЛАБОРАТОРНАЯ РАБОТА №2

Аппроксимация функций двух (нескольких) переменных

Цель работы: изучение возможностей пакета NNT среды Matlab для

аппроксимации функций; построение, обучение и использование нейронной

(радиально-базисной функции) РБФ-сети; обучить нейронную сеть (НС)

алгоритмом обратного распространения ошибки, используя функцию neff, для

аппроксимации функций; использовать средства nntool для моделирования и

визуализации процесса настройки, обучения и тестированяи нейронной сети

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

I. Теоретические сведения

Дисциплина «Интеллектуальный анализ данных в информационной среде»

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

искусственного интеллекта, в том числе и искусственных нейронных сетей;

ознакомление студентов с принципами функционирования

нейрокомпьютерных сетей; освоение студентами методик обучения

нейрокомпьютерных сетей на практике для решения прикладных задач.

Формирование у студентов теоретических знаний и практических навыков в

области нейросетевого моделирования технических и социально-

экономических систем.

В результате изучения курса студенты должны свободно владеть

математическим аппаратом построения, выбора алгоритмов обучения

нейронных сетей и применять на практике.

1. Характеристика пакета NNT

Авторами нейроимитатора NNT являются профессор Г. Демус, читающий

курс по нейросетевым технологиям в университете Айдахо, и М. Билл,

проектирующий аппаратные реализации искусственных нейронных сетей.

Система Matlab является и операционной средой и языком программирования, на

котором могут быть написаны программы для многократного использования.

Язык программирования Matlab является интерпретатором, т. е. каждая

инструкция программы распознается и сразу же исполняется.

Основным способом получения информации о синтаксисе и правилах

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

<имя функции>. Команда demo или опция Examples and demos меню

обеспечивает доступ к набору примеров системы Matlab. Команда tour вызывает

ознакомительную систему Matlab, которая интегрирована с системой

демонстрационных примеров и со справочной системой.

После запуска Matlab 6 открывается рабочий стол системы. Он содержит

элементы графического интерфейса пользователя, которые предназначены для

работы с файлами, переменными и приложениями, связанными с Matlab. Как

Page 2: ЛАБОРАТОРНАЯ РАБОТА №2 Аппроксимация …korliv.yolasite.com/resources/%D0%9B%D0%A0%20%E2%84%962...НС 4 курс 2014-2015 1 ЛАБОРАТОРНАЯ

НС 4 курс 2014-2015

2

правило, на рабочем столе открываются три окна: командное окно Command

Window, в котором расположена командная строка, панель запуска приложений

Launch Pad с кнопками развертки/свертки и окно предыстории вызовов

Command History. Сеанс работы с Matlab называют сессией. Сессия, по

существу, является текущим документом, отражающим работу пользователя с

этой системой. Строка ввода в командном окне отмечается приглашающим

символом ». В строке вывода символ » отсутствует. Строка сообщений об

ошибках начинается тремя знаками вопроса?. Также имеются информационное

окно текущего каталога на инструментальной панели рабочего стола и кнопки

вызова подсказки, закрытия и отделения командного окна от рабочего стола

(например, для перехода в режим предшествующих версий системы Matlab).

Изменить состав и размещение рабочих окон можно, создавая новые, закрывая

имеющиеся, а также изменяя их размеры с помощью вертикальных и

горизонтальных разделителей. Кроме этого, окна от рабочего стола можно

отделять и помещать их на рабочий стол, используя меню View инструментальной

панели.

В отличие от предыдущих версий в среде системы Matlab 6 все операторы M-

языка и команды системы могут быть активизированы с помощью правой кнопки

мыши как в зоне просмотра командного окна, так и в командной строке. Для

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

выражения его следует закончить знаком ;(точка с запятой).

Любой нейрон в пакете NNT характеризуется векторами весов, смещений и

функцией активации. Нейроны, принимающие одинаковые входы и

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

Возможные нейросетевые парадигмы имитатора, определяемые выбранной

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

наблюдаемые и ненаблюдаемые. Наблюдаемые сети обучаются производить

требуемые выходы на входы примеров. Они могут моделировать и исследовать

динамические системы, классифицировать зашумленные данные и решать многие

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

прямого распространения: персептроны, линейные сети (Adaline), сети с

обратным распространением ошибки по Левенбергу – Марквардту, радиальные

базисные сети. Алгоритм обучения Левенберга – Марквардта относится к

нелинейным методам оптимизации, является самым быстрым из алгоритмов

обратного распространения ошибки и связан с использованием доверительных

областей. При продвижении к минимуму среднеквадратичной функции ошибок в

этом алгоритме анализируются промежуточные точки, которые получились бы по

обычному методу градиентного спуска, и в случае улучшения модели

осуществляется переход в эти точки, а в противном случае уменьшается шаг

продвижения и переход не осуществляется. Этот алгоритм требует памяти

порядка l2, если l – количеcтво весовых коэффициентов сети.

Рекуррентные сети используют обратное распространение ошибки для

пространственных и временных образов и включают сети Элмана и Хопфилда.

Page 3: ЛАБОРАТОРНАЯ РАБОТА №2 Аппроксимация …korliv.yolasite.com/resources/%D0%9B%D0%A0%20%E2%84%962...НС 4 курс 2014-2015 1 ЛАБОРАТОРНАЯ

НС 4 курс 2014-2015

3

Сети Элмана характеризуются наличием линии задержки во входном слое и

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

(LVQ) – наиболее мощный метод для классификации линейно неотделимых

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

классификации.

Ненаблюдаемые нейронные сети могут определять схемы классификации,

адаптивные к изменениям входных данных. Поддерживаются обучающие

ассоциативные правила Хебба, Кохонена, правила входящей звезды (instar) и

исходящей звезды (outstar). Самоорганизующиеся сети могут обучаться

определению регулярности и корреляции входных данных и адаптировать их

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

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

карты.

Встроенные функции активации, такие как гиперболический тангенс

(tansig), симметричная линейная (satlins), радиальная базисная (radbas),

логистическая (logsig), конкурирующая (compet) функции и другие, могут быть

дополнены самим пользователем.

Другие встроенные функции пакета NNT системы Matlab позволяют

осуществлять нормализацию данных, визуализацию весовых коэффициентов и

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

2. Вычислительная модель нейронной сети

Пакет NNT использует специальный класс объектов network.object. Эти

объекты представлены в пакете в виде массива записей, поля которых

определяют их свойства, характеристики и параметры. Массивы записей

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

используется стандартное имя net, являющееся также и именем массива

записей.

Архитектура нейронной сети характеризуется количеством входов, слоев,

выходов, целей, смещений, а также топологией их соединения. Описание полей

массива сети net приведено в табл. 1.

Таблица 1

net Имя поля Размер Тип

.numInputs Количество входов 1×1 integer

.numLayers Количество слоев 1×1 integer

.biasConnect Матрица связности для

смещений

numLayers×1 Boolean

array

.inputConnect Матрица связности для

входов

numLayers×

numInputs

Boolean

array

.layerConnect Матрица связности для

слоев

numLayers×

numLayers

Boolean

array

.outputConnect Матрица связности для 1×numLayers Boolean

Page 4: ЛАБОРАТОРНАЯ РАБОТА №2 Аппроксимация …korliv.yolasite.com/resources/%D0%9B%D0%A0%20%E2%84%962...НС 4 курс 2014-2015 1 ЛАБОРАТОРНАЯ

НС 4 курс 2014-2015

4

выходов array

.targetConnect Матрица связности для

целей

1×numLayers Boolean

array

.numOutputs Количество выходов 1×1 integer

.numTargets Количество целей 1×1 integer

.numInputDelays Максимальное значение

задержки для входов

1×1 integer

.numLayerDelays Максимальное значение

задержки для слоев

1×1 integer

Количество векторов входа сети numInputs следует отличать от числа

элементов вектора входа. Количество входов задается целым положительным

числом и указывает, как много векторов входа подано на сеть. В свою очередь

количество элементов каждого входного вектора задается свойством

inputs{i}.size. Любое изменение поля numInputs будет влиять на размеры

матрицы связности inputConnect и массивов ячеек inputs{i}.

Количество слоев numLayers задается целым положительным числом.

Любое его изменение будет влиять на размеры матриц связности biasConnect,

inputConnect, layerConnect, outputConnect, targetConnect, а также размеры

массивов весов и смещений IW, LW, b.

Одномерная матрица связности для смещений biasConnect является

булевой матрицей размера Nl×1, где Nl – количество слоев, определяемых

свойством numLayers. Наличие или отсутствие смещений в слое i отмечается в

элементе вектора biasConnect(i) как 1 или 0 соответственно. Наличие смещения

означает, что в массивах ячеек biases{i} и b{i} будут созданы структуры,

задающие все характеристики смещения.

Матрица связности для входов inputConnect является булевой матрицей

размера Nl×Ni, где Nl – количество слоев, определяемых свойством numLayers,

и Ni – количество входов, определяемых свойством numInputs. Наличие или

отсутствие веса при связывании слоя i со слоем j отмечается в элементе

матрицы inputConnect(i,j) как 1 или 0, соответсвенно. Наличие веса означает,

что в массивах ячеек inputWeights{i} и IW{i} будут созданы структуры,

задающие характеристики весов входа.

Матрица связности для слоев layerConnect является булевой матрицей

размера Nl×Nl, где Nl – количество слоев, определяемых свойством numLayers.

Наличие или отсутствие веса в слое i по входу j отмечается в элементе

матрицы layerConnect(i,j) как 1 или 0 соответственно. Наличие веса означает,

что в массивах ячеек layerWeights{i} и LW{i} будут созданы структуры,

задающие характеристики весов слоя.

Матрица связности для выходов outputConnect – одномерная булева

матрица размера 1×Nl, где Nl – количество слоев, определяемых свойством

numLayers. Наличие или отсутствие выхода в слое i отмечается в элементе

вектора outputConnect(i) как 1 или 0 соответственно. Наличие выхода изменяет

Page 5: ЛАБОРАТОРНАЯ РАБОТА №2 Аппроксимация …korliv.yolasite.com/resources/%D0%9B%D0%A0%20%E2%84%962...НС 4 курс 2014-2015 1 ЛАБОРАТОРНАЯ

НС 4 курс 2014-2015

5

значение свойства numOutputs и означает, что в массиве ячеек outputs{i} будет

сформирована структура, задающая характеристики выхода.

Матрица связностей для целей targetConnect – одномерная булева матрица

размера 1×Nl, где Nl – количество слоев, определяемых свойством numLayers.

Наличие или отсутствие целевого выхода в слое i отмечается в элементе вектора

targetConnect(i) как 1 или 0 соответственно. Наличие цели изменяет значение

свойства numTargets и означает, что в массиве ячеек targets{i} будет сформирована

структура, задающая характеристики целевого выхода.

Число выходов numOutputs, определенное только для чтения, задается

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

Число целей numTargets, определенное только для чтения, задается

количеством единиц в матрице связности для целей.

Максимальное значение задержки для входов numInputDelays (только

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

последовательностей.

Максимальное значение задержки для слоев numLayerDelays определяет

максимальное значение задержки для всех слоев сети.

Перечень функций, используемых для инициализации, адаптации и

обучения нейронной сети net, приводится в табл. 2.

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

используемой функции. Узнать набор таких параметров можно, применив

оператор help, например:

Help(net.trainFcn).

Таблица 2

net Имя поля Состав Тип

.initFcn Функции инициализации initcon |initiay

initnw | initnwb |

initzero

char

.initParam Параметры функции

инициализации

.adaptFcn Функции адаптации adaptwb | trains char

.adaptParam Параметры функции

адаптации

.trainFcn Функции обучения trainbr | trainc |

traincgb | traincgf|

traingda | traingdm|

traingdx | trainlm|

trainoss | trainr |

trainrp | trainscg

char

.trainParam Параметры функции

обучения

.performFcn Функции оценки качества

обучения

mae | mse | sse |

msereg

char

Page 6: ЛАБОРАТОРНАЯ РАБОТА №2 Аппроксимация …korliv.yolasite.com/resources/%D0%9B%D0%A0%20%E2%84%962...НС 4 курс 2014-2015 1 ЛАБОРАТОРНАЯ

НС 4 курс 2014-2015

6

.performParam Параметры функции

оценки качества обучения

Функции инициализации initFcn определяют, какая из функций

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

векторов смещений при вызове метода init для всей сети. При изменении этого

свойства параметры функции инициализации initParam будут использовать

значения, соответствующие новой функции.

Функции адаптации adaptFcn определяют, какая из функций адаптации

будет использована при вызове метода adapt.

Функции обучения trainFcn определяют, какая из функций обучения

будет использована при вызове метода train.

Функции оценки качества обучения performFcn определяют, какая из

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

train.

Пользователь может дополнить список используемых функций

инициализации, адаптации, обучения и оценки качества обучения.

Элементы сети задаются с помощью массивов ячеек, которые включают

структуры для описания входов, слоев, выходов, целей, смещений и весов

входа. Все эти структуры определяются однотипно, поэтому в пособии

рассмотрим только описание слоев.

Описание полей структуры, используемой для определения каждого слоя

нейронной сети net.layers{i}, приводится в табл. 3.

Описатель слоев нейронной сети layers{i} является массивом ячеек

размера Nl×1, где Nl – число слоев сети, равное numLayers, состоящим из ячеек

layers{i}, каждая из которых является массивом записей для описания i-го слоя

сети.

Таблица 3

net Имя поля Тип Размер, состав

.layers{i} Описатель i-го слоя сети Cell array numLayers×1

.dimensions Распределение нейронов по

размерностям слоя

Double array 1×numdim

.distanceFcn Функции вычисления

расстояния между нейронами

Char boxdist | dist |

linkdist | mandist

.distances Расстояния между нейронами Double array

.initFcn Функции инициализации Char initw | initwb

.netInputFcn Функции накопления Char netprod| netsum

.positions Положения нейронов Array

.size Количество нейронов Integer 1×1

.topologyFcn Функции топологии Char gridtop | hextop |

randtop

.transferFcn Функции активации Char compet| logsig |

poslin |purelin |

Page 7: ЛАБОРАТОРНАЯ РАБОТА №2 Аппроксимация …korliv.yolasite.com/resources/%D0%9B%D0%A0%20%E2%84%962...НС 4 курс 2014-2015 1 ЛАБОРАТОРНАЯ

НС 4 курс 2014-2015

7

radbas | satlin |

satlins | tansig |

tribas | hardlims

.userdata Информация пользователя Struct 1×1

.note текст Char 1×var

Вектор распределения по размерностям слоя dimensions позволяет

описывать многомерные слои нейронов реальных геометрических

размерностей: одномерные, двумерные, трехмерные. Многомерный слой

размерности numdim может быть задан вектор-строкой, элементы которой

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

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

layers{i}.size. Это свойство позволяет определить положение нейронов

layers{i}.positions, если известна функция топологии слоя layers{i}.topologyFcn.

При изменении этого вектора будут автоматически изменяться layers{i}.size,

положение нейронов layers{i}.positions и расстояния между ними

layers{i}.distances.

Функция оценки расстояния между нейронами distanceFcn задает

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

При замене функции будут автоматически пересчитаны значения расстояний

между нейронами слоя layers{i}. distances. Список применяемых функций

оценки расстояния может быть расширен самим пользователем.

Расстояние между нейронами в i-ом слое определяет свойство

layers{i}.distances.

Функция инициализации слоя initFcn определяет, какая функция

инициализации используется для слоя i.

Функция накопления netInputFcn определяет, какая функция накопления

применяется для слоя i.

Для построения графика расположения нейронов в многомерном слое для

слоя i можно использовать функцию plotsom с аргументом net.layers{i}.positions.

Функция активации слоя transferFcn определяет функцию активации,

используемую для задания нейрона в слое i.

Поле для записи информации пользователя для слоя i предусмотрено в

массиве записей userdata. По умолчанию поле inputs{i}.userdata.note,

предусмотренное для записи текста, содержит строку «Put your custom input

information here», что означает – «Информацию разместите здесь».

Матрицы весов и векторы смещений описываются функциями,

представленными в табл. 4.

Таблица 4

net Имя поля Тип Размер

.IW Массив ячеек для матриц весов входа Cell array numLayers×

numInputs

Page 8: ЛАБОРАТОРНАЯ РАБОТА №2 Аппроксимация …korliv.yolasite.com/resources/%D0%9B%D0%A0%20%E2%84%962...НС 4 курс 2014-2015 1 ЛАБОРАТОРНАЯ

НС 4 курс 2014-2015

8

.LW Массив ячеек для матриц весов слоя Cell array numLayers×

numLayers

.b Массив ячеек для векторов смещений Cell array numLayers×1

Массив ячеек IW имеет размеры Nl×Ni, где Nl – число слоев numLayers и

Ni – число входов numInputs сети net, каждый элемент которого является

матрицей весов, связывающе слой i со входом j сети. Структура этого массива

согласована с матрицей связности inputConnect(i,j). Каждая матрица весов

должна иметь число строк, равное параметру layers{i}.size, а число столбцов

соответствовать параметру inputWeights{i,j}.size.

Массив ячеек LW имеет размеры Nl×Nl, где Nl – число слоев numLayers

сети net, каждый элемент которого является матрицей весов, связывающий слой

i со слоем j сети. Структура этого массива согласована с матрицей связности

layerConnect(i,j). Каждая матрица весов должна иметь число строк, равное

параметру layers{i}.size , а число столбцов соответствовать параметру

layerWeights{i,j}.size.

Вектор смещений b является массивом ячеек размера Nl×1, где Nl – число

слоев numLayers объекта net, каждый элемент которого является вектором

смещений для слоя i сети. Структура этого вектора согласована с вектором

связности biasConnect(i,j). Длина вектора смещений для слоя i должна

соответствовать параметру biases{i}.size. Следует отметить, что для получения

информации о структуре полей инициированного объекта network можно

использовать функцию fieldnames(<имя_сети>), которая отражает текущее

состояние нейронной сети.

3. Радиальные базисные функции newrbe и newrb.

Радиальные базисные сети предназначены для аппроксимации функций.

Возьмем произвольную непрерывную функцию и представим ее с помощью

суммы колоколообразных функций. Аналитически это означает представление

f(x) в виде разложения по стандартному набору пространственно

локализованных функций:

i

iiwxf cx)( (1)

где iw - веса суммирования отдельных откликов, ic - центры базисных

радиальных функций. Это формула нейронной сети на основе радиальной

базисной функции. Расстояние cx определяется как расстояние в

евклидовом пространстве:

2

22

2

11 )()( cxcxABcx (2)

Page 9: ЛАБОРАТОРНАЯ РАБОТА №2 Аппроксимация …korliv.yolasite.com/resources/%D0%9B%D0%A0%20%E2%84%962...НС 4 курс 2014-2015 1 ЛАБОРАТОРНАЯ

НС 4 курс 2014-2015

9

На рис. 1 показана архитектура радиальной базисной сети.

Рис. 1 Схема архитектуры радиальной базисной сети

Радиальные базисные нейронные сети эффективны тогда, когда имеется

большое количество обучающих векторов.

Для создания сетей, используемых при аппроксимации экспериментальных

данных, в пакете NNT имеются функции:

net=newrbe(P,T,SPREAD) – для радиальной базисной сети с нулевой

ошибкой, число нейронов радиального слоя которой совпадает с числом образов

входа. Входными аргументами являются массивы входных векторов P и целей T,

а также параметр влияния SPREAD, значение которого устанавливается тем

большее, чем больший диапазон входных значений должен быть принят во

внимание;

net=newrb(P,T,GOAL,SPREAD) – для радиальной базисной сети с

аналогичными входными аргументами и параметром GOAL, допустимой

среднеквадратичной ошибкой сети;

net=newgrnn(P,T) – для обобщенно-регрессионной сети;

net=newpnn(P,T) – для вероятностной сети.

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

можно вывести на экран, если использовать операторы:

net=newrb(P,T,GOAL,SPREAD);

disp(net.layers{1}.size)

Число входов нейронной сети определяется числом независимых

переменных. Выходом сети, как правило, является скалярная величина – значение

функции. В общем случае входные и выходные величины могут быть

векторными. Если мерой отклонения служит средне-квадратичная ошибка, то

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

Page 10: ЛАБОРАТОРНАЯ РАБОТА №2 Аппроксимация …korliv.yolasite.com/resources/%D0%9B%D0%A0%20%E2%84%962...НС 4 курс 2014-2015 1 ЛАБОРАТОРНАЯ

НС 4 курс 2014-2015

10

Рассмотрим пример программы с комментариями, обеспечивающей создание,

обучение и моделирование радиальной базисной сети для данных, аналогичных

вариантам заданий, приведенным далее.

Пример 1.

spread_constant = 50;

error_goal = 0.02;

P = [-100 -100 -100 -100 -100 -80 -80 -80 -80 -80 -60 -60 -60 -60 -60 -40 -40 -

40 -40 -40 -20 -20 -20 -20 -20, 20 50 100 150 200 20 50 100 150 200 20 50 100 150

200 20 50 100 150 200 20 50 100 150 200];

T = [20.857 42.286 65.71 80.285 90.428 23.428 48.285 74.428 90.857 102.714

26 53.429 82.714 101.142 114 28.571 58.714 90.857 111.286 125.571 25.281 63.714

98.714 120.571 136.142];

net = newrb(P,T,error_goal,spread_constant); disp(net.LW{2}); disp(net.b{2}); %Коэффициенты и смещение

temper= -100:5:-20; ibaza = 20:10:200;

for i =1:length(temper)

for j = 1:length(ibaza)

X = [temper(i) ibaza(j)]';

Y(i,j) = sim(net,X);

end;

end;

mesh(ibaza,temper,Y); %Вывод на экран поверхности

Пример2.

Решения типовой задачи. Пусть функция 22 yx eez задана на

промежутках ]1,1[x , ]5.1,5.1[y ; количество точек разбиений по x есть nx,

а по y - ny. Тогда, используя следующий алгоритм построения радиальной

базисной сети, можно построить график функции ),( yxfz :

x1=-1.0; x2=+1.0; y1=-1.5; y2=+1.5;

nx=7; ny=9;

step_x=(x2-x1)/(nx-1); step_y=(y2-y1)/(ny-1);

step_min = min(step_x,step_y);

[x,y]=meshgrid([x1:step_x:x2], [y1:step_y:y2]);

z=exp(-x.^2).*exp(-y.^2);

surf(x,y,z), title('PS. Press<enter>');

pause;

xx=reshape(x,1,nx*ny);

yy=reshape(y,1,nx*ny);

Page 11: ЛАБОРАТОРНАЯ РАБОТА №2 Аппроксимация …korliv.yolasite.com/resources/%D0%9B%D0%A0%20%E2%84%962...НС 4 курс 2014-2015 1 ЛАБОРАТОРНАЯ

НС 4 курс 2014-2015

11

zz=exp(-xx.^2).*exp(-yy.^2);

p=[xx; yy];

t=zz;

goal = 0.0371;

spread = 1.0*step_min;

net = newrb(p,t, goal,spread);

net.layers{1}.size

smlt=sim(net,p);

[zz' smlt']

smltr=reshape(smlt,ny,nx);

surf(x,y,smltr), title('AS. Press<enter>');

Рис. 2 иллюстрирует график исходной функции 22 yx eez .

Рис. 2 График исходной функции двух переменных

На рис. 3 показана характеристика точности обучения радиальной

базисной сети и допустимая среднеквадратичная ошибка сети Goal=0.0371.

Page 12: ЛАБОРАТОРНАЯ РАБОТА №2 Аппроксимация …korliv.yolasite.com/resources/%D0%9B%D0%A0%20%E2%84%962...НС 4 курс 2014-2015 1 ЛАБОРАТОРНАЯ

НС 4 курс 2014-2015

12

Рис. 3 Характеристика точности обучения в зависимости от количества эпох

обучения

На рис. 4 отображён результат аппроксимации нелинейной зависимости,

построенный с помощью радиальной базисной функции.

Рис. 4 Результат моделирования исходной функции

Сопоставляя рис. 2 и рис. 4, можно сделать вывод об

удовлетворительности полученных результатов. Лучших результатов можно

добиться, варьируя параметры goal и spread.

Page 13: ЛАБОРАТОРНАЯ РАБОТА №2 Аппроксимация …korliv.yolasite.com/resources/%D0%9B%D0%A0%20%E2%84%962...НС 4 курс 2014-2015 1 ЛАБОРАТОРНАЯ

НС 4 курс 2014-2015

13

II. Порядок выполнения работы

1. Изучить с помощью help функции newrb, newgrnn, newpnn, sim, neff;

2. Ознакомиться с demorb1, demorb3, demorb4 в Matlab\ toolbox\nnet\nndemos

или Matlab \toolbox\nnet\nnet.

3. Построить и сравнить нейронные сети, аппроксимирующие функцию

нескольких переменных, используя встроенные в NNT функции newrb, neff,

nntool.

4. Проанализировать работу сетей на контрольном множестве при различной

величине параметра влияния spread и средней квадратичной погрешности

goal.

III. Форма отчета

1. Описание архитектуры сетей с указанием параметров.

2. Листинги программ с комментариями.

3. Результаты аппроксимации и обоснование правильности определения

параметров сети.

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

переменных построить пверхности для двух переменных.

5. Отчет должен соотвествовать требованиям оформления всей отчетной

документации по кафедре.

Page 14: ЛАБОРАТОРНАЯ РАБОТА №2 Аппроксимация …korliv.yolasite.com/resources/%D0%9B%D0%A0%20%E2%84%962...НС 4 курс 2014-2015 1 ЛАБОРАТОРНАЯ

НС 4 курс 2014-2015

14

IV. Индивидуальные задания

Задача – требуется получить обучающую выборку для настройки НС,

используя заданные функции 1F . При этом значения указанных функций будут

использованы в качестве эталонных значений в процессе обучения НС; а

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

Page 15: ЛАБОРАТОРНАЯ РАБОТА №2 Аппроксимация …korliv.yolasite.com/resources/%D0%9B%D0%A0%20%E2%84%962...НС 4 курс 2014-2015 1 ЛАБОРАТОРНАЯ

НС 4 курс 2014-2015

15

Page 16: ЛАБОРАТОРНАЯ РАБОТА №2 Аппроксимация …korliv.yolasite.com/resources/%D0%9B%D0%A0%20%E2%84%962...НС 4 курс 2014-2015 1 ЛАБОРАТОРНАЯ

НС 4 курс 2014-2015

16

Page 17: ЛАБОРАТОРНАЯ РАБОТА №2 Аппроксимация …korliv.yolasite.com/resources/%D0%9B%D0%A0%20%E2%84%962...НС 4 курс 2014-2015 1 ЛАБОРАТОРНАЯ

НС 4 курс 2014-2015

17

V. Контрольные вопросы

1. Ощие сведения о нейронных сетях.

2. Задачи, решаемые с помощью НС.

3. Топология и архитектура нейронных сетей.

4. Алгоритм обратного распространения ошибки (ОРО).

5. Параметры, задаваемые при обучении.

6. Трудности при обучении НС.

7. Обучение с учителем и без.

8. Понятие НС с радиальными базисными функциями.

9. Аппроксимация экспериментальных данных с использованием РБФ-сети.

10. Средства системы Matlab, позволяющие реализовывать РБФ-сети.

11. Архитектура РБФ-сети.

12. Назначение пакета NNT.

13. Основніе фукнции активации в пакете NNT.

14. Функции обучения НС пакета NNT.