Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мой бакалаврский опус.pdf
Скачиваний:
11
Добавлен:
27.03.2015
Размер:
1.29 Mб
Скачать

Рассмотрим примеры применения разных последовательностей фильтров к изображению (рис. 1). Ширина и высота исходного изображения – 100 пикселей.

а) б) в) г)

Рис. 1. а) исходное изображение, б) - г) – бинарные изображения, полученные: б) без применения дополнительных фильтров, в) с применением медианного фильтра (r=5), г) с применением медианного фильтра

(r=5) и фильтра морфологического расширения (при использовании маски размеров 3*3).

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

2.4. Признаковое описание рукописного символа

После

того как

растровое

изображение прошло предварительну ю

обработку и

приобрело

бинарную

структуру,

целесообразным является формирование

признакового

описания объекта, представляющего интерес.

В основе подхода, применяемого в данной работе для описания рукописного символа как объекта, который требуется классифицировать, лежит понятие дискретного центрального момента mij области D бинарного изображения, который определяется по следующей

фор муле:

 

 

 

 

 

 

 

mij

=

(x

 

)(i y

 

)j ,

(2.4.1)

x

y

 

 

 

 

(x, y ) D

 

где

 

 

 

 

 

 

 

 

 

=

1

x ,

(2.4.2)

 

x

 

 

 

 

n

(x,y ) D

 

 

 

=

1

y ,

(2.4.3)

 

y

 

 

 

 

n

(x, y ) D

 

а n – общее количество пикселей в области D .

 

Если теперь ввести нормированные величины ηij = mij

m00i+ j , то для области D можно

записать следующие 7 геометрических Hu-моментов [15], которые характеризуют форму

14

рассматриваемой области и инвариантны к операциям параллельного переноса, поворота и масштабирования:

h1

=η20 +η02 ,

 

h2 = (η20 η02 )2 + 4η112 ,

 

h3 = (η30 3η12 )2 + (3η21 η03 )2 ,

 

h4 = (η30 +η12 )2 + (η21 +η03 )2 ,

 

h5

= (η30 3η12 )(η30 +η12 )((η30 +η12 )2 3(η21 +η03 )2 )+

(2.4.4)

+ (3η21 η03 )(η21 +η03 )(3(η30 +η12 )2 (η21 +η03 )2 ),

 

h6

= (η20 η02 )((η30 +η12 )2 (η21 +η03 )2 )+ 4η11 (η30 +η12 )(η21 +η03 ),

 

h7

= (3η21 η03 )(η21 +η03 )(3(η30 +η12 )2 (η21 +η03 )2 )

 

(η30 3η12 )(η21 +η03 )(3(η30 +η12 )2 (η21 +η03 )2 ).

 

Эти моменты в совокупности можно интерпретировать как компоненты 7-мерного вещественного вектора, образующие признаковое описание отдельно взятого объекта (то есть рукописного символа).

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

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

Шаг 0. Находим центр рассеивания объекта (x, y)по формулам (2.4.2) и (2.4.3).

Шаг 1. Полагаем i = [x], j = [y].

Шаг 2. Пока справедливо неравенство i <W и в i - й строке изображения есть чёрные пиксели, уменьшаем значение i на единицу.

Шаг 3. Пока выполняется неравенство j < H и в j - м столбце изображения есть чёрные пиксели, уменьшаем значение j на единицу.

Шаг 4. Запоминаем левую нижнюю вершину искомого прямоугольника – пиксель с координатами (i, j).

Шаг 5. Повторяем Шаг 1 – Шаг 3 с увеличением индексов i и j и запоминаем правую верхнюю вершину искомого прямоугольника – пиксель с координатами (i, j).

Конец алгоритма.

На рис. 2 и 3 приведены примеры бинарных областей, а также их признаковые описания, полученные в соответствии с формулами (2.4.4).

15

Hu-момент объекта

Значение

h1

0,335896151308773

h2

0,005081962256997

h3

6,98554360862792E-06

h4

2,50419415057469E-06

h5

9,00104820868783E-12

h6

-7,91531802334243E-07

h7

7,25393886750125E-11

Рис. 2. Рукописный символ, соответствующий букве «а», и его признаковое описание

Hu-момент объекта

Значение

h1

0,644463667820069

h2

0,197867028503871

h3

0,000325817591046437

h4

6,21471149366068E-05

h5

5,89961248505693E-09

h6

3,10411609389515E-05

h7

9,8995193791086E-07

