Ход выполнения работы. 1. Ознакомится с целью и задачами лабораторной работы

1. Ознакомится с целью и задачами лабораторной работы.

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

3. Из исходных сформированных символов (таблица 1) сделать инверсные, при этом символ будет белым на черном фоне, т.е. информативная часть рисунка представится единицами (белым цветом).

4. Т.к. распознавание символов будет происходить в исходном пространстве, то необходимо сформировать вектор-столбец входа. Для того, чтобы правильно осуществить эту процедуру необходимо использовать следующие функции:

A=imread('BA.bmp');

AA=reshape(A',256,1);

… … … … …

Н=imread('BН.bmp');

НН=reshape(Н',256,1);

где A', Н' – транспонированные матрицы.

Вертикальная конкатенация вышеполученных массивов:

ALPH1=cat(2,AA, …,НН);

При использовании вышеприведенных функций каждое изображение представляется в виде вектора-столбца, состоящего из нулей и единиц.

5. Сформировать матрицу выходов (целей) нейронной сети K*N, где

K – количество классов (5),

N=5х3=15 – количество эталонов классов в обучающей выборке.

Полученная матрица будет иметь следующий вид:

;

Формирование этой единичной матрицы удобно произвести с помощью функции

out=[eye(5) eye(5) eye(5)].

6. Смоделировать нейронную сеть прямой передачи сигнала с М=256 входами и К=5 выходами, использующую метод обратного распространения ошибки с помощью функции newff c заданными функциями обучения и настройки. Например:

net=newff(PR,[S 5],{'logsig' 'logsig'},'traingdx');

где PR – массив 256х2 минимальных и максимальных значений для вектора-входа.

S – количество нейронов в скрытом слое.

Построить график зависимости циклов обучения от количества нейронов в скрытом слое (проверить при использовании от 10 до 50 нейронов).

7. Создать программное меню, реализующее выполнение таких процедур как:

k=menu('Двухслойная нейронная сеть ',...

'Вывод архитектуры нейронной сети'… % реализуется с помощью функции gensim(net);

'Обучение нейронной сети в отсутствие шума',...

'Обучение нейронной сети в присутствие шума',...

'Оценка эффективности функционирования НС'

'Распознавание зашумленных символов'…

'Распознавание рукописных символов');

Предусмотреть переход из двух последних пунктов меню в подменю следующего вида:

k=menu('Проверка работы сети для распознавания зашумленных символов',...

'Для цифры 1',...

… … … …

'Для цифры 5',...

'Выход');

и

k=menu('Проверка работы сети для распознавания рукописных символов',...

'Для цифры 1',...

… … … …

'Для цифры 5',...

'Выход');

8. Проверить работу сети, предъявив ей идеальный набор символов.

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

10. Оценить правильность функционирования НС. Построить соответственно графики погрешности сети, обученной на идеальных последовательностях, и сети, обученной на зашумленных последовательностях, от уровня входного шума.

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

noisyA=A + 0.2*randn(256,1);

A1=sim(net,noisyA);

A1=compet(A1);

answer=find(compet(A2) = =1);

Для вывода номера класса, к которому принадлежит предъявляемый сети образ использовать функцию msgbox().

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

13. Сделать соответствующие выводы.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: