на главную ] 

Классификатор на основе однослойной нейронной сети.

Е.С.Борисов

вторник, 18 октября 2005 г.


В этой работе построен классификатор распознающий картинки с цифрами от 0 до 9. Для реализации классификатора используется однослойная нейронная сеть.

1 Модель

Классификатор представляет собой однослойную нейронную сеть(персептрон) [1,2] из 10 обрабатывающих нейронов (рис.1).

Рисунок 1: однослойная нейронная сеть (персептрон)
классификатор

На вход нейронной сети подаётся слово X(x0 ... xn) где xi=1 или -1, описывающее образ для обработки. На выходе получаем слово Y(y0 ... y9) где yi=1 или -1. Номер j , для которого выход yj=1 , соответствует номеру класса входного образца.

1.1 Параметры сети

Состояние нейрона i определим следующим образом:
\begin{displaymath} s_i=\sum\limits_{j=0}^{n} x_j\cdot w_{ij} \end{displaymath} (1)

В качестве функции активации будем использовать пороговою функцию с порогом T=0 :

\begin{displaymath}
y_i=
f(s_i)=
\left\{
\begin{array}{ccc}
1 &,& s_i\geq T \\
-1 &,& s_i<T
\end{array}\right.
\end{displaymath} (2)

1.2 Метод обучения

В качестве метода обучения используется дельта-правило Видроу-Хоффа [2,3] (обучение "с учителем").


wij(t+1)=wij(t)+ a * xj * eik (3)

где Так же необходимо определить :


Алгоритм обучения нейронной сети построен следующим образом:

  1. Инициализировать матрицу весов случайными значениями на отрезке [ -0.05 , 0.05 ].
  2. Пропустить через сеть все образцы из множества учебных примеров и рассчитать ошибку сети E по (6).
  3. Если ошибка E меньше допустимой максимальной ошибки R то конец работы.
  4. В случайном порядке подать на вход сети все образцы из множества учебных примеров, для каждого образца k и выхода сети yk рассчитать ошибку ek по (4) и скорректировать веса w по (3).
  5. перейти на п.2

2 Реализация

В этом разделе представлены две реализации, описанной выше модели классификатора, которые отличаются размерностью сети. Первый вариант - простой, работает с фиксированным набором входных паттернов, представленных в текстовом виде. Второй вариант - работает с картинками в формате BMP. На вход классификатора подается изображение цифр от 0 до 9 , на выходе получаем слово Y(y0 ... y9) где yi=1 или -1. Номер j , для которого выход yj=1 , соответствует номеру класса входного образца.

2.1 Текстовый вариант

Размерность входного изображения 5 x 7 точек, т.е. всего 5 x 7 = 35 входов сети.



2.2 Работа с картинками

На вход классификатора подаются картинки в формате BMP, размером 17 x 31 точек, представляющие собой матрицы 51 x 31 байт, таким образом входной (или распределительный) слой сети состоит из 51 x 31 = 1581 нейронов. В программе используется библиотека для работы с картинками GdkPixbuf v.2.

Литература

1
F.Rosenblatt Principles of Neurodinamics. - New York: Spartan Books,1962. Русский перевод: Ф.Розенблатт Принципы нейродинамики. - Москва : Мир, 1965.

2
В.А.Головко, под ред.проф.А.И.Галушкина Нейронные сети: обучение, организация и применение. - Москва : ИПРЖР, 2001

3
В.Widrow, M.Hoff Adaptive switching circuits. // IRE WESCON Convention Record, part 4, pp. 96-104. New York: Institute of Radio Engineers, 1960.



Evgeny S. Borisov
2005-10-21
При использовании материалов этого сайта, пожалуйста вставляйте в свой текст ссылку на мою статью.