Рис. 3. Рукописный символ, соответствующий букве «б», и его признаковое описание

2.5.Обучение регулярного многослойного персептрона

Вструктуре многослойного персептрона, как и любой другой искусственной нейронной сети, можно выделить 2 составляющие:

1)Искусственные нейроны, суммирующие поступающие на их входы сигналы и преобразующие смещённую на величину порога сумму в соответствии с заданной активационной функцией нейрона;

2)Связи между нейронами, реализующие межнейронное взаимодействие в виде сигналов, умноженных на синаптические веса связей.

Схематическое представление модели нейрона с входными связями выглядит следующим образом (рис. 4):

16

x

×w1

w0

 

 

 

 

 

 

 

1

 

 

 

 

 

x2

×w2

Σ

s

f

y

 

xn ×wn

 

Рис. 4. Схематическое представление модели нейрона

n

 

s = wi xi w0 ,

(2.5.1)

i=1

где:

x1, x2 , ... , xn – входные сигналы;

w1, w2 , ... , wn – синаптические веса входных связей нейронов;

w0 – порог срабатывания нейрона (порог активационной функции нейрона);

f (s) – активационная функция нейрона, реализующая тот или иной вид преобразования взвешенной суммы входных сигналов, смещённой на величину порога w0 ;

y= f (s) – выходной сигнал.

Вданной работе для реализации выбранной нейросетевой модели используются следующие наиболее распространённые активационные функции (таблица 1):

Таблица 1. Типы активационных функций нейронов

Выражение

Название

f (s)=

 

 

1

Сигмоидальная

1

+ es

 

 

f (s)= tanh(s)

Гиперболический тангенс

f (s)= s

Линейная

Встандартной (регулярной) версии многослойный персептрон представляет собой сеть

содним входным (сенсорным) слоем, с одним выходным (моторным) слоем и одним или несколькими внутренними (скрытыми, или связующими) слоями нейронов.

17

Далее будем использовать следующие обозначения:

-K – количество скрытых слоёв персептрона,

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

При этом нумерация слоёв персептрона ведётся от 0 до K +1. Нулевому индексу соответствует входной (сенсорный) слой, а индексу K +1 – выходной (моторный) слой.

Характерной чертой многослойного персептрона является его прямонаправленность: информация, преобразуясь, передаётся от входного слоя через скрытые слои к выходному слою. При этом в случае регулярной топологии (рис. 5) узел i в слое k (k =1, 2, ... , K +1)

соединяется посредством синаптических весов wkji со всеми узлами j (k 1) - ого слоя.

x

y1

1

 

x2

y2

xN

yM

Рис. 5. Структура регулярного многослойного персептрона

Входной слой персептрона выполняет функцию приёма и ретрансляции (то есть размножения) входных сигналов x1, x2 , ... , xN на нейроны первого скрытого слоя. У

нейронов входного слоя нет активационных функций и порогов срабатывания. Основное (как правило, нелинейное) преобразование сигналов происходит в скрытых слоях. Выходной слой осуществляет суперпозицию (линейное преобразование) взвешенных входных сигналов и, возможно, некоторое нелинейное преобразование в соответствии с заданной активационной функцией.

Обучение персептрона представляет собой интерактивный целенаправленный процесс изменения значений синаптических весов и порогов активационных функций нейронов, реализуемый некоторой внешней процедурой (алгоритмом обучения) с использованием тренировочных шаблонов (обучение с супервизором) до тех пор, пока сеть не приобретёт желаемые свойства, то есть не будет выполнять требуемый тип преобразования.

18

Тренировочный

шаблон представляет собой пару векторов < X , Y > , где

X = (X1, X 2 , ... , X N )

– вектор известных значений входных сигналов, а Y = (Y1, Y2 , ... , YM )

вектор желаемых значений выходных сигналов.

В качестве вектора желаемых значений выходных сигналов для данной задачи удобно взять M - мерный единичный вектор ei = (0, 0, ... , 0, 1, 0, ... , 0), в котором на i - й позиции стоит единственная ненулевая компонента, соответствующая i - ому классу объектов. При

этом полагается

M =

 

Y

 

, где Y

множество всех классов,

учитываемых в процессе

 

 

распознавания.

 

 

 

 

 

 

P = {<X q, Y q >, q =

 

} в

В процессе

обучения векторы

X q из множества пар

 

1, Q

некотором порядке подаются на входы многослойного персептрона. Для каждого из них оценивается ошибка (разница) между фактическим (yq ) и желаемым (Y q ) выходами

