Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теоретически основ кибер_Практические Занятия (черновик).docx
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆

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

  1. Что представляют собой системы поддержки принятия решений? Для чего предназначены?

  2. Какие задачи решают СППР?

  3. Какие виды СППР выделяют, рассматривая их возможности при взаимодействии с пользователем?

  4. Что представляет собой архитектурно-технологическая схема СППР? Из каких структурных единиц она состоит?

  5. Какую проблему решает создание отдельного хранилища данных (ХД)?

  6. Какой постулат лежит в основе концепции оперативной аналитической обработки (OLAP)?

  7. Из каких стадий состоит процесс интеллектуального анализа данных (ИАД)?

  8. Каковы основные теоретические выкладки из симплекс-метода? Опишите критерии, характеризующие данные, полученные в результате использования данного метода.

  9. Что представляет собой прямой алгоритм симплексного метода?

  10. В чём состоит особенность метода Гомори?

  1. Что представляют собой активные сппр?

а) Системы, которые не выдвигают конкретного предложения, но осуществляют помощь в процессе принятия решений;

б) Такие системы, которые непосредственно участвуют в разработке решения;

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

  1. Если компонента плана, определяемая k-м уравнением системы ограничений, нецелочисленна, то, согласно методу Гомори, добавляется ограничение:

а)

б)

в)

г)

  1. Критерию оптимальности отвечает следующее условие:

а) Dk < 0;

б) Zjk >0;

в) Dkі=0,

г) Dk < 0, все Zjk=Ј0.

Список литературы

  1. Тынкевич М.А. «Экономико-математические методы (исследование операций)», издание 2-е, исправленное и дополненное, Кемерово, 2007г.

  2. Конюховский П.В. «Математические методы исследования операций в экономике», СПб.: Питер, 2008г.

  3. Дегтярев Ю.И. «Исследование операций», М.: Высшая школа, 2009 г.

  4. Ануфриев И.Е., Смирнов А.Б., Смирнова Е.Н. «MATLAB 7», СПб.: БХВ-Петерберг, 2005г.

  5. Дъяконов В. «MATLAB 6: Учебный курс», СПб.: Питер, 2010г.

  6. Кривко О.Б. Информационные технологии. М.: СОМИНТЭК. 2001

  7. Терелянский, П. В. Системы поддержки принятия решений. Опыт проектирования : монография / П. В. Терелянский ; ВолгГТУ. — Волгоград, 2009. — 127 с

Практическая работа по теоретической кибернетике №12 Искусственные нейронные сети (пакеты прикладных программ)

Цель работы: изучение архитектуры искусственных нейронных сетей, способов их графического изображения в виде функциональных и структурных схем и программного представления в виде объектов специального класса network, включающих массив структур с атрибутами сети и набор необходимых методов для создания, инициализации, обучения, моделирования и визуализации сети, а также приобретение навыков построения сетей различной архитектуры с помощью инструментального программного пакета Neural Network Toolbox системы MATLAB.

Теоретическая часть:

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

Теория нейронных сетей возникла из исследований в области искусственного интеллекта и связана с попытками воспроизведения способности нервных биологических систем обучаться и исправлять ошибки, моделируя низкоуровневую структуру мозга. Исследования по созданию таких систем на основе высокоуровневого (символьного) моделирования процесса мышления не принесли желаемых результатов. Эта теория развивалась в течение последних шести десятилетий и за последние двадцать лет нашла широкое практическое применение: в космонавтике и аэронавтике – для имитации траекторий полета и построения систем автоматического пилотирования; в военном деле – для управления оружием и слежением за целями; в электронике – для разработки систем машинного зрения и синтеза речи; в медицине – для диагностики заболеваний и конструирования протезов; в производстве – для управления технологическими процессами, роботами и т. д. Такой успех нейронных сетей объясняется тем, что была создана необходимая элементная база для реализации нейронных сетей, а также разработаны мощные инструментальные средства для их моделирования в виде пакетов прикладных программ. К числу подобных пакетов относится пакет Neural Networks Toolbox (NNT) системы математического моделирования MATLAB 6 фирмы Math Works.

Пакет прикладных программ NNT содержит средства для построения нейронных сетей, базирующихся на поведении математического аналога нейрона. Пакет обеспечивает эффективную поддержку проектирования, обучения, анализа и моделирования множества известных типов сетей – от базовых моделей персептрона до самых современных ассоциативных и самоорганизующихся сетей. В пакете имеется более 15 таких типов. Для каждого типа архитектуры и обучающих правил имеются М-функции инициализации, обучения, адаптации, создания, моделирования, отображения, оценки и демонстрации, а также примеры применения. Обеспечена возможность генерации переносимого кода с помощью пакета Real Time Workshop, также входящего в систему MATLAB 6.

Модели искусственного нейрона

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

а б

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

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

