Главная страница

отчет. Н. Ф. Гусарова, Н. В


Скачать 2.27 Mb.
НазваниеН. Ф. Гусарова, Н. В
Анкоротчет
Дата19.02.2022
Размер2.27 Mb.
Формат файлаdocx
Имя файла2536.docx
ТипДокументы
#367348
страница12 из 19
1   ...   8   9   10   11   12   13   14   15   ...   19

Создание и обучение НС в среде MATLAB


На данном этапе выполнение работы в среде MATLAB производится с помощью программы sr_newff, которая реализует следующие функции:

    • формирование числовых массивов эталонных образов, используе- мых в качестве обучающих;


(НС);

  • подготовка данных, необходимых для создания нейронной сети




  • создание НС, задание параметров обучения НС и обучение НС. Эталонный образ каждого символа представлен в виде вектора-

столбца [N,1], число элементов N которого равно числу признаков (иначе говоря, N – размерность пространства признаков). Такой вектор-столбец формируется из двумерного массива-изображения [N1,N2], который, в свою очередь, формируется при считывании графического файла образа с помо- щью команд:

imread (FILENAME) - процедура чтения графического файла;

X = reshape (A,[N,1]) - процедура преобразования двумерного массива

A[N1,N2] в одномерный вектор-столбец X[N,1], где N=N1*N2.

Процедура умножения массива на 1 приводит к смене типа элементов массива с logical(для элементов битового формата) на double.

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

    • различие шрифтов и стилей печатных символов;

    • погрешности сканирования и неточности совмещения символа и окна сканирования;

    • низкое качество печати, дефекты бумаги и т.д.

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

В программе sr_newff формирование дополнительных обучающих образов производится путем незначительного искажения эталонных обра- зов, считываемых из графических файлов. Искажение образа-эталона каж- дого класса реализуется путем добавления к нему равномерного (по пло- щади изображения) шума типа «Соль и перец», представляющего собой слу- чайное искажение отдельных пикселей изображения. Степень искажения характеризуется числом p=[0;1], определяющим долю искаженных пиксе- лей.

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

Подготовка данных, необходимых для создания НС, включает в себя:

  1. формирование двумерного массива обучающих образов XR[N,K], каж- дый столбец которого представляет собой набор N признаков одного образа, а число столбцов K равно числу обучающих образов;

  2. формирование двумерного массива желаемых откликов YR[NY,K], где

NY число выходов НС (т.е., число нейронов выходного слоя); K число

обучающих образов. Отклик YR[:,k] общем случае вектор-столбец) со- ответствует k-му обучающему образу вектору XR[:,k];

  1. формирование двумерного массива R[N,2], определяющего минимальное R(n,1) и максимальное R(n,2) значение n-го признака, n=1,…,N.

Создание НС. В общем случае НС net создается с помощью ко- манды:

net = nnnnn (P1,P2,…PL), где

    • nnnnn – тип НС;

    • P1,…,PL – параметры НС.

В настоящей работе используется НС типа многослойного персеп- трона newff, которая задается командой:

net = newff (R, [A1 A2 AL], {F1 F2 FL}, BTF, PF), где

R - массив минимальных и максимальных значений входных нейронов (признаков);

Ai - число нейронов i-го слоя, начиная с первого скрытого слоя, i=1,…,L; Fi - функция активации нейронов i-го слоя, по умолчанию ‘tansig’;

BTF - функция обучения сети, по умолчанию ‘trainlm’;

PF - критерий остановки, по умолчанию ‘mse’ (минимум ско).

Дополнительные параметры, используемые при создании сети: net.performFcn=’msereg’ - обучение НС производится с помощью метода регуляризации;

net.performParam.ratio=0.1 - значение параметра регуляризации; net.trainParam.show=5 - число эпох, через которое производится вывод параметров процедуры обучения;

net.trainParam.epochs=500 - максимальное число эпох при обучении НС; net.trainParam.goal=0.02 - значение целевой функции, по достижении которого процесс обучения НС прекращается.

Процесс обучения НС запускается командой: net = train (net, XR, YR) .

Для решения задач распознавания печатных символов рекоменду- ется использовать трехслойную НС (один скрытый слой) с числом нейро- нов:

N=120 - во входном слое;

A1=20 - в скрытом (промежуточном) слое;

A2=1 - в выходном слое.

При использовании большего числа нейронов процедура обучения НС может занять слишком много времени. Для рекомендованных значений параметров НС том числе и дополнительных) и общем числе обучающих образов (для всех заданных классов) K=100…200 время обучения НС со- ставляет 5…20 мин.


    1. 1   ...   8   9   10   11   12   13   14   15   ...   19


написать администратору сайта