нейронной сети. Эта ошибка может быть вычислена многими способами, в зависимости от метрической функции, используемой для вычисления расстояния между двумя векторами. Всюду далее предполагается, что все векторные пространства являются евклидовыми. В соответствии с этим, величина отклонения фактического выхода многослойного персептрона от желаемого на шаблоне с индексом q имеет следующий вид:

e = 1

 

 

 

yq Y q

 

 

 

2 =

1

M

(yq Y q )2 .

(2.5.2)

 

 

 

 

q

 

 

 

 

 

 

 

 

 

 

i i

 

 

2

 

 

 

 

 

 

 

 

2 i=1

 

 

 

 

 

 

 

 

 

 

 

 

 

Эту величину далее будем называть локальной ошибкой обучения на q- м

тренировочном шаблоне.

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

Интегральная (суммарная) ошибка для всей обучающей выборки P определяется как сумма всех локальных ошибок:

Q

1

Q

M

q

q

2

 

e = eq =

 

∑∑(yi

Yi

) .

(2.5.3)

 

q=1

2 q=1

i=1

 

 

 

 

Она вычисляется после получения всех откликов на поданные шаблоны и вычисления соответствующих локальных ошибок.

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

19

Таким образом, задача обучения многослойного персептрона эквивалентна задаче безусловной оптимизации

min e(z),

 

(2.5.4)

z Rd

 

 

где размерность пространства поиска d определяется по следующей формуле:

 

K

K +1

 

d = Hk Hk +1 +Hk .

(2.5.5)

k =0

k =1

 

Модификация значений настроечных параметров персептрона может осуществляться после подсчёта как локальной (реакция сети на конкретный тренировочный шаблон), так и интегральной ошибки обучения. Однако, поскольку в первом случае очень часто имеет место эффект замещения (то есть когда нейронная сеть запоминает одни образы по мере забывания других), в данной работе было отдано предпочтение использованию на каждой итерации алгоритма обучения суммарной погрешности (2.5.3).

Процесс обучения продолжается до тех пор, пока многослойный персептрон не приобретёт способность выполнять желаемый тип преобразования, заданный набором тренировочных шаблонов P . В результате обучения сеть достигает способности правильно реагировать не только на шаблоны множества P , но и на другие допустимые возмущения, с которыми она никогда не имела дела. В этом состоит так называемое свойство любой искусственной нейронной сети обобщать.

Ошибка в обобщении, как правило, имеющая место, определяется 2 причинами: ограниченностью размера сети, ведущему к недостаточному качеству аппроксимации, и ограниченностью объёма обучающей выборки.

Обучение персептрона, то есть поиск вектора его синаптических весов и порогов z , минимизирующего квадратичную ошибку (2.5.3), как правило, производится алгоритмом обратного распространения ошибки, или BPE-алгоритмом (BPE – Back Propagation Error), впервые описанным в 1974 году одновременно и независимо друг от друга в работах А. И. Галушкина [7] и Пола Дж. Вербоса [8]. Это итеративный градиентный алгоритм обучения, целью которого на каждой его итерации является уменьшение значения функции ошибки (2.5.3). В основе данного алгоритма лежит идея накопления погрешности обучения при движении от выходов нейронной сети к её входам, то есть в обратном направлении.

Для минимизации функции ошибки (2.5.3) в стандартной версии BPE-алгоритма используется один из методов градиентного спуска. Главными недостатками данного семейства методов являются очень медленная (в общем случае) сходимость и возможность зацикливания в окрестности локального минимума задачи (2.5.4) или в случае овражной целевой функции e(z). В существенно меньшей степени приведёнными недостатками

20

обладает семейство квазиньютоновских методов, среди которых наиболее распространёнными являются метод Давидона-Флетчера-Пауэлла и метод Бройдена- Флетчера-Голдфарба-Шенно [16] в силу наиболее высокой вычислительной эффективности при решении различных прикладных задач (поскольку они сочетают в себе сравнительно невысокую трудоёмкость каждой итерации с высокой скоростью сходимости).

Для решения оптимизационной задачи (2.5.4) могут использоваться траекторные методы, для которых единую итерационную схему можно записать в следующем виде:

zk+1 = zk +t

k

Q (e(zk )), z0 Rd , k Z + ,

(2.5.6)

 

k

 

где:

 

 

 

zk , zk+1 точки текущего и очередного испытаний соответственно,

 

tk значение шагового множителя на k - й итерации,

 