Нейрон, показанный на рис. 1,б, дополнен скалярным смещением b. Смещение суммируется со взвешенным входом w*p и приводит к сдвигу аргумента функции на величину b. Действие смещения можно свести к схеме взвешивания, если представить что нейрон имеет второй входной сигнал со значением, равным 1. Вход n функции активации нейрона по-прежнему остается скалярным и равным сумме взвешенного входа и смещения b. Эта сумма является аргументом функции активации f; выходом функции активации является сигнал а. Константы w и b являются скалярными параметрами нейрона. Основной принцип работы нейронной сети состоит в настройке параметров нейрона с тем, чтобы функционирование сети соответствовало некоторому желаемому поведению. Регулируя веса или параметры смещения, можно “научить” сеть выполнять конкретную работу; возможно также, что сеть сама будет корректировать свои параметры, чтобы достичь требуемого результата.

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

a = f(w*p+b*l).

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

Функция активации

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

Ниже рассмотрены три наиболее распространенные функции активации.

Единичная функция активации с жестким ограничениям hardlim. Эта функция описывается соотношением а = hardlim(n) = 1(n) и показана на рис. 2. Она равна 0, если n < 0, и 1,если n >= 0.

Рис. 2. Функция активации hardlim

В состав пакета ППП Neural Network Toolbox входит М-функция hardlim, реализующая функцию активации с жесткими ограничениями.

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

Рис. 3. Линейная функция активации purelin

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

Рис. 4. Функция logsig

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

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

Нейрон с векторным входом

Нейрон с одним вектором входа р с R элементами показан на рис. 5. Здесь каждый элемент входа умножается на веса соответственно и взвешенные значения передаются на сумматор. Их сумма равна скалярному произведению вектора-строки W на вектор входа р.

Рис. 5. Функциональная схема нейрона

Нейрон имеет смещение b, которое суммируется со взвешенной суммой входов. Результирующая сумма n определяется как

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

n = W*p + b.

Структура нейрона, показанная на рис. 5, содержит много лишних деталей. При рассмотрении сетей, состоящих из большого числа нейронов, будет использоваться укрупненная структурная схема нейрона (рис. 6).

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

Рис. 6. Структурная схема нейрона

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

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

Рис. 3.7. Функции активации

Искусственные нейронные сети

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

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

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

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

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

Структурная схема сети изображается с помощью типового набора блоков, соединительных элементов и обозначений, принятых в инструментальном программном пакете Neural Network Toolbox системы MATLAB и пакете имитационного моделирования Simulink той же системы. Структурная схема сети может быть укрупнённой или детальной, причём степень детализации определяется пользователем. Системы обозначений блоков, элементов и параметров сети является векторно-матричной, принятой в системе MATLAB. Если в обозначении используется два индекса, то, как правило, первый индекс (индекс строки) указывает адресата, или пункт назначения, а второй индекс (индекс столбца) – источник структурной схемы сети. Структурные схемы создаются системой автоматически с помощью команды gensim. Если элементом вектора или матрицы на структурной схеме является сложный объект, то используются соответственно ячейка и массив ячеек.

Программным представлением, или вычислительной моделью искусственной нейронный сети, является объект специального класса network, который включает массив структур с атрибутами сети и набор методов, необходимых для создания сети, а также для её инициализации, обучения, моделирования и визуализации. Класс Network имеет два общих конструктора, один из которых не имеет параметров и обеспечивает создание массива структур с нулевыми значениями полей, а второй – имеет минимальный набор параметров для создания модели нейронной сети, достраиваемой затем до нужной конфигурации с помощью операторов присваивания. Для создания нейронных сетей определённого вида используются специальные конструкторы.

Практическая часть:

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

Net = network (numInputs, numLayers, biasConnect, imputConnect, layerConnect, outputConnect, tartegtConnect).

Связи между слоями должны быть только прямыми, входы необходимо соединить с первым слоем, а выход – с последним. Выход должен быть целевым, первый слой должен иметь смещения.

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

numImputs=2 – количество входов сети;

numLayers=3 – количество слоёв в сети;

biasConnect=[1; 0; 0] – матрица связности для смещений раз-мера numLayers * 1;

inputConnect=[1 1; 0 0; 0 0] – матрица связности для входов размера numLayers * numImputs;

layerConnect=[0 0 0;1 0 0 0 ; 0 1 0] – матрица связности для сло-ёв размера numLayers * numLayers;

outputConnect=[0 0 1] – матрица связности для выходов разме-ра 1* numLayers;

targetConnect=[0 0 1] – матрица связности для целей размера 1 * numLayers.

Порядок выполнения заданий следующий:

  1. Создать шаблон сети, выполнив команду

net = network (2, 3, [1; 0; 0], [1 1; 0 0 ; 0 0], …. ,

[0 0 0 ; 1 0 0 ; 0 1 0], [0 0 1])

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

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

numOutputs = 1 – количество выходов сети;

numTargets = 1 – количество целей сети;

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

numLayersDelays = 0 – максимальное значение задержки для слоёв сети.

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

