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

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

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

Вызвать М-файл prprob, который формирует массив векторов входа alphabet размером 35 × 26 с шаблонами символов алфавита и массив целевых векторов targets:

[alphabet,targets] = prprob [R,Q] = size(alphabet) [S2,Q] = size(targets)

Двухслойная нейронная сеть создается с помощью команды newff:

S1 = 10 net=newff(minmax(alphabet),[S1 S2],...

{‘logsig’ ‘logsig’}, ‘traingdx’) net.LW{2,1} = net.LW{2,1}*0.01 net.b{2} = net.b{2}*0.01 gensim(net)

Сеть содержит два последовательно соединённых слоя.

В1-м слое – 10 нейронов, во 2-м – 26 нейронов.

3.Реализовать обучение нейронной сети в отсутствие шума.

Сеть первоначально обучается в отсутствие шума с максимальным числом циклов обучения – 5000, либо до достижения допустимой средней квадратичной погрешности, равной 0.1:

P = alphabet T = targets

net.performFcn = ‘sse’ net.trainParam.goal = 0.1

net.trainParam.show = 20 net.trainParam.epochs = 500 net.trainParam.mc = 0.95

[net,tr] = train(net,P,T)

4. Реализовать обучение нейронной сети в присутствии шума. Чтобы спроектировать нейронную сеть, нечувствительную к воздействию шума, обучим её с применением двух идеальных

31

и двух зашумлённых копий векторов алфавита. Целевые векторы состоят из четырёх копий векторов. Зашумлённые векторы имеют шум со средними значениями 0.1 и 0.2. Это обучает нейрон правильно распознавать зашумлённые символы и в то же время хорошо распознавать идеальные векторы.

При обучении с шумом максимальное число циклов обучения сократим до 300, а допустимую погрешность увеличим до 0.6:

netn = net netn.trainParam.goal = 0.6 netn.trainParam.epochs = 300

T = [targets targets targets targets] for pass = 1:10

P = [alphabet, alphabet, ...

(alphabet + randn(R,Q)*0.1), ...

(alphabet + randn(R,Q)*0.2)] [netn,tr] = train(netn,P,T)

end

5. Реализовать повторное обучение нейронной сети в отсутствие шума.

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

netn.trainParam.goal = 0.1 netn.trainParam.epochs = 500 net.trainParam.show = 5 [netn, tr] = train(netn,P,T)

6. Оценить эффективность функционирования нейронной сети.

Эффективность нейронной сети будем оценивать следующим образом. Рассмотрим две структуры нейронной сети: сеть 1, обученную на идеальных последовательностях, и сеть 2, обученную на зашумлённых последовательностях. Проверка функционирования производится с применением 100 векторов входа при различных уровнях шума:

32

tic, noise_range = 0:.05:.5; max_test = 20; network1 = []; network2 = []; T = targets; for noiselevel = noise_range

errors1=0; errors2=0; for i=1:max_test

P = alphabet + randn(35,26)*noiselevel; A = sim(net,P); AA = compet(A);

errors1 = errors1 + sum(sum(abs(AA - T)))/2; An = sim(netn,P); AAn = compet(An);

errors2 = errors2 + sum(sum(abs(AAn - T)))/2; echo off end

network1 = [network1 errors1/26/100]; network2 = [network2 errors2/26/100]; end

toc

Тестирование нейронной сети реализуется следующим образом. Шум со средним значением 0 и стандартным отклонением от 0 до 0.5 с шагом 0.05 добавляется к векторам входа. Для каждого уровня шума формируется 100 зашумлённых последовательностей для каждого символа и вычисляется выход сети. Выходной сигнал обрабатывается М-функцией compet с той целью, чтобы выбрать только один из 26 элементов вектора выхода. После этого оценивается количество ошибочных классификаций и вычисляется ошибка в процентах.

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

figure(1),clf plot(noise_range,network1*100,’--’,noise_range,network2*100) grid on

7. Проверить работу нейронной сети для распознавания символов. Сформировать зашумленный вектор входа для символа J:

noisyJ = alphabet(:,10) + randn(35,1)*0.2 plotchar(noisyJ); % Зашумленный символ J A2 = sim(net,noisyJ)

33

A2 = compet(A2)

answer = find(compet(A2) == 1) plotchar(alphabet(:,answer))

Нейронная сеть должна выделить 10 правильных элементов и восстановить символ J без ошибок.

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

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

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

1. В чём заключается задача распознавания образов нейронной сетью?

2. Что используется в качестве датчика распознавания

26 символов латинского алфавита?

3.Каким образом будет представлен каждый символ латинского алфавита?

4.Какова цель проектируемой нейронной сети?

5.С помощью какой команды можно создать двухслойную нейронную сеть?

6.Каковы параметры обучения нейронной сети в отсутствие шума?

7.Каковы параметры обучения нейронной сети в присутствии шума?

8.Зачем необходимо повторять обучение нейронной сети без шума?

9.Какова эффективность функционирования нейронной

сети?

10.Как реализуется тестирование нейронной сети?

34

СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ

Потёмкин В.Г. Notebook «Нейронные сети» [Электронный ресурс] / В.Г. Потёмкин. – 192 с. – Режим доступа : http://matlab. exponenta.ru/neuralnetwork/index.php.

Круглов, В.В. Искусственные нейронные сети. Теория и практика [Текст] / В.В. Круглов, В.В. Борисов. – М. : Горячая линия – Телеком, 2002. – 382 с.

Проектирование систем управления / Fuzzy Logic Toolbox [Электронный ресурс]. – Режим доступа : http://matlab. exponenta.ru/fuzzylogic/book2/4/noisedm.php.

35

Учебное издание

Акимова Ольга Юрьевна

ИНТЕЛЛЕКТУАЛЬНЫЕ СИСТЕМЫ

Практикум

Редактор Т.А. Кравченко

Компьютерная верстка И.В. Баратовой

Подписано в печать 10.03.20

Уч.-изд. л. 2,25

Формат 60 × 90 1/16

Электронная версия

Национальный исследовательский технологический университет «МИСиС», 119049, Москва, Ленинский пр-т, 4

Издательский Дом НИТУ «МИСиС», 119049, Москва, Ленинский пр-т, 4 Тел. 8 (495) 638-44-06

Отпечатано в типографии Издательского Дома НИТУ «МИСиС», 119049, Москва, Ленинский пр-т, 4 Тел. 8 (495) 638-44-16, 8 (495) 638-44-43

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