Q Rd×d симметричная, положительно определённая матрица.

 

k

 

 

 

В формуле (2.5.6) Q (e(zk ))= d k

(2.5.7)

k

направление локального убывания функции e(z) на k - й итерации.

Как видно из приведённой схемы, тот или иной вариант метода из семейства (2.5.6)

определяется последовательностью матриц {Qk k Z +}, а также способом выбора шагового

множителя tk на каждой итерации. В целях сравнения вычислительной эффективности в ходе разработки программной системы были реализованы и апробированы следующие

методы, принадлежащие семейству (2.5.6):

 

 

 

 

 

1)

Метод наискорейшего градиентного спуска: в нём на каждой итерации полагается

 

 

Q = Ed ;

 

 

 

 

 

 

 

 

 

 

(2.5.8)

 

k

 

 

 

 

 

 

 

 

 

 

 

 

2)

Метод Давидона-Флетчера-Пауэлла:

 

 

 

 

 

 

Q

= Q

+

rk (rk )T

(Qk sk )(Qk sk )T

;

 

 

 

 

(2.5.9)

 

 

 

 

 

 

 

 

k +1

k

 

 

(rk , sk )

(Qk sk , sk )

 

 

 

 

 

3)

Метод Бройдена-Флетчера-Голдфарба-Шэнно:

 

 

 

 

Qk+1 = Qk +

(rk Qk sk )(rk )T +rk (rk Qk sk )T

(rk

Qk sk , sk )rk (rk )T

.

(2.5.10)

 

 

 

 

(rk , sk )

 

 

 

 

 

 

 

(rk , sk )2

 

В формулах (2.5.9) и (2.5.10)

 

 

 

 

 

 

rk = zk+1 zk ,

 

 

 

 

 

 

(2.5.11)

 

sk = e(zk +1 )e(zk ).

 

 

 

 

 

 

(2.5.12)

При этом в начале последних двух методов, как и в первом, чисто градиентном методе, полагается

21

Q = Ed

(2.5.13)

0

 

(вместо единичной можно использовать любую симметричную, положительно определённую матрицу).

Поскольку в знаменателях формул (2.5.9) и (2.5.10) стоят величины, являющиеся бесконечно малыми вблизи стационарной точки задачи (2.5.4), для обеспечения корректности операции деления с плавающей точкой и устойчивой работы алгоритмов для квазиньютоновских методов, определяемых соответствующими формулами, в данной работе используются модифицированные формулы пересчёта симметричных матриц Qk , которые

можно представить в следующем виде (здесь δ

– некоторая положительная,

достаточно

малая величина):

 

 

 

 

Qk +1

= Ed ,

если

только

выполняется неравенство (rk , sk )<δ , в противном случае

применяется формула (2.5.9) (метод Давидона-Флетчера-Пауэлла);

 

Qk +1

= Ed ,

если

только

справедливо условие

[(rk , sk )<δ] [(Qk sk , sk )<δ], в

противном

случае применяется формула (2.5.10) (метод Бройдена-Флетчера-Голдфарба-Шенно).

Что касается способа выбора шагового множителя, то для определённости он

выбирается по правилу одномерной минимизации из полуинтервала (0; 1], то есть

 

tk = arg min e(zk +t d k ) .

(2.5.14)

t (0; 1]

 

Такой диапазон допустимых значений для множителя tk объясняется

двумя

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

Выбор шагового множителя (по-другому – коэффициента скорости обучения) tk по правилу (2.5.14) обеспечивает адаптивную настройку скорости обучения на каждой итерации BPE-алгоритма.

С целью конкретизации BPE-алгоритма и его формального описания найдём выражения, позволяющие вычислять вектор градиента интегральной функции ошибки (2.5.3)

в любой точке пространства Rd .

Для удобства в выкладках сначала выведем формулы для вычисления всех первых частных производных локальной функции ошибки eq (z), а затем получим аналогичные формулы для интегральной функции ошибки e(z).

22

 

 

Вектор градиента eq (z) состоит из компонент 2 видов:

1)

 

e

 

, i =

 

 

,

j =

 

 

 

, k =

 

 

 

 

1, H

k

1, H

k1

1, K +1 – частные производные функции ошибки по

 

wkji

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

синаптическим весам;

 

 

 

 

 

2)

 

e

 

, i =

 

 

, k =

 

 

– частные производные по порогам активационных функций

 

1, H

k

1, K +1

wk

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

нейронов.

