Создание нейронной сети, выполняющей логическую функцию "И" и "ИЛИ"
Исследование нечеткой модели управления. Создание нейронной сети, выполняющей различные функции. Исследование генетического алгоритма поиска экстремума целевой функции. Сравнительный анализ нечеткой логики и нейронной сети на примере печи кипящего слоя.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лабораторная работа |
Язык | русский |
Дата добавления | 25.03.2014 |
Размер файла | 2,3 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Лабораторные работы №8 и №9
Создание нейронной сети, выполняющей логическую функцию «И» и «ИЛИ»
Знакомство с Matlab для создания нейронных сетей. Нейронные сети (NN - Neural Networks) широко используются для решения разнообразных задач. Среди развивающихся областей применения NN - обработка аналоговых и цифровых сигналов, синтез и идентификация электронных цепей и систем. Основы теории и технологии применения NN широко представлены в пакете MATLAB. В этой связи особо следует отметить последнюю версию пакета - MATLAB 6.0, где впервые представлен GUI (Graphical User Interface - графический интерфейс пользователя) для NN - NNTool.
В данной лабораторной работе дано описание NNTool и показана техника его применения для задачи создания нейронной сети, выполняющей логическую операцию «И».
Обработка сигналов в технологиях NN выполняется с помощью либо NN без памяти, либо NN c памятью. И в том и другом случаях ключевым элементом является NN без памяти. Подобная роль определяется тем обстоятельством, что при использовании нейронов с определёнными функциями активации (передаточными характеристиками) NN является универсальным аппроксиматором. Последнее означает, что в заданном диапазоне изменения входных переменных NN может с заданной точностью воспроизводить (моделировать) произвольную непрерывную функцию этих переменных.
В наших лабораторных работах рассматриваются вопросы, относящиеся к так называемым NN прямого распространения, то есть без обратных связей. Замечательным свойством таких NN является их устойчивость. После того как структура NN выбрана, должны быть установлены её параметры. Выбор структуры NN и типов нейронов - самостоятельный и весьма непростой вопрос, который здесь мы обсуждать не будем. Что же касается значений параметров, то, как правило, они определяются в процессе решения некоторой оптимизационной задачи. Эта процедура называется обучением.
Графический интерфейс пользователя NNTool позволяет выбирать структуры NN из обширного перечня и предоставляет множество алгоритмов обучения для каждого типа сети.
В лабораторной работе рассмотрены следующие вопросы, относящиеся к работе с NNTool: назначение графических управляющих элементов; подготовка данных; создание нейронной сети; обучение сети; прогон сети.
Все этапы работы с сетями проиллюстрированы примерами решения простых задач. Как и в предыдущих статьях проекта "MATLAB для DSP", предполагается, что читатель знаком с основами теории NN и её терминологией.
Управляющие элементы NNTool. Чтобы запустить NNTool, необходимо выполнить одноимённую команду в командном окне MATLAB:
>> nntool
после этого появится главное окно NNTool, именуемое "Окном управле-ния сетями и данными" (Network/Data Manager) (см. рисунок 9.1).
Панель "Сети и данные" (Networks and Data) имеет функциональные клавиши со следующими назначениями:
· Помощь (Help) - краткое описание управляющих элементов данного окна;
· Новые данные (New Data…) - вызов окна, позволяющего создавать новые наборы данных;
· Новая сеть (New Network…) - вызов окна создания новой сети;
· Импорт (Import…) - импорт данных из рабочего пространства MATLAB в пространство переменных NNTool;
· Экспорт (Export…) - экспорт данных из пространства переменных NNTool в рабочее пространство MATLAB;
· Вид (View) - графическое отображение архитектуры выбранной сети;
· Удалить (Delete) - удаление выбранного объекта.
На панели "Только сети" (Networks only) расположены клавиши для работы исключительно с сетями. При выборе указателем мыши объекта любого другого типа, эти кнопки становятся неактивными.
При работе с NNTool важно помнить, что клавиши View, Delete, Initialize, Simulate, Train и Adapt (изображены на рисунке 1 как неактивные) действуют применительно к тому объекту, который отмечен в данный момент выделением. Если такого объекта нет, либо над выделенным объектом невозможно произвести указанное действие, соответствующая клавиша неактивна.
Рисунок. 9.1. Главное окно NNTool
Задание 1. Пусть требуется создать нейронную сеть, выполняющую логическую функцию "И".
Создание сети. Выберем сеть, состоящую из одного персептрона с двумя входами. В процессе обучения сети на её входы подаются входные данные, и производится сопоставление значения, полученного на выходе, с целевым (желаемым). На основании результата сравнения (отклонения полученного значения от желаемого) вычисляются величины изменения весов и смещения, уменьшающие это отклонение.
Итак, перед созданием сети необходимо заготовить набор обучающих и целевых данных. Составим таблицу истинности для логической функции "И", где P1 и Р2 - входы, а А - желаемый выход (см. таблицу истинности логической функции "И")
P1 |
P2 |
A |
|
0 |
0 |
0 |
|
0 |
1 |
0 |
|
1 |
0 |
0 |
|
1 |
1 |
1 |
Чтобы задать матрицу, состоящую из четырёх векторов-строк, как входную, воспользуемся кнопкой New Data. В появившемся окне следует произвести изменения, показанные на рисунке 9.2, и нажать клавишу "Создать" (Create).
После этого в окне управления появится вектор data1 в разделе Inputs. Вектор целей задаётся схожим образом (см. рисунок 9.3).
Рисунок. 9.2. Задание входных векторов
После нажатия на Create в разделе Targets появится вектор target1.
Рисунок. 9.3. Задание целевого вектора
Данные в поле "Значение" (Value) могут быть представлены любым понятным MATLAB выражением. К примеру, предыдущее определение вектора целей можно эквивалентно заменить строкой вида
bitand([0 0 1 1], [0 1 0 1]).
Теперь следует приступить к созданию нейронной сети. Выбираем кнопку New Network и заполняем форму, как показано на рисунке 9.4.
Рисунок. 9.4. Окно "Создание сети
При этом поля несут следующие смысловые нагрузки:
· Имя сети (Network Name) - это имя объекта создаваемой сети.
· Тип сети (Network Type) - определяет тип сети и в контексте выбранного типа представляет для ввода различные параметры в части окна, расположенной ниже этого пункта. Таким образом, для разных типов сетей окно изменяет своё содержание.
· Входные диапазоны (Input ranges) - матрица с числом строк, равным числу входов сети. Каждая строка представляет собой вектор с двумя элементами: первый - минимальное значение сигнала, которое будет подано на соответствующий вход сети при обучении, второй - максимальное. Для упрощения ввода этих значений предусмотрен выпадающий список "Получить из входа" (Get from input), позволяющий автоматически сформировать необходимые данные, указав имя входной переменной.
· Количество нейронов (Number of neurons) - число нейронов в слое.
· Передаточная функция (Transfer function) - в этом пункте выбирается передаточная функция (функция активации) нейронов.
· Функция обучения (Learning function) - функция, отвечающая за обновление весов и смещений сети в процессе обучения.
С помощью клавиши "Вид" (View) можно посмотреть архитектуру создаваемой сети (см. рисунок 9.5). Так, мы имеем возможность удостовериться, все ли действия были произведены верно. На рисунке 9.5 изображена персептронная сеть с выходным блоком, реализующим передаточную функцию с жёстким ограничением. Количество нейронов в слое равно одному, что символически отображается размерностью вектора-столбца на выходе слоя и указывается числом непосредственно под блоком передаточной функции. Рассматриваемая сеть имеет два входа, так как размерность входного вектора-столбца равна двум.
Итак, структура сети соответствует нашему заданию. Теперь можно закрыть окно предварительного просмотра, нажав клавишу "Закрыть" (Close), и подтвердить намерение создать сеть, нажав "Создать" (Create) в окне создания сети. В результате проделанных операций в разделе "Сети" (Networks) главного окна NNTool появится объект с именем network1.
Рисунок. 9.5. Предварительный просмотр создаваемой сети
Обучение. Наша цель - построить нейронную сеть, которая выполняет функцию логического "И". Очевидно, нельзя рассчитывать на то, что сразу после этапа создания сети последняя будет обеспечивать правильный результат (правильное соотношение "вход/выход"). Для достижения цели сеть необходимо должным образом обучить, то есть подобрать подходящие значения параметров. В MATLAB реализовано большинство известных алгоритмов обучения нейронных сетей, среди которых представлено два для персептронных сетей рассматриваемого вида. Создавая сеть, мы указали LEARNP в качестве функции, реализующей алгоритм обучения (см. рисунок 9.4).
Вернёмся в главное окно NNTool. На данном этапе интерес представляет нижняя панель "Только сети" (Networks only). Нажатие любой из клавиш на этой панели вызовет окно, на множестве вкладок которого представлены параметры сети, необходимые для её обучения и прогона, а также отражающие текущее состояние сети.
Отметив указателем мыши объект сети network1, вызовем окно управления сетью нажатием кнопки Train. Перед нами возникнет вкладка "Train" окна свойств сети, содержащая, в свою очередь, ещё одну панель вкладок (см. рисунок 9.6). Их главное назначение - управление процессом обучения. На вкладке "Информация обучения" (Training info) требуется указать набор обучающих данных в поле "Входы" (Inputs) и набор целевых данных в поле "Цели" (Targets). Поля "Выходы" (Outputs) и "Ошибки" (Errors) NNTool заполняет автоматически. При этом результаты обучения, к которым относятся выходы и ошибки, будут сохраняться в переменных с указанными именами.
Рисунок. 9.6 Окно параметров сети, открытое на вкладке "обучение" (Train)
Завершить процесс обучения можно, руководствуясь разными критериями.
Возможны ситуации, когда предпочтительно остановить обучение, полагая достаточным некоторый интервал времени. С другой стороны, объективным критерием является уровень ошибки.
На вкладке "Параметры обучения" (Training parameters) для нашей сети (см. рисунок 9.7) можно установить следующие поля.
Рисунок 9.7. Вкладка параметров обучения
· Количество эпох (epochs) - определяет число эпох (интервал времени), по прошествии которых обучение будет прекращено.
· Эпохой называют однократное представление всех обучающих входных данных на входы сети.
· Достижение цели или попадание (goal) - здесь задаётся абсолютная величина функции ошибки, при которой цель будет считаться достигнутой.
· Период обновления (show) - период обновления графика кривой обучения, выраженный числом эпох.
· Время обучения (time) - по истечении указанного здесь временного интервала, выраженного в секундах, обучение прекращается.
Принимая во внимание тот факт, что для задач с линейно отделимыми множествами (а наша задача относится к этому классу) всегда существует точное решение, установим порог достижения цели, равный нулю. Значения остальных параметров оставим по умолчанию. Заметим только, что поле времени обучения содержит запись Inf, которая определяет бесконечный интервал времени (от английского Infinite - бесконечный).
Следующая вкладка "Необязательная информация" (Optional Info) показана на рисунке 9.8.
Рисунок 9.8 Вкладка необязательной информации
Рассмотрим вкладку обучения (Train). Чтобы начать обучение, нужно нажать кнопку "Обучить сеть" (Train Network). После этого, если в текущий момент сеть не удовлетворяет ни одному из условий, указанных в разделе параметров обучения (Training Parameters), появится окно, иллюстрирующее динамику целевой функции - кривую обучения. В нашем случае график может выглядеть так, как показано на рисунке 9.9. Кнопкой "Остановить обучение" (Stop Training) можно прекратить этот процесс. Из рисунка видно, что обучение было остановлено, когда функция цели достигла установленной величины (goal = 0).
Следует отметить, что для персептронов, имеющих функцию активации с жёстким ограничением, ошибка рассчитывается как разница между целью и полученным выходом.
Итак, алгоритм обучения нашёл точное решение задачи. В методических целях убедимся в правильности решения задачи путём прогона обученной сети. Для этого необходимо открыть вкладку "Прогон" (Simulate) и выбрать в выпадающем списке "Входы" (Inputs) заготовленные данные. В данной задаче естественно использовать тот же набор данных, что и при обучении data1. При желании можно установить флажок "Задать цели" (Supply Targets). Тогда в результате прогона дополнительно будут рассчитаны значения ошибки. Нажатие кнопки "Прогон сети" (Simulate Network) запишет результаты прогона в переменную, имя которой указано в поле "Выходы" (Outputs). Теперь можно вернуться в основное окно NNTool и, выделив мышью выходную переменную network1, нажать кнопку "Просмотр" (View). Содержимое окна просмотра совпадает со значением вектора целей - сеть работает правильно.
Рисунок 9.9 Кривая обучения
Следует заметить, что сеть создаётся инициализированной, то есть значения весов и смещений задаются определённым образом. Перед каждым следующим опытом обучения обычно начальные условия обновляются, для чего на вкладке "Инициализация" (Initialize) предусмотрена функция инициализации. Так, если требуется провести несколько независимых опытов обучения, инициализация весов и смещений перед каждым из них осуществляется нажатием кнопки "Инициализировать веса" (Initialize Weights).
Вернёмся к вкладке "Необязательная информация" (Optional Info) (см. рисунок 9.8). Чтобы понять, какой цели служат представленные здесь параметры, необходимо обсудить два понятия: переобучение и обобщение.
При выборе нейронной сети для решения конкретной задачи трудно предсказать её порядок. Если выбрать неоправданно большой порядок, сеть может оказаться слишком гибкой и может представить простую зависимость сложным образом. Это явление называется переобучением. В случае сети с недостаточным количеством нейронов, напротив, необходимый уровень ошибки никогда не будет достигнут. Здесь налицо чрезмерное обобщение.
Для предупреждения переобучения применяется следующая техника. Данные делятся на два множества: обучающее (Training Data) и контрольное (Validation Data). Контрольное множество в обучении не используется. В начале работы ошибки сети на обучающем и контрольном множествах будут одинаковыми. По мере того, как сеть обучается, ошибка обучения убывает, и, пока обучение уменьшает действительную функцию ошибки, ошибка на контрольном множестве также будет убывать. Если же контрольная ошибка перестала убывать или даже стала расти, это указывает на то, что обучение следует закончить. Остановка на этом этапе называется ранней остановкой (Early stopping).
Таким образом, необходимо провести серию экспериментов с различными сетями, прежде чем будет получена подходящая. При этом чтобы не быть введённым в заблуждение локальными минимумами функции ошибки, следует несколько раз обучать каждую сеть.
Если в результате последовательных шагов обучения и контроля ошибка остаётся недопустимо большой, целесообразно изменить модель нейронной сети (например, усложнить сеть, увеличив число нейронов, или использовать сеть другого вида). В такой ситуации рекомендуется применять ещё одно множество - тестовое множество наблюдений (Test Data), которое представляет собой независимую выборку из входных данных. Итоговая модель тестируется на этом множестве, что даёт дополнительную возможность убедиться в достоверности полученных результатов. Очевидно, чтобы сыграть свою роль, тестовое множество должно быть использовано только один раз. Если его использовать для корректировки сети, оно фактически превратится в контрольное множество.
Установка верхнего флажка (см. рисунок 9.8) позволит задать контрольное множество и соответствующий вектор целей (возможно, тот же, что при обучении). Установка нижнего позволяет задать тестовое множество и вектор целей для него.
Обучение сети можно проводить в разных режимах. В связи с этим, в NNTool предусмотрено две вкладки, представляющие обучающие функции: рассмотренная ранее вкладка Train и "Адаптация" (Adapt). Adapt вмещает вкладку информация адаптации (Adap-tion Info), на которой содержатся поля, схожие по своему назначению с полями вкладки Training Info и выполняющие те же функции и вкладку параметры адаптации (Adaption Parameters). Последняя содержит единственное поле "Проходы" (passes). Значение, указанное в этом поле, определяет, сколько раз все входные векторы будут представлены сети в процессе обучения.
Параметры вкладок "Train" и "Adapt" в MATLAB используются функциями train и adapt, соответственно.
Разделение линейно-неотделимых множеств. Рассмотренная задача синтеза логического элемента "И" может трактоваться как задача распознавания линейно отделимых множеств. На практике же чаще встречаются задачи разделения линейно неотделимых множеств, когда применение персептронов с функцией активации с жёстким ограничением не даст решения. В таких случаях следует использовать иные функции активации. Показательным примером линейно неотделимой задачи является создание нейронной сети, выполняющей логическую функцию "исключающее ИЛИ".
Задание-2. Пусть требуется создать нейронную сеть, выполняющую логическую функцию "исключающее ИЛИ".
Выполнение работы. Рассмотрим таблицу истинности логической функции "исключающее ИЛИ"
P1 |
P2 |
A |
|
0 |
0 |
0 |
|
0 |
1 |
1 |
|
1 |
0 |
1 |
|
1 |
1 |
0 |
Что же подразумевается под "линейной неотделимостью" множеств? Чтобы ответить на этот вопрос, изобразим множество выходных значений в пространстве входов (см. рисунок 9.10), следуя следующему правилу: сочетания входов P1 и P2, при которых выход A обращается в нуль, обозначаются кружком, а те, при которых A обращается в единицу - крестиком.
Рисунок 9.10. Состояния логического элемента "исключающее ИЛИ"
Наша цель - провести границу, отделяющую множество нулей от множества крестиков. Из построенной картины на рисунке 9.10 видно, что невозможно провести прямую линию, которая бы отделила нули от единиц. Именно в этом смысле множество нулей линейно неотделимо от множества единиц, и персептроны, рассмотренные ранее, в принципе, не могут решить рассматриваемую задачу.
Если же использовать персептроны со специальными нелинейными функциями активации, например, сигмоидными, то решение задачи возможно.
Выберем персептрон с двумя нейронами скрытого слоя, у которых функции активации сигмоидные, и одним выходным нейроном с линейной функцией активации (см. рисунок 9.11). В качестве функции ошибки укажем MSE (Mean Square Error - средний квадрат ошибки). Напомним, что функция ошибки устанавливается в окне "Создание сети" после выбора типа сети.
Рисунок 9.11 Сеть для решения задачи "исключающего ИЛИ"
Инициализируем сеть, нажав кнопку Initialize Weights на вкладке Initialize, после чего обучим, указав в качестве входных значений сформированную ранее переменную data1, в качестве целей - новый вектор, соответствующий желаемым выходам. В процессе обучения сеть не может обеспечить точного решения, то есть свести ошибку к нулю. Однако получается приближение, которое можно наблюдать по кривой обучения на рисунке 9.12.
Следует отметить, что данная кривая может менять свою форму от эксперимента к эксперименту, но, в случае успешного обучения, характер функции будет монотонно убывающим.
В результате обучения, ошибка была минимизирована до весьма малого значения, которое практически можно считать равным нулю.
Рисунок 9.12. Кривая обучения в задаче "исключающего ИЛИ"
Задача синтеза элемента "исключающего ИЛИ" является также примером задачи классификации. Она отражает общий подход к решению подобного рода задач.
Контрольные вопросы:
1. Как задать входные и целевые вектора
2. Как создать нейронную сеть
3. Какую нейронную сеть использовали
4. За какое время нейронная сеть достигла цели
нейронний сеть генетический алгоритм
Лабораторная работа № 10
Создание нейронной сети, выполняющей различные функции
Одним из самых замечательных свойств нейронных сетей является способность аппроксимировать и, более того, быть универсальными аппроксиматорами.
Сказанное означает, что с помощью нейронных цепей можно аппроксимировать сколь угодно точно непрерывные функции многих переменных.
Задание 1. Необходимо выполнить аппроксимацию функции следующего вида
где x € 1чN, а N - число точек функции.
Заготовим целевые данные, введя в поле "Значение" (Value) окна создания новых данных выражение:
sin(5*pi*[1:100]/100+sin(7*pi*[1:100]/100)).
Эта кривая представляет собой отрезок периодического колебания с частотой 5p/N, модулированного по фазе гармоническим колебанием с частотой 7N (см. рис. 10.1).
Теперь заготовим набор обучающих данных (1, 2, 3, …, 100), задав их выражением: 1:100.
Выберем персептрон (Feed-Forward Back Propa-gation) c тринадцатью сигмоидными (TANSIG) нейронами скрытого слоя и одним линейным (PURELIN) нейроном выходного слоя.
Рисунок 10.1 Архитектура сети для решения задачи аппроксимации
Обучение будем производить, используя алгоритм Левенберга-Маркардта (Levenberg-Mar-quardt), который реализует функция TRAINLM. Функция ошибки - MSE. Полученная сеть имеет вид (см. рисунок 10.2).
Рисунок 10.2. Кривая обучения в задаче аппроксимации
Теперь приступаем к обучению. Для этого необходимо указать, какие наборы данных должны использоваться в качестве обучающих и целевых, затем провести обучение (см. Рис. 10.2). Рисунок 10.3 иллюстрирует разницу между целевыми данными и полученной аппроксимирующей кривой.
Из рисунков 10.2 и 10.3 видно, насколько уменьшилась ошибка аппроксимации за 100 эпох обучения. Форма кривой обучения на последних эпохах говорит также о том, что точность приближения может быть повышена.
Одной из популярных областей применения нейронных сетей является распознавание образов. Аппроксимационные возможности NN играют здесь первостепенную роль.
Задание - 2. Необходимо построить и обучить нейронную сеть для решения задачи распознавания цифр. Цель этой лабораторной работы - показать общий подход к решению задач распознавания образов. Поэтому, чтобы не загромождать изложение техническими деталями, обозначим лишь ключевые моменты, полагая, что на данном этапе студент готов самостоятельно произвести соответствующие действия с NNTool.
Рисунок 10.3 Красная кривая - целевые данные, синяя кривая - аппроксимирующая функция
Система, которую предстоит синтезировать с помощью нейронной сети, будет обучена воспринимать символы, близкие к шаблонным (см. рисунок 10.4).
Рисунок 10.4 Монохромное изображение исходных данных
Наборы исходных данных (не путать с целевыми данными) можно как загружать из файлов изображений, так и создавать непосредственно в MATLAB. Рисунок 10.5 иллюстрирует содержимое массива исходных данных.
Рисунок 10.5 Графическое представление массива исходных данных
Получим обучающие данные, наложив шум на набор исходных данных (см. рисунок 10.6).
Рисунок 10.6. Обучающие данные
В задачах классификации, к которым относится данный пример, количество выходов сети соответствует числу разделяемых сетью классов. Этот факт должен быть учтён при выборе архитектуры сети и на этапе формирования целевых данных.
Сеть классификации даёт наибольшее значение на выходе, который соответствует подходящему классу. При хорошо сконструированной и обученной NN значения других выходов будут заметно меньше.
Для решения этой задачи выбрана сеть Feed-forward backprop с пятью сигмоидными нейронами первого слоя и пятью линейными нейронами второго слоя. Алгоритм обучения - Левенберга-Маркардта. С такой конфигурацией сеть после восьми эпох обучения дала ошибку порядка 10-30.Чтобы удостовериться в правдивости результата, мы прогнали сеть на заготовленном контрольном множестве. Сеть безукоризненно разделила и новую выборку зашумлённых символов.
Отметим, что уже сейчас успешно разрабатываются разнообразные системы распознавания образов (визуальных, звуковых), базирующиеся на нейронных сетях. Примером могут послужить программы распознавания сканированного текста. Они достаточно широко распространены среди обладателей оптических сканеров и в реальном масштабе времени справляются с поставленными задачами.
Задание-3. Создать нейронную сеть, выполняющую задачу импорта-экспорта данных. На практике часто приходится пере носить данные с одного компьютера на другой или пользоваться внешними, по отношению к NNTool, средствами обработки данных. В связи с этим возникает необходимость сохранения результатов работы и загрузки данных. Не менее важен обмен данными между NNTool и MATLAB, поскольку пространства их переменных не пересекаются.
Эти задачи решают средства импорта-экспорта и загрузки-сохранения данных. Доступ к ним осуществляется через главное окно NNTool (см. Рис. Л8.1) посредством кнопок Import и Export.
Импорт. Источником служит переменная в рабочем пространстве MATLAB, а пунктом назначения - переменная в рабочем пространстве NNTool. Нажав кнопку Import, попадаём в окно "Импорта-за-грузки данных" (Import or Load to Network/Data Manager). По умолчанию здесь установлена опция загрузки из рабочего пространства MATLAB, поэтому в центре окна появляется список принадлежащих ему переменных.
Выбрав мышью нужную переменную в поле "Выбор переменной" (Select a Variable), - ей можно задать произвольное имя в поле "Имя" (Name), под которым она будет скопирована в NNTool.
Когда переменная выделена, NNTool анализирует её тип и делает доступными для выбора те "Категории данных" (Import As), которые поддерживаются.
Указав одну из них, следует нажать кнопку "Импортировать" (Import), чтобы завершить копирование. После того, как все действия успешно проведены, имя импортируемой переменной появится в одном из списков главного окна NNTool.
Загрузка из файла. Здесь источник - файл. При этом важно, чтобы его формат поддерживался NNTool. В подходящем формате хранятся так называемые MAT-файлы. Они содержат бинарные данные и позволяют MATLAB сохранять переменные любых поддерживаемых типов и размерностей. Такие файлы могут создаваться, например, в процессе работы с NNTool. Чтобы загрузить переменные из MAT-файла в NNTool, необходимо открыть окно импорта, нажав кнопку "Import" главного окна NNTool. Затем следует отметить опцию "Загрузить из файла" (Load from disk file) и, нажав "Обзор" (Browse), открыть файл с данными, хранящимися в формате MAT-файлов.
Чаще всего, это файлы с расширением MAT. В результате, список в окне импорта заполнится именами переменных, сохранённых в указанном MAT-файле. Дальнейшая последовательность действий полностью совпадает с описанной в пункте Импорт (см. рис. 10.7).
Экспорт. Эта функция копирует заданные переменные из NNTool в рабочее пространство MATLAB. Она доступна по нажатию кнопки Export главного окна NNTool. В окне экспорта единым списком перечислены переменные всех категорий, представленных в NNTool.
Здесь необходимо выделить те из них, которые подлежат экспорту, и нажать Export. Теперь выделенные переменные скопированы в рабочее пространство MATLAB.
Рисунок 10.7. Окно импорта и загрузки данных из MAT-файла
Сохранение в файле. В целом, процедура схожа с экспортом, за одним исключением: отметив переменные, следует нажать кнопку "Сохранить" (Save). Тогда появится окно, в котором можно задать имя файла. Его можно указать без расширения - по умолчанию NNTool прикрепит расширение MAT. Это связано с тем, что NNTool сохраняет данные только в формате MAT-файлов (см. рисунок 10.8).
Рисунок 10.8 Окно экспорта и сохранения данных в MAT-файле
Мы рассмотрели простейшие задачи синтеза цепей и обработки сигналов, для решения которых применялись наиболее популярные нейронные сети прямого распространения. На самом деле, NNTool позволяет решать значительно более широкий круг задач, предоставляя возможность использовать сети разнообразных архитектур, с памятью и без, с обратными связями и без таковых. При этом следует иметь ввиду, что успех во многом зависит от понимания поведения конструируемых сетей и их аппроксимационных возможностей.
Контрольные вопросы:
1. Как задали входные данные для аппроксимации
2. Какое количество слоев в нейронной сети для аппроксимации
3. Сколько нейронов в слое для аппроксимации
4. Опишите процесс экспорта и импорта файлов
Лабораторные работы №11
«Создание однонаправленной сети»
Цель занятия - продемонстрировать основные этапы реализации нейронно-сетевого подхода для решения конкретной задачи. Можно выделить 4 основных этапа:
Задание:
1. Подготовка данных для тренировки сети.
2. Создание сети.
3. Обучение сети.
4. Тестирование сети.
5. Моделирование сети. (Использование сети для решения поставленной задачи.)
6. Необходимо изменить значения параметров С, A и S.
В качестве примера рассмотрим следующую задачу: Задан массив, состоящий из нескольких значений функции (S>0) на интервале (0,1). Создать нейронную сеть такую, что при вводе этих значений на входы сети на выходах получались бы значения параметров С, A и S.
Подготовка данных для обучения сети. В первую очередь необходимо определиться с размерностью входного массива. Выберем количество значений функции равным N=21, т.е. в качестве входных векторов массива используем значения функции y в точках х=0.05; …1.0. Для обучения сети необходимо сформировать массив входных векторов для различных наборов параметров С, A и S. Каждый набор этих параметров является вектором-эталоном для соответствующего входного вектора.
Для подготовки входного и эталонного массивов воспользуемся следующим алгоритмом. Выбираем случайным образом значения компонент вектора - эталона С,A S и вычисляем компоненты соответствующего входного вектора. Повторяем эту процедуру М раз и получаем массив входных векторов в виде матрицы размерностью NxM и массив векторов - эталонов в виде матрицы размерностью в нашем случае 3хМ. Полученные массивы мы можем использовать для обучения сети.
Прежде чем приступать к формированию обучающих массивов необходимо определиться с некоторыми свойствами массивов.
Диапазон изменения параметров С, A, S. Выберем диапазоны изменения параметров C, A, S равными (0, 1, 1). Значения, близкие к 0 и сам 0 исключим в связи с тем, что функция не определена при S=0. Второе ограничение связано с тем, что при использовании типичных передаточных функций желательно, чтобы компоненты входных и выходных векторов не выходили за пределы диапазона (-1, 1). В дальнейшем мы познакомимся с методами нормировки, которые позволяют обойти это ограничение.
Количество входных и эталонных векторов выберем равным М=100. Этого достаточно для обучения, а процесс обучения не займет много времени. Тестовые массивы и эталоны подготовим с помощью программы mas1: % формирование входных массивов (входной массив P) и (эталоны T):
P=zeros(100,21);
T=zeros(3,100);
x=0:5.e-2:1;
for i=1:100
c=0.9*rand+0.1;
a=0.9*rand+0.1;
s=0.9*rand+0.1;
T(1,i)=c;
T(2,i)=a;
T(3,i)=s;
P(i,:)=c*exp(-((x-a).^2/s));
end;
P=P'.
С помощью этой программы формируется матрица P из M=100 входных векторов-столбцов, каждый из которых сформирован из 21 точки исходной функции со случайно выбранными значениями параметров C,A,S, и матрица T эталонов из 100 эталонных векторов-столбцов, каждый из которых сформирован из 3 соответствующих эталонных значений. Матрицы P и T будут использованы при обучении сети. Следует отметить, что при каждом новом запуске этой программы будут формироваться массивы с новыми значениями компонентов векторов, как входных, так и эталонных.
Создание сети. Вообще, выбор архитектуры сети для решения конкретной задачи основывается на опыте разработчика. Поэтому предложенная ниже архитектура сети является одним вариантом из множества возможных конфигураций. Для решения поставленной задачи сформируем трехслойную сеть обратного распространения, включающую 21 нейрон во входном слое (по числу компонент входного вектора) с передаточной функцией logsig, 15 нейронов во втором слое с передаточной функцией logsig и 3 нейрона в выходном слое (по числу компонентов выходного вектора) с передаточной функцией purelin. При этом в качестве обучающего алгоритма выбран алгоритм Levenberg-Marquardt (trainlm). Этот алгоритм обеспечивает быстрое обучение, но требует много ресурсов. В случае, если для реализации этого алгоритма не хватит оперативной памяти, можно использовать другие алгоритмы (trainbfg, trainrp, trainscg, traincgb, traincgf, traincgp,trainoss,traingdx). По умолчанию используется trainlm. Указанная сеть формируется с помощью процедуры:
net=newff(minmax(P),[21,15,3],{'logsig' 'logsig' 'purelin'},'trainlm');
Первый аргумент - матрица Mx2 минимальных и максимальных значений компонент входных векторов вычисляется с помощью процедуры minmax. Результатом выполнения процедуры newff является объект - нейронная сеть net заданной конфигурации. Сеть можно сохранить на диске в виде mat. файла с помощью команды save и загрузить снова с помощью команды load. Более подробную информацию о процедуре можно получить, воспользо-вавшись командой help. Обучение сети. Следующий шаг - обучение созданной сети. Перед обучением необходимо задать параметры обучения. Задаем функцию оценки функционирования sse.
net.performFcn='sse';
В этом случае в качестве оценки вычисляется сумма квадратичных отклонений выходов сети от эталонов. Задаем критерий окончания обучения значение отклонения, при котором обучение будет считаться законченным:
net.trainParam.goal=0.01;
Задаем максимальное количество циклов обучения. После того, ка будет выполнено это количество циклов, обучение будет завершено:
net.trainParam.epochs=1000;
Теперь можно начинать обучение: net,tr]=train(net,P,T).
Процесс обучения иллюстрируется графиком зависимости оценки функционирования от номера цикла обучения (см. рисунок 11.1).
Рисунок 11.1. Результаты обучения
Таким образом, обучение сети окончено. Теперь эту сеть можно сохранить в файле nn1.mat: save nn1 net;
Тестирование сети. Перед тем, как воспользоваться нейронной сетью, необходимо исследовать степень достоверности результатов вычислений сети на тестовом массиве входных векторов. В качестве тестового массива необходимо использовать массив, компоненты которого отличаются от компонентов массива, использованного для обучения. В нашем случае для получения тестового массива достаточно воспользоваться еще раз программой mas1.
Для оценки достоверности результатов работы сети можно воспользоваться результатами регрессионного анализа, полученными при сравнении эталонных значений со значениями, полученными на выходе сети, когда на вход поданы входные векторы тестового массива. В среде MATLAB для этого можно воспользоваться функцией postreg. Следующий набор команд иллюстрирует описанную процедуру:
>> mas1 - создание тестового массива P;
>> y=sim(net,P) - обработка тестового массива;
>> [m,b,r]=postreg(y(1,:),T(1,:)) - регрессионный анализ результатов обработки.
Сравнение компонентов С эталонных векторов с соответствующими компонентами выходных векторов сети. На рисунке 11.2 видно, что все точки легли на прямую - это говорит о правильной работе сети на тестовом массиве
Рисунок 11.2. Сравнение компонентов С эталонных векторов с соответствующими компонентами выходных векторов сети
>> [m,b,r]=postreg(y(2,:),T(2,:));
Рисунок 11.3 Сравнение компонентов А эталонных векторов с соответствующими компонентами выходных векторов сети
>> [m,b,r]=postreg(y(3,:),T(3,:));
Рисунок 11.4 Сравнение компонентов S эталонных векторов с соответствующими компонентами выходных векторов сети
Как видно из рисунков 11.2-11.4, наша сеть отлично решает поставленную задачу для всех трех выходных параметров. Сохраним обученную сеть net на диске в файл nn1.mat save nn1 net
Моделирование сети. (Использование сети для решения поставленной задачи. Для того, чтобы применить обученную сеть для обработки данных, необходимо воспользоваться функцией sim:
Y=sim(net, p);
где p - набор входных векторов, Y - результат анализа в виде набора выходных векторов. Например, пусть
С=0.2, A=0.8, S=0.7, тогда
p=0.2*exp(-((x-0.8).^2/0.7)).
Подставив этот входной вектор в качестве аргумента функции sim: Y=sim(net,p), получим:
Y= 0.2048 (C)
0.8150 (A)
0.7048 (S)
Что весьма близко к правильному результату (0.2; 0.8; 07).
Контрольные вопросы:
1. Каким образом выбираем значения компонент вектора - эталона С, A S
2. Из какого количества столбцов формируются матрицы P и Т
3. Какие параметры использовали для обучения сети
4. Какой массив использовали в качестве тестового массива
Лабораторная работа №12
Сравнительный анализ моделей управления, созданных с помощью нечеткого алгоритма и нейронной сети
Цель: Провести сравнительный анализ нечеткой логики и нейронной сети на примере печи кипящего слоя и выяснить, какая из систем лучше. (Вывод обязателен)
Система управления процессом обжига цинковых концентратов в печи кипящего слоя. Если процесс стабилизации температуры и подсистемы оптимального управления хорошо описываются с помощью традиционного математического описания, то процесс гидродинамики кипящего слоя из-за своей сложности трудно поддается математической обработке. Поэтому предлагается создать гибридную систему управления с использованием как традиционных подходов регулятор и подсистема оптимального управления, так и методов искусственного интеллекта (подсистема управления манометрическим режимом).
Система управления процессом обжига (см. рисунок 13.1) состоит из регулятора температуры, подсистемы оптимального управления кинетикой химических реакций и подсистемы управления манометрическим режимом кипящего слоя. Технологической задачей процесса обжига цинковых концентратов является перевод сульфидного цинка, в структурно свободную окись и частично в сульфат, которые легко перерабатываются при выщелачивании и дают максимальное извлечение цинка, за минимальный промежуток времени и с наименьшими затратами.
Размещено на http://www.allbest.ru/
Рисунок 13.1 Структура гибридной системы управления процессом обжига цинковых огарков в печи кипящего слоя
Задание. В связи с тем, что подсистема оптимального управления процессом основана на достаточно точном математическом описании кинетики обжига и известных алгоритмах оптимизации в работе требуется исследовать алгоритм управления для интеллектуальной подсистемы управления манометрическим режимом в печи кипящего слоя. Необходимо исследовать модели управления гидродинамикой кипящего слоя, основанных на нечетких алгоритмах и нейронных сетях и сравнить их.
Используя знания в области ведения процесса обжига в печи кипящего слоя (КС) предлагаются следующие 10 правил нечетких продукций:
ПРАВИЛО-1: ЕСЛИ «упругость дутья средняя» И «высота кипящего слоя средняя» И «разрежение под сводом среднее» ТО «расход воздуха средний»
ПРАВИЛО-2: ЕСЛИ «упругость дутья средняя» И «высота кипящего слоя средняя» И «разрежение под сводом высокое» ТО «расход воздуха высокий»
ПРАВИЛО-3: ЕСЛИ «упругость дутья средняя» И «высота кипящего слоя низкая» И «разрежение под сводом среднее» ТО «расход воздуха средний»
ПРАВИЛО-4: ЕСЛИ «упругость дутья низкая» И «высота кипящего слоя средняя» И «разрежение под сводом среднее» ТО «расход воздуха средний»
ПРАВИЛО-5: ЕСЛИ «упругость дутья средняя» И «высота кипящего слоя высокая» И «разрежение под сводом низкое» ТО «расход воздуха низкий»
ПРАВИЛО-6: ЕСЛИ «упругость дутья средняя» И «высота кипящего слоя низкая» И «разрежение под сводом высокое» ТО «расход воздуха высокий»
ПРАВИЛО-7: ЕСЛИ «упругость дутья низкая» И «высота кипящего слоя средняя» И «разрежение под сводом высокое» ТО «расход воздуха высокий»
ПРАВИЛО-8: ЕСЛИ «упругость дутья высокая» И «высота кипящего слоя средняя» И «разрежение под сводом высокое» ТО «расход воздуха высокий»
ПРАВИЛО-9: ЕСЛИ «упругость дутья высокая» И «высота кипящего слоя высокая» И «разрежение под сводом высокое» ТО «расход воздуха средний»
ПРАВИЛО-10: ЕСЛИ «упругость дутья средняя» И «высота кипящего слоя средняя» И «разрежение под сводом высокое» ТО «расход воздуха высокий»
Исследование нечеткой модели управления. Для исследования этой модели надо нормировать значения используемых переменных для работы интеллектуальной подсистемы по следующей формуле:
где уmin - минимальное значение; уmax - максимальное значение; х - преобразованное значение;
После проведения операции нормирования все переменные будут изменятся от 0 до1. В качестве терм-множества для трех входных лингвистических переменных используется множество {«низкий», «средний», «высокий»}, которое записывается в символическом виде {nizkoe, srednee, visokoe}. В качестве терм-множества выходной лингвистической переменной используется множество {«низкий», «средний», «высокий»}, которое записывается в символическом виде {nizkoe, srednee, visokoe} (см. рисунок 13.2).
Рисунок 13.2 Графический интерфейс редактора функций принадлежности после задания первой входной переменной
В редакторе FIS определяем три входные переменные с именами «упругость дутья» (uprugostdutya), высота кипящего слоя (vysotakipsloya) и разрежение под сводом (razrigpodsvodom) и одну выходную переменную с именем расход воздуха (rashodvozduha).
Зададим 10 правил для разрабатываемой системы нечеткого вывода (см. рисунок 13.3).
Рисунок 13.3 Графический интерфейс редактора правил после задания базы правил для данной системы нечеткого вывода
Теперь можно выполнить оценку построенной системы нечеткого вывода для задачи автоматического управления расходом воздуха. Для этого откроем программу просмотра правил системы Matlab и введем значения входных переменных для частного случая, когда упругость дутья равна 0.5, высота кипящего слоя 0.5 и разрежение под сводом 0.5. Процедура нечеткого вывода выдает в результате значение выходной переменной «расход воздуха», равное 0,526 (см. рисунок 13.4).
Рисунок 13.4. Графический интерфейс программы просмотра правил после выполнения процедуры нечеткого вывода
Данное значение соответствует высокому расходу воздуха.
Также если значения входных переменных будут определяться как «не очень низкая» или «не очень высокая», которые мы не определяли в правилах, результат соответствует тому значению выходной переменной, которая на практике ведения процесса бывает в таких случаях.
А теперь решим задачу синтеза интеллектуальной подсистемы с использованием нейронных сетей.
Для чего составим таблицу истинности обучения нейронной сети
Таблица 13.1 Таблица истинности для обучения нейронной сети
№ |
Входные данные |
Цель обучения |
|||
Упругость дутья |
Высота кипящего слоя |
Разряжение под сводом |
Расход воздуха |
||
0.5 |
0.5 |
0.5 |
0.5 |
||
0.5 |
0.5 |
1 |
1 |
||
0.5 |
0 |
0.5 |
1 |
||
0 |
0.5 |
0.5 |
0.5 |
||
0.5 |
1 |
0 |
0 |
||
0.5 |
0 |
1 |
1 |
||
0 |
0.5 |
1 |
1 |
||
1 |
0.5 |
1 |
1 |
||
1 |
1 |
1 |
1 |
||
0.5 |
0.5 |
1 |
1 |
Для обучения нейронной сети вводим данные из таблицы 13.1, а затем создаем нейронную сеть. В поле (см. рисунок 13.5) входные данные указываем заранее созданные данные, задаем тип нейронной сети, выберем персептрон (Feed-Forward Back Propa-gation) c 10 сигмоидными (TANSIG) нейронами скрытого слоя и одним линейным (PURELIN) нейроном выходного слоя.
Обучение будем производить, используя алгоритм Левенберга-Маркардта (Levenberg-Mar-quardt), который реализует функция TRAINLM. Функция ошибки - MSE, число слоев соответственно равно 2.
Рисунок 13.5. Создание нейронной сети
Теперь необходимо обучить сеть для ее дальнейшего применения, задаем входные и целевые данные, затем указываем параметры обучения, программа покажет прогресс и итог обучения как показано на рисунке 13.6.
Сравним результаты моделирования полученных данных нейронной сети и нечеткой модели. Результаты показали: нейронные сети и нечеткие модели подходят для внедрения в данную систему управления, но чтобы выяснить какие все-таки лучше надо провести сравнение.
Рисунок 13.6. Итог обучения
Таким образом, мы обучили нейронную сеть и создали нечеткую модель, и теперь необходимо провести сравнительный анализ результатов расчета по этим двум моделям и запишем их в таблицу 13.2.
Таблица 13.2
Таблица сопоставления ответов нейронной сети и нечеткой логики
№ |
Нейронная сеть |
Нечеткая логика |
Правильный ответ |
|
0.5 |
||||
0 |
||||
0.25 |
||||
0.75 |
||||
1 |
||||
0.7 |
||||
0.6 |
||||
0.4 |
||||
0.25 |
||||
0.6 |
||||
0.55 |
||||
0.45 |
||||
0.4 |
||||
0.6 |
||||
0.4 |
||||
0.77 |
||||
0.8 |
||||
0.45 |
||||
0.35 |
||||
0.15 |
||||
0.07 |
||||
0.4 |
||||
0.2 |
||||
0 |
||||
0 |
||||
1 |
||||
1 |
||||
0.85 |
||||
0.75 |
||||
1 |
||||
1 |
||||
0.85 |
||||
0.6 |
||||
1 |
Теперь зададим в качестве входных данных величины из заданного нами интервала, и посмотрим, как будет реагировать нейронная сеть и нечеткая логика (см. таблицу 13.3).
Таблица 13.3 Таблица ответов нейронной сети и нечеткой логики при входных переменных из заданного интервала
№ |
Заданные переменые |
Ответы |
Интервал правильных ответов |
||
Нейронная сеть |
Нечеткая логика |
||||
1 |
[0 0 0,15] |
(1-0.75) |
|||
2 |
[1 1 0,5] |
(0-0.75) |
|||
3 |
[0,62 0 1] |
(0.5-1) |
|||
4 |
[0 0,38 0] |
(0.1-0.75) |
|||
5 |
[0,62 0,25 0,84] |
(0.25-1) |
Теперь необходимо проанализировать таблицу 13.3 и сделать заключение о том, какая из моделей (ЭС или НС) более точно описывает поведение данной системы.
Контрольные вопросы:
1. Сколько правил, по вашему мнению, необходимо добавить для получения более гибкого анализа системы
2. Какой показатель сильнее всего влияет на расход воздуха
3. В чем преимущества и недостатки нечеткой логики
4. В чем преимущества и недостатки нейронной сети
Лабораторная работа №13
Создание экспертной модели управления с использованием метода планирования эксперимента
Применительно к процессу Ванюкова при безокислительной плавке сульфидного сырья физико-химические и гидродинамические модели не созданы по ряду объективных причин. Несмотря на это, процессы функционируют и успешно управляются операторами, осуществляющими выбор управляющих воздействий на основании опыта, т.е. неформализованной модели процесса, существующей в их сознании. Таким образом, при исследовании указанных процессов возникает необходимость учета качественной информации, которая зачастую является определяющей, хотя и не поддается точному описанию, т.е. является нечеткой по своей сути.
В связи с этим возникает задача построения управляющей модели в нечеткой среде на основе знаний технологов о моделируемом процессе с использованием лингвистических переменных (ЛП). Эксперту удобнее всего представлять свои знания в виде причинно-следственных связей «Если …, то …». Так, например, эксперт описывает свои действия при управлении: «Если влажность концентрата высокая, то увеличить общее дутье или уменьшить скорость подачи шихты».
Понятие ЛП дает подходящее средство для описания различных процессов, в частности интеллектуальной деятельности человека. Для логико-лингвистического описания поведения системы будем считать причины входными параметрами, а следствия - выходными. например, влажность концентрата станет ЛП, если она ассоциируется с терм- множеством значений: низкая, ниже средней, средняя, выше средней, высокая.
Лингвистические переменные могут использоваться при опросе эксперта на основании теории планирования эксперимента в качестве входных (Хi) и выходных (Yj) переменных и параметров управления с дальнейшей аппроксимацией результатов аналитической функцией в виде полинома
При применении значений ЛП в качестве точек факторного пространства, характеризующих процесс, поведение исследуемой системы описывается экспертом на естественном (или близком к нему) языке. Это делает ЛП наиболее адекватным средством представления экспертных знаний, так как переход от словесных оценок к числовым не вызывает затруднений по любой из шкал.
Множество пар «ситуация-действие» задается в вершинах гиперкуба по методам планирования эксперимента. Алгоритм построения управляющей модели приведен на рисунке 14.1. Для реализации данной схемы необходимо использовать методы теории нечетких множеств и теории планирования эксперимента, элементы которых приведены ниже.
Элементы теории планирования экспериментов. Под экспериментом будем понимать совокупность операций совершаемых над объектом исследования с целью получения информации о его свойствах. Важнейшей задачей методов обработки полученной в ходе эксперимента информации является задача построения математической модели изучаемого явления, процесса, объекта. Ее можно использовать и при анализе процессов и при проектировании объектов. Можно получить хорошо аппроксимирующую математическую модель, если целенаправленно применяется активный эксперимент. Другой задачей обработки полученной в ходе эксперимента информации является задача оптимизации, т.е. нахождения такой комбинации влияющих независимых переменных, при которой выбранный показатель оптимальности принимает экстремальное значение.
Опыт - это отдельная экспериментальная часть. План эксперимента - совокупность данных определяющих число, условия и порядок проведения опытов. Планирование эксперимента - выбор плана эксперимента, удовлетворяющего заданным требованиям, совокупность действий направленных на разработку стратегии экспериментирования (от получения априорной информации до получения работоспособной математической модели или определения оптимальных условий). Это целенаправленное управление экспериментом, реализуемое в условиях неполного знания механизма изучаемого явления. Цель планирования эксперимента - нахождение таких условий и правил проведения опытов при которых удается получить надежную и достоверную информацию об объекте с наименьшей затратой труда, а также представить эту информацию в компактной форме с количественной оценкой точности.
Пусть интересующее нас свойство (Y) объекта зависит от нескольких независимых переменных (X1, X2,,…, Xn) и мы хотим выяснить характер этой зависимости - Y=F(X1, X2,,…, Xn), о которой мы имеем лишь общее представление. Величина Y - называется «отклик», а сама зависимость Y=F(X1, X2,,…, Xn) - «функция отклика».
Регрессионный анализ функции отклика предназначен для получения ее математической модели в виде уравнения регрессии
Y=F(X1 , X2,,…, Xn;B1,B2,,…,Bm)+e,
где B1,B2,,…,Bm - некоторые коэффициенты; e - погрешность.
Функция отклика может быть выражена через кодированные факторы Y= f(x1, … ,xn) и записана в полиномиальном виде
Очевидно, что Bi?bi ,но
Y=F(X1, … , Xi, … , Xn) = f(x1 , … , xi , … , xn).
Для полинома, записанного в кодированных факторах, степень влияния факторов или их сочетаний на функцию отклика определяется величиной их коэффициента bi. Для полинома в именованных факторах величина коэффициента Bi еще не может быть записана более компактной форме
.
При определении общего числа членов степенного ряда количество парных сочетаний для n факторов в полиноме, тройных сочетаний, i-ых сочетаний (Cin) при n>i находится по соотношению
.
Например, для набора четырех чисел (n=4) - 1, 2, 3, 4 число тройных сочетаний составляет
- 123, 134, 124, 234.
Если считать, что существует фактор х0 всегда равный 1, то
Если дополнительно все двойные, тройные и т.д. сочетания факторов, а также квадраты факторов и все соответствующие и коэффициенты обозначить через xi и bi , для i=n+1, ... , m, то степенной ряд можно записать в виде
Здесь m+1 общее число рассматриваемых членов степенного ряда.
Для линейного полинома с учетом всех возможных сочетаний факторов
Полный квадратичный полином выглядит следующим образом:
где
Матричные преобразования при обработке результатов эксперимента. При матичной записи результатов различных N опытов для полиномиального представления результата
будем иметь в виде
Y=X•B
где x - матрица сочетаний факторов
Подобные документы
Разработка алгоритма и программы для распознавания пола по фотографии с использованием искусственной нейронной сети. Создание алгоритмов: математического, работы с приложением, установки весов, реализации функции активации и обучения нейронной сети.
курсовая работа [1,0 M], добавлен 05.01.2013Математическая модель нейронной сети. Однослойный и многослойный персептрон, рекуррентные сети. Обучение нейронных сетей с учителем и без него. Алгоритм обратного распространения ошибки. Подготовка данных, схема системы сети с динамическим объектом.
дипломная работа [2,6 M], добавлен 23.09.2013Прогнозирование валютных курсов с использованием искусственной нейронной сети. Общая характеристика среды программирования Delphi 7. Существующие методы прогнозирования. Характеристика нечетких нейронных сетей. Инструкция по работе с программой.
курсовая работа [2,2 M], добавлен 12.11.2010Понятие искусственного нейрона и искусственных нейронных сетей. Сущность процесса обучения нейронной сети и аппроксимации функции. Смысл алгоритма обучения с учителем. Построение и обучение нейронной сети для аппроксимации функции в среде Matlab.
лабораторная работа [1,1 M], добавлен 05.10.2010Модель и задачи искусственного нейрона. Проектирование двуслойной нейронной сети прямого распространения с обратным распространением ошибки, способной подбирать коэффициенты ПИД-регулятора, для управления движения робота. Комплект “LEGO Mindstorms NXT.
отчет по практике [797,8 K], добавлен 13.04.2015Оптимизация показателей эффективности функционирования технологического контура системы управления космическим аппаратом, исследование свойств его показателей. Настройка нейронной сети, гибридизация генетического алгоритма с алгоритмами локального поиска.
дипломная работа [4,5 M], добавлен 02.06.2011Описание структурной схемы искусственного нейрона. Характеристика искусственной нейронной сети как математической модели и устройств параллельных вычислений на основе микропроцессоров. Применение нейронной сети для распознавания образов и сжатия данных.
презентация [387,5 K], добавлен 11.12.2015Нейронные сети и оценка возможности их применения к распознаванию подвижных объектов. Обучение нейронной сети распознаванию вращающегося трехмерного объекта. Задача управления огнем самолета по самолету. Оценка экономической эффективности программы.
дипломная работа [2,4 M], добавлен 07.02.2013Выявление закономерностей и свойств, применимых в искусственной нейронной сети. Построение графиков и диаграмм, определяющих степень удаленности между объектами. Моделирование, тестирование и отладка программной модели, использующей клеточный автомат.
дипломная работа [4,1 M], добавлен 25.02.2015Прогнозирование на фондовом рынке с помощью нейронных сетей. Описание типа нейронной сети. Определение входных данных и их обработка. Архитектура нейронной сети. Точность результата. Моделирование торговли. Нейронная сеть прямого распространения сигнала.
дипломная работа [2,7 M], добавлен 18.02.2017