4. Проанализировать структурную схему построенной сети, выполнив команду gensim(net) и детализируя блоки с помощью двойного щелчка левой клавиши мыши по рассматриваемому блоку. На структурных схемах искусственных нейронных сетей в пакете NNT используются следующие обозначения:

  1. а) Neural Network – искусственная нейронная сеть с обозначениями входов p{1}, p{2}, … и выхода y{1};

  2. б) входы Input1 , или p{1} и Input2 , или p{2};

  3. в) дисплей y{1};

  4. г) Layer 1, Layer 2, Layer 3, … слои нейронов с обозначениями входов p{1}, p{2], a{1}, a{2}, … и выходов a{1}, a{2}, a{3}, … , y{1};

  5. д) TDL – линии задержки (Time Delay) с именами Delays1, Delays2, ..., которые обеспечивают задержку входных сигналов или сигналов между слоями нейронов на 1, 2, 3, … такта;

  6. е) Weights – весовая матрица для входных сигналов или сигналов между слоями нейронов; размер матрицы весов для каждого вектора входа S.R, где S – число нейронов входного слоя, а R – число компонент вектора входа, умноженное на число задержек; размер матрицы для сигналов от слоя j к слою i равен S.R, где S – число нейронов в слое i, а R – число нейронов в слое j, умноженное на число задержек;

  7. ж) dotprod – блок взвешивания входных сигналов и сигналов между слоями, на выходе которого получается сумма взвешенных, т. е. умноженных на соответствующие веса компонент сигнала;

  8. з) mux – концентратор входных сигналов и сигналов между слоями, преобразует набор скалярных сигналов в вектор, а набор векторов в один вектор суммарной длины;

  9. и) netsum – блок суммирования компонент для каждого нейрона слоя: компонент от нескольких векторов входа с учётом задержек, смещения и т. п.;

  10. к) hardlim, purelin и т. д. – блоки функций активации;

  11. л) pd{1, 1}, pd{1, 2}, ad{2, 1}, ... – сигналы после линий задержки (d - delay);

  12. м) iz{1, 1}, iz{1, 2}, lz{2, 1}, lz{3, 2} – вектор-сигналы с выхода концентратора;

  13. н) bias – блок весов смещений для слоя нейронов;

  1. о) IW – массив ячеек с матрицами весов входов: IW{i, j} – матрицы для слоя i от входного вектора j;

  2. п) LW – массив ячеек с матрицами весов для слоёв: LW{i, j} – матрицы для слоя i от слоя j.

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

  4. 6. Задать нулевые последовательности сигналов для входов

P = [0 0 ; 0 0]

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

A = sim(net, P).

  1. Задать диапазоны входных сигналов и весовые матрицы с помощью следующих присваиваний:

net.inputs{1}.range = [0 1];

net.inputs{2}.range = [0 1];

net.b{1} = - ;

net.IW{1, 1} = [0.5];

net.IW{1, 2} = [0.5];

net.LW{2, 1} = [0.5];

net.LW{3, 2} = [0.5].

Исполнить команду gensim(net) и проверить параметры блока.

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

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

PG = [0.5 1 ; 1 0.5];

PS = {[0.5 1] [1 0.5]};

AG = sim(net, PG);

AS = sim(net, PS).

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

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

net.inputWeights{1, 1}.delays = [0 1];

net.inputWeights{1, 2}.delays = [0 1];

net.layerWeights{3, 2}.delays = [0 1 2].

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

  1. Скорректировать весовые матрицы:

net.IW{1, 1} = [0.5 0.5];

net.IW{1, 2} = [0.5 0.25];

net.LW{3, 2} = [0.5 0.25 1].

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

AG = sim(net, PG);

AS = sim(net, PS).

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

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

  2. Сохранить содержимое командного окна в М-файле для последующего использования.

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

  1. Что является элементарной ячейкой нейронной сети?

А) нейрон

Б) нефрон

В) нервное волокно

Г) нервный пучок

  1. Теория нейронных сетей возникла из исследований в области:

А) искусственного интелекта

Б) биологических процессов

В) физиологических процессов организма

Г) физических явлений

  1. Какое практическое применение нашла теория нейронных сетей в медицине?

А) диагностика заболеваний и конструирование протезов

Б) диагностика заболеваний и физиотерапия

В) физиотерапия и обеспечение хирургических операций

Г) конструирование протезов и обеспечение хирургических операций

Список используемой литературы:

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

  2. Галушкин, А. И. Теория нейронных сетей [Текст] / А. И. Галушкин. – М.: ИПРЖР, 2000. – 416 с.

  3. Сивохин, А. В. Искусственные нейронные сети [Текст] / А. В. Сивохин; учеб. пособие / под ред. профессора Б. Г. Хмелевского. – Пенза: Изд-во Пенз. гос. ун-та, 2002. – 70 с.

  4. Дунин-Барковский, В. П. Информационные процессы в нейронных структурах [Текст] / В. П. Дунин-Барковский. – М.: Наука, 1978.