Согласно правилу дифференцирования сложной функции, частная производная функции локальной ошибки по весу wkji определяется следующим образом:

eq

 

eq

dyk

sk

 

 

 

=

 

i

i

=δk yk 1

,

(2.5.15)

wk

yk

wk

 

dsk

i j

 

 

ji

 

i

i

ji

 

 

 

где

yik сигнал на выходе i - ого нейрона k - ого слоя;

Hk 1

sik = wkji ykj 1 w0ki – сдвинутая на величину порога взвешенная сумма входных сигналов

j=1

i - ого нейрона k - ого слоя;

δk

=

e

 

dyk

 

 

 

 

i .

 

 

 

yik

 

 

 

i

 

 

dsik

 

 

 

Производная

eq

= Hk +1

eq

k

k +1

 

 

 

 

 

yi

j=1 y j

Следовательно,

k +1

 

k +1

Hk +1

k +1

k +1

 

dy j

 

s j

 

 

 

 

 

= δ j

wij

.

k +1

 

k

ds j

 

yi

j=1

 

 

 

(2.5.16)

(2.5.17)

 

 

Hk+1

+

+

dyk

(2.5.18)

δik = δjk

1wijk

1

 

 

 

ik

 

 

 

=

 

 

 

 

ds

 

 

 

j 1

 

 

 

 

i

 

рекурсивная формула для пересчёта величин δik

с (k +1) - ого слоя на k - й слой, то есть

обратного распространения ошибки.

 

 

Очевидно, что для (K +1) - ого, то есть

выходного, слоя, с которого начинается

обратное распространение ошибки, величины δjK+1

определяются по формуле

δ K +1

=

(yK +1

Y

)

dyKj +1

.

(2.5.19)

 

 

 

j

 

 

j

j

 

dsKj

+1

 

 

Кроме того,

 

 

 

 

 

 

 

 

 

eq

=

 

eq dyk

sk

=δk (1).

(2.5.20)

 

 

 

 

 

i

 

 

i

 

 

wk

 

yk

wk

 

 

 

dsk

 

i

 

 

0i

 

 

i

i

 

 

0i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

23

 

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

 

eq

=δk+1

yk ,

eq

= −δk+1 ,

k = K, K 1, ... , 0 .

(2.5.21)

 

wk+1

wk+1

 

i

j

 

i

 

 

 

ji

 

 

0i

 

 

 

 

 

Для функции интегральной ошибки выражения (2.5.21) по принципу суперпозиции

заменяются на следующие:

 

 

 

 

e

= Q (δik+1 )(q )(ykj )(q ) ,

eq

= −Q (δik+1 )(q ) , k = K, K 1, ... , 0 ,

(2.5.22)

 

wk+1

wk+1

 

ji

q=1

 

 

 

0i

q=1

 

где (ykj )(q) – сигнал на выходе j - ого нейрона k - ого слоя в ответ на тренировочный шаблон

с номером q, поданный на вход нейронной сети, а (δk )(q)

=

eq

 

d(yik )(q)

.

(yik )(q)

 

i

 

 

d(sik )(q)

Теперь можно привести описание BPE-алгоритма в виде последовательности шагов. Для этого будем использовать следующие дополнительные обозначения:

-MinGlobalError – минимальное значение глобальной ошибки обучения;

-Count – максимальное количество итераций обучения;

-GlobalError – значение глобальной ошибки обучения, достигнутое на текущей итерации;

-Accuracy – точность обучения;

-v – рабочая переменная.

Шаг 0. Инициализировать настраиваемые параметры нейронной сети псевдослучайными значениями из отрезка [0; 1].

Шаг 1. MinGlobalError = +∞. Q0 = E d .

Шаг 2. В цикле по переменной k от 1 до Count выполнить Шаг 3 – Шаг 9. После этого перейти на Шаг 11.

Шаг 3. Вычислить вектор градиента функции ошибки e(z) в точке zk по формулам (2.5.22).

Шаг 4. Определить направление поиска по формуле (2.5.7), предварительно пересчитав матрицу Qk по одной из формул (2.5.8) – (2.5.10) (в зависимости от используемого метода оптимизации).

Шаг 5. Определить значение шагового множителя tk по правилу одномерной минимизации

(2.5.14).

Шаг 6. Осуществить коррекцию компонент вектора настраиваемых параметров многослойного персептрона по формуле (2.5.6).

Шаг 7. Определить фактические реакции персептрона на входные сигналы каждого из тренировочных шаблонов обучающей выборки P при скорректированных значениях

24

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