Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Интеллектуальные системы. Практикум

.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
712 Кб
Скачать

p2 = [1; -1]

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

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

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

p3 = {[1; 1] [1; -1]}

a3 = sim(net,p3) % Моделирование сети net при входном сигнале p3

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

4.4. Отчёт о выполнении работы

Содержательная часть отчёта о выполнении практической работы должна включать в себя порядок выполнения работы с промежуточными результатами и файл для прогона программы в MATLAB. Условие задачи следует придумать самостоятельно.

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

1.Как можно определить сущность нейрона?

2.Как раскрыть сущность понятия «обучение»?

3.Из каких элементов состоит нейрон?

4.Каковы основные функции пакета программ Neural Networks?

5.Как раскрыть сущность понятия «алгоритм обучения с учителем»?

6.Какова общая идея алгоритмов обучения «без учителя»?

7.В чём сущность обучения слоя Кохонена (обучение «без учителя», самообучение)?

8.Какой нейрон объявляется «победителем» при обучении слоя Кохонена?

9.Как записать уравнение, описывающее процесс обучения слоя Кохонена?

10.Каков алгоритм обучения персептрона?

21

Практическая работа 5 СОЗДАНИЕ И МОДЕЛИРОВАНИЕ НЕЙРОННОЙ СЕТИ ХОПФИЛДА

5.1. Цель работы

Создание и моделирование нейронной сети Хопфилда. Определение структуры этой сети.

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

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

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

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

