Ньейн Эй
Научный руководитель – , к. т.н., доцент
Московский инженерно-физический институт (государственный университет)
нейронная сеть для распознавания образов
Требуется создать нейронную сеть для распознавания 10 символов цифр 0-9. В качестве датчика предполагается использовать стандартное поле, в котором выполняется оцифровка каждого символа. В результате каждый символ будет представлен шаблоном размера 5*7.
Нейронная сеть
На вход сети поступает вектор входа с 35 элементами; вектор выхода содержит 10 элементов, только один из которих равен 1, а остальные -0. Правильно функционирующая сеть должна ответить вектором со значением 1 для элемента, соответствующего номеру символа.
Каждый нейрон может принимать одно из двух состояний (+1 или -1) [1]. Значение состояния нейрона будет определяться следующим уравнением:
Xi = f ( Si )
Si = S Xj * wij
f ( S ) = { 1, если S ³ 0-1, если S < 0
Архитектура сети
Для работы нейронной сети требуется 35 входов и 10 нейронов в выходном слое. Для решения задачи выберем нейронную сеть с одним слоем нейронов. Для программной реализации данной модели нейросети использована программа, написанная на языке С из [2]. Структура данных для нее выглядит следующим образом :
typedef struct { /* слой сети: */
int Units; /* - количество нейронов в этом слое */
float* Activation; /* - активация нейрона i */
int* Output; /* - выход нейрона i */
float* Error; /* - ошибка нейрона i */
float** Weight; /* - веса связи к нейрону i */
} LAYER;
typedef struct { /* сеть: */
LAYER* InputLayer; /* - слой входа */
LAYER* OutputLayer; /* - слой выхода */
float Eta; /* - скорость изучения */
float Error; /* - полная ошибка сети */
float Epsilon; /* - ошибка закончить обучение */
} NET;
Процедура обучения
Сеть обучена с данным массивом входов с помощью процедуры обратного распространения.
Wt+1 = Wt + DW
DW = h * Error * Output,
где h-это скорость изучения.
Процесс обучения продолжается, пока ошибка не становится ниже предоприделенной заранее величины.
Обучающий алгоритм для нейронной сети выглядит следующим образом[3].
Шаг 1. Инициализировать веса. Установить значение коррекции h.
Шаг 2. Пока не выполнятся условия останова, выполнять шаги 4-7.
Шаг 3. Для каждой пары x : t, выполнять шаги 4 – 5.
Шаг 4. Вычислить значение входа нейрона:
y = b+S xi * wi
Шаг 5. Изменить значение смещения и весов:
b_new=b_old+ h (t-y). wi_new = wi_old+ h (t-y_in) xi.
Шаг 6. Вычислить значение общей ошибки:
E = S p=1 to m [( Si=1 to n ( xi(p) – t(p) )]2
Шаг 7. Условия останова. Если значение общей ошибки больше не меняется, тогда стоп, в противном случае – продолжать.
Выводы
1. Рассмотрены результаты практической реализации задачи распознавания образов с помощью нейросети.
2. Цель работы состоит в том, чтобы классифицировать изображения цифр от 0 до 9, в соответствующие классы.
3. Экспериментальное исследование показало, что из-за ограниченных возможностией нейросети с одним слоем, сеть распознает только точные образцы цифр.
Список литературы
1. С. Короткий. Нейронные сети: основные положения (www. *****/~stasson/neuroe. html)
2. Кастен Кутза. Нейронные сети в ваших кончиках пальца( Neural Networks at your Fingertips ) (www. /CapeCanaveral/1624/)
3. Адаптивный линейный нейрон. (Институт транспорта и связи им. Ломоносова, Департамент компьютерных наук) ( www. ai. tsi. lv/ru/neuro/neuro_files. html)