Приведём формулировку задачи, решаемой данной сетью. Известен некоторый набор двоичных сигналов (изображений,

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

Алгоритм функционирования сети представлен ниже. Шаг 1. На входы сети подаётся неизвестный сигнал.

22

Шаг 2. Рассчитывается новое состояние нейронов и новые значения выходных сигналов.

Шаг 3. Проверяется, изменились ли выходные значения; если да – переход к пункту 2, иначе (если выходы застабилизировались) – конец.

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

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

1. Представить векторы с помощью рисунка, выводимого программой:

clear

T= [+1 -1;-1 +1] plot(T(1,:), T(2,:), r*)

axis([-1.1 1.1 -1.1 1.1]) %Установка масштабов по осям х и y

для текущего двумерного графика

title (′Пространство векторов нейронной сети Хопфилда′) xlabel(a(1))

ylabel(a(2))

2. Создать сеть Хопфилда (с именем H) и проверить её работу при подаче на вход векторов, соответствующих устойчивым точкам. Если сеть работает правильно, она должна выработать эти же векторы без каких-либо изменений:

H=newhop(T) [Y,Pf,Af]=sim(H, 2,[ ],T) Y

3. Проверить работу сети при подаче на её вход произвольного вектора:

a={rands(2,1)} [Y,Pf,Af]=sim(H, {1 50},{ },a)

record=[cell2mat(a) cell2mat(Y)]

23

start= cell2mat(a) hold on

plot(start(1,1),start(2,1), bx,record(1,:),record(2,:)) title (′Результат работы сети Хопфилда′)

5.4. Отчёт о выполнении работы

Содержательная часть отчёта о выполнении практической работы должна включать в себя порядок выполнения работы с промежуточными результатами и файл для прогона программы в MATLAB. Условие задачи следует придумать самостоятельно.

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

1.Как можно определить сущность нейрона?

2.Как раскрыть сущность понятия «обучение»?

3.Из каких элементов состоит нейрон?

4.Каковы основные функции пакета программ Neural Networks?

5.Каков принцип работы нейронных сетей, которым не подходит ни обучение «с учителем», ни обучение «без учителя»?

6.Какова логика работы сети Хопфилда?

7.Как можно сформулировать задачу, решаемую сетью Хопфилда?

8.Какие сигналы считаются образцовыми для сети Хопфилда?

9.Какие сигналы сеть Хопфилда должна уметь выделить из произвольного неидеального сигнала?

10.Каков алгоритм функционирования сети Хопфилда?

24

Практическая работа 6 ГИБРИДНЫЕ (НЕЧЁТКИЕ) НЕЙРОННЫЕ

СЕТИ (СИСТЕМЫ)

6.1. Цель работы

Создание и моделирование гибридных (нечётких) нейронных сетей (систем). Определение структуры этих сетей.

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

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

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

Нечёткие множества (fuzzy) – это множества, для которых характеристическая функция (функция принадлежности элемента множеству) может принимать любые значения в интервале [0,1], а не только значения 0 либо 1.

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

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

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

1. Восстановить зависимость у = х2 по нижеприведённым данным:

х

у

-1

1

-0.6

0.36

0

0

0.4

0.16

11

25

в следующем порядке.

1.1.Выбрать Файл Новый → М-Файл. Набрать данные таблицы, используя для перехода от одного столбца к другому клавишу табуляции. Сохранить данные в файле proba.dat.

1.2.Вызвать редактор нечётких нейронных сетей >>anfisedit

1.3.Выбрать тип загружаемых данных Training и нажать на кнопку Load Data. В результате должны появиться точки, соответствующие введённым данным.

1.4.В группе Generate FIS (создание нечёткой системы вывода) выбрать Grid partition (разбиение (деление) областей определения входных элементов (аргументов) на подобласти – независимо от каждого аргумента). В результате должно появиться диалоговое окно для задания числа и типов функций принадлежности.

1.5.Выбрать:

INPUT: Number of MFs = 4

MF Type – gbellmf (обобщённая колоколообразная)

OUTPUT: MF Type – linear

OK

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

1.6.Обучение нечёткой системы вывода Train FIS. Выбрать гибридный метод обучения hybrid. Установить уровень текущей суммарности (по всем образцам) ошибки обучения Error Tolerance = 0, при достижении которого процесс обучения заканчивается, и количество циклов обучения Epochs = 40. Нажать на кнопку начала процесса обучения Train Now. В результате должны получить график ошибки сети в зависимости от числа проведённых циклов обучения, из которого следует, что фактически обучение закончилось после пятого цикла.

1.7.Протестировать обученную сеть Test Now. В результате: выход обученной сети практически совпадает с точками обучающей выборки.

26

1.8.Сохранить созданную систему proba.fis: File → Экспорт →

To Disk

1.9.Из MATLAB >>fuzzy

File → Open FIS from disk… (Import → From Disk) Открыть созданный файл.

Созданную систему можно редактировать и исследовать.

2. Изучить демонстрационную программу noisedm, иллюстрирующую применение технологии ANFIS для нелинейного шумоподавления (Адаптивное подавление шумов Noise Concellation). Для этого вызовем её с помощью следующих команд:

>>demo

MATLAB → Инструменты → Fuzzy Logic

При выполнении демонстрационной программы noisedm на экран выводится 10 слайдов.

На первом слайде выводится аннотация программы noisedm. Для запуска процесса демонстрации слайда необходимо нажать на кнопку Start>>.

На втором слайде показан гипотетический информационный сигнал x длительностью 6 секунд.

На третьем слайде указано, что информационный сигнал x не может быть измерен без наложения сигнала n2. Сигнал n2 представляет собой нелинейно-искаженный шум n1, который определен как n1 = randn(size(time)).

На четвертом слайде показана нелинейная характеристика канала связи, в результате прохождения по которому шум n1 преобразуется в сигнал n2. Поверхности, показанной на рисунке, приведённом на слайде, соответствует такое нелинейное уравнение: n2(k) = 4*sin(n1(k))*n1(k-1)/(1+n1(k-1)^2) .

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

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

27

x. Нам неизвестен сигнал n2. Доступной информацией является лишь измеренный сигнал m и неискаженный шум n1.

На седьмом слайде указано, что для идентификации нелинейной взаимосвязи сигналов n1 и n2 будет использоваться функция ANFIS. Хотя сигнал n2 неизвестен, для обучения можно использовать сигнал m как зашумленную версию сигнала n2. Таким образом, при решении указанной задачи идентификации информационный сигнал x будет трактоваться как шум. Будем предполагать, что порядок нелинейности канала связи известен (в нашем случае он равен 2), поэтому необходимо использовать ANFIS-модель с двумя входами.

На восьмом слайде приведена программа обучения ANFIS- модели. В нечёткой модели используется по два терма для каждого входа. Следовательно, база знаний состоит из четырёх правил. Общее количество настраиваемых параметров равно 24 – 12 линейных и 12 нелинейных. Длина шага при обучении установлена равной 0.2. Нечеткая модель обучается на протяжении 10 итераций. Информация о процессе обучения модели выводится в командное окно MATLAB.

На девятом слайде приведены искомый и обнаруженный шумы. Искомый шум показан вверху, а обнаруженный – внизу. Шум обнаруживается функцией evalfis с помощью обученной нечеткой модели. Cигнал n2 на момент моделирования является неизвестным.

На десятом слайде показан измеренный сигнал после удаления шума. Отфильтрованный сигнал (estimated_x) получен вычитанием из измеренного сигнала x обнаруженного нечеткой моделью шума (estimated_n2). Для сравнения на десятом слайде показаны искомый информационный сигнал x и отфильтрованный сигнал estimated_x. Как следует из рисунка, приведённого на слайде, даже без длительного обучения нечёткая модель достаточно хорошо удаляет шумы из измеренного сигнала m.

6.4. Отчёт о выполнении работы

Содержательная часть отчёта о выполнении практической работы должна включать в себя порядок выполнения работы с промежуточными результатами и файл для прогона программы в MATLAB. Условие задачи следует придумать самостоятельно.

28

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

1.Какова структура нечёткой (гибридной) нейронной сети?

2.Каковы этапы функционирования нечёткой (гибридной) нейронной сети?

3.Какими параметрами характеризуются скрытые слои нечёткой (гибридной) нейронной сети?

4.Каким образом можно раскрыть сущность понятия нечётких множеств (fuzzy)?

5.Какие значения может принимать характеристическая функция (функция принадлежности элемента множеству)?

6.Каков спектр приложения нечёткой (гибридной) нейронной сети?

7.Как реализуется технология ANFIS для нелинейного шумоподавления?

8.В чём заключается задача нелинейного шумоподавления?

9.Какова структура ANFIS-модели нелинейного шумоподавления?

10.Какие можно сделать выводы по результатам реализации ANFIS-модели нелинейного шумоподавления?

29

Лабораторная работа 7 РАСПОЗНАВАНИЕ ОБРАЗОВ

7.1. Цель работы

Создание и моделирование нейронной сети для распознавания 26 символов латинского алфавита. Определение структуры этой сети.

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

Требуется создать нейронную сеть для распознавания 26 символов латинского алфавита. В качестве датчика предполагается использовать систему распознавания, которая выполняет оцифровку каждого символа, находящегося в поле зрения. В результате каждый символ будет представлен в виде шаблона размером 5 × 7. Проектируемая нейронная сеть должна точно распознавать идеальные векторы входа и с максимальной точностью воспроизводить зашумлённые векторы. М-функция prprob определяет 26 векторов входа, каждый из которых содержит 35 элементов; этот массив называется алфавитом. М-функция формирует выходные переменные alphabet и targets, которые определяют массивы алфавита и целевых векторов.

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

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

1. Определить шаблон для символа A, который является первым элементом алфавита:

clear

[alphabet, targets] = prprob i = 1

ti = alphabet(:, i)

letter{i} = reshape(ti, 5, 7)’ letter{i}

2. Инициализировать сеть.

30

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]