2.4.Нейросетевой подход в распознавании...

Preview:

Citation preview

2.4.Нейросетевой подход в распознавании

образов

Идея:

•моделирование процессов, происходящих в нервной

системе живых организмов при обработке

поступающей информации.

•мозг гораздо быстрее и точнее компьютера может

обрабатывать аналоговую информацию: распознавать

изображения, вкус, звуки, читать чужой почерк,

оперировать качественными понятиями.

Мозг человека состоит из белого и серого веществ:

белое – это тела нейронов, а серое – это

соединительная ткань между нейронами, или аксоны

и дендриты. Мозг состоит примерно из 1011

нейронов, связанных между собой.

Нейрон может иметь до 10000

дендритов. Таким образом,

мозг содержит примерно 1015

взаимосвязей.

Нейроны взаимодействуют

посредством серий

импульсов, длящихся

несколько миллисекунд,

каждый импульс - сигнал с

частотой 1-100 герц.

Нейронная сеть • Совокупность соединенных между собой нейронов;

• Сеть осуществляет преобразование входного

сигнала с рецепторов в выходной, являющейся

реакцией организма на внешнюю среду.

Мозг – система из параллельных «процессоров».

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

Модель кибернетического

нейрона

McCulloch, W. and Pitts, W. (1943)

1x2x

...

dx

1w

2w

...

dw

fy

Вход

ной

си

гнал

Синаптические

веса

Блок суммирования

Блок

преобразования

Выходной

сигнал

1

d

i i

i

y f w x

f – переходная

функция, функция

активации

Потенциал

нейрона

1

2

...

d

x

x

x

Функции активации нейронов

и т.д.

rectifier linear

unit (ReLU)

ЛЛииннееййнныыйй ддииссккррииммииннааннтт ФФиишшеерраа:: 0( ) j j

j

f x sign w x w

Модель линейного персептрона (персептрон Розенблатта):

0( , ) ( )j j

j

f x w w x w ,

где ( ) функция активации (в частности, sign). Можно ввести

0 1x

1x

2x

f

nx

0

1 0

,n n

j j j j

j j

w x w w x w x

Пример. Функции И, ИЛИ, НЕ от булевых переменных 1X и 2X :

1 2 1 2

30 ;

2X X X X

1 2 1 2

10 ;

2X X X X

1 1

10 ;

2X X

([ ] ) – индикаторная функция.

X1

X2 X2 X1

ЗЗааддааччаа ооббууччеенниияя ппееррссееппттррооннаа:: - подобрать веса w так, чтобы ошибка на обучающей выборке была минимальной.

Алгоритм Розенблатта (коррекции ошибок):

Пусть 1,2,...t - номер шага (эпохи);

1. Случайным образом задаются веса (0)w ;

2. По очереди предъявляются объекты выборки;

для каждого объекта ( )ix вычисляется выход (расстояние до разделяющей гиперплоскости с учетом знака)

( ) ( ),i iy w x ;

3. Если ( ) ( ) 0i iy y , то веса не изменяются;

4. Если ( ) 0iiy y , то проводится коррекция (правило Хебба):

( )( 1) ( )iiw t w t x y ,

где 0 - параметр (темп обучения).

При этом будет выполняться: ( ) ( ) ( ) ( ) ( )( 1) ( 1), ( ) ,i i ii i i i iy t y w t x y w t x y x y

( ) ( ) ( ) ( )( ), , || ||;i i i i ii i i iw t x y x y x y y y x

0сдвиг в «правильном»

направлении

5. Повторяются 2)-4) пока не выполнится правило останова: а) веса ( )w t перестали изменяться; или

б) ошибка распознавания стала меньше заданного параметра.

ТТееооррееммаа ((ННооввииккоовв,, 11996622))..

Пусть выборка 1

,N

i i

i

x y

линейно разделима, т.е.

, 0 : ,

i iw w x y для всех 1,...,i N .

Тогда алгоритм Розенблатта находит вектор весов w:

разделяющий обучающую выборку без ошибок;

при любом (0)w ;

при любом темпе обучения 0 ;

независимо от порядка объектов;

за конечное число итераций;

если (0) 0w , то число итераций max 2

1max || ||

it x

.

Правило Розенблатта (“delta-rule”, “error-correcting learning”)

( ) ( )( 1) ( ) i iw t w t x ,

где ( ) ( ) ( )i ii t y y t .

Веса изменяются так, чтобы уменьшить разницу между

выходом (( )iy ) и целевым значением (

( )iy ).

Качество персептрона (суммарная ошибка): 2( ) ( )1 1

( ) ( ) min2 2

i ii

i i

Q w Q y y

чтобы локально минимизировать Q , на каждом шаге нужно

корректировать веса: ( 1) ( ) ij j

j

Qw t w t

w

;

( )

( )( ) ( ) ( )

( )( ) ( )

i

ii i ii i

ij j

Q Q yy y x

w wy

( ) ( )( 1) ( ) i iw t w t x

Направления дальнейшего развития

алгоритма Розенблатта:

• использование произвольной функции потерь

(частота ошибки => риск);

• поиск наилучшего способа инициализации весов;

• изменить порядок рассмотрения объектов:

•а) случайный;

•б) оказывать большее внимание объектам,

которые дают ошибку;

•в) не рассматривать объекты – выбросы;

• изменение темпа обучения (ηt=1/t); скорейший

градиентный спуск; пробные случайные шаги;

Основной недостаток линейного персептрона:

• алгоритм работает только для линейно разделимых

образов

?

Выход: использовать многослойный персептрон

Пример: функция XOR Функция 1 2 1 2[ ]X X X X не реализуется одним

нейроном. Два способа реализации - добавление нелинейного признака:

1 2 1 2 1 2[ 2 1 2 0]X X X X X X ;

- Сеть (суперпозиция) функций И, ИЛИ, НЕ:

1 2 1 2 1 2[( ) ( ) 1 2 0]X X X X X X

Верхние индексы в скобках (m), m=1,2 - номер слоя нейрона.

Для обозначения структуры сети используется кодировка

“n-L-K".

K= число образов.

Структурная

схема

двухслойного

персептрона.

n

1n

Ln

~

~

1L

K

KL

K

Выходные сигналы нейронных слоев:

Функции активации всех нейронов сети одинаковы.

(1)

0

, 1,...,n

l l j j

j

g f w x l L

(2) (2) (1)

0 0 0

, 1,...,L L n

q ql l ql l j j

l l j

y f w g f w f w x q K

Можно ли произвольную функцию представить нейросетью? Утверждение. Любая булева функция представима в виде ДНФ, следовательно, и в виде двухслойной сети.

Решение тринадцатой проблемы Гильберта:

Теорема (Колмогоров, 1957) Любая непрерывная функция n аргументов на

единичном кубе [0,1]n представима в виде суперпозиции

непрерывных функций одного аргумента и операции сложения:

2 1

1 ,1 1

( ,..., ) ( )n n

n k i k ik i

f x x h x

,

где ,,k i kh - непрерывные функции одного аргумента.

С помощью суперпозиции

линейных функций и нелинейной

функции активации можно

аппроксимировать любую

непрерывную функцию с любой

заданной точностью

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

Задача: найти такие веса, чтобы суммарная ошибка

обучения была минимальной

2

( ) ( )

1 1

1( ) ( ) min

2

N Ki i

q qw

i q

Q w y x yΣ

.

ААллггооррииттмм ссттооххаассттииччеессккооггоо

ггррааддииееннттаа::

1.Задать случайные веса (1) (2)( (0), (0)), 1,..., , 1,...,lj qlw w l L q K ;

2.Повторять для 1,2,...t :

3.Вычислить критерий ( )Q w tΣ

;

4.Для каждого i -го объекта ( 1,...,i N ): положим

( ) ( )

( )

( ( ))( 1) ( )

( )

h h

mk mk h

mk

Q w tw t w t

w t

;

5.Продолжать 2)-4), пока либо критерий, либо веса не стабилизируются.

ННааххоожжддееннииее ггррааддииееннттаа –– ттррууддооееммккааяя ооппеерраацциияя..

ММееттоодд ооббррааттннооггоо рраассппррооссттррааннеенниияя оошшииббоокк –– ппооззввоолляяеетт

ээффффееккттииввнноо ееггоо ввыыччиисслляяттьь..

Суммарная ошибка для объекта ( )ix : 2

( ) ( )

1

1( ) ( )

2

Ki i

q q

q

Q y y x y

.

Частная производная:

( ) ( )( ) i i

q q q

q

Q yy y

y

- ошибка для объекта ( )ix на выходе

сети.

Частные производные по выходам скрытого слоя:

2

(2) ( ) ( ) (2)

1 0 1

( ) 1

2

qy

K L Ki i

ql l q q q q ql

q l ql l

Q gf w g y y y f w

g g

( ) (2) ( )

def1

Ki i

q q ql l

q

f w

- ошибка на l -м выходе скрытого слоя,

1,...,l L .

Таким образом, ( )i

l можно вычислить по ( ) , 1,...,i

q q K :

( ) ( ) (2)

1

Ki i

l q q ql

q

f w

.

То есть как бы в обратном направлении:

( )i

l Σ

( )

1 1

i f

( )i

K Kf

...

(2)

1lw

(2)

Klw

Нахождение производной f :

например, для сигмоидальной переходной функции:

2

1 1 1( ) 1 ( ) 1 ( )

1 1 11

u

u u uu

ef u f u f u

e e ee

.

Найдем частные производные по весам (как производные сложной функции):

( )

(2) (2)

( ( )) ( ), 1,..., , 1,...,

q i

q q l

ql q ql

yQ y w Q yf g q K l L

w y w

,

( )

(1) (1)

( ( )) ( ), 1,..., , 0,1,...,il

l l j

l j l l j

gQ g w Q gf x l L j n

w g w

,

где

(2)

0

L

q ql l

l

f f w g

,

(1)

0

n

l l j j

j

f f w x

.

ААллггооррииттмм ооббррааттннооггоо рраассппррооссттррааннеенниияя

1. Задать случайным образом начальные веса (0)h

mkw ;

2. Для 1,2,...t повторять:

3. Для всех объектов , 1,...,

ix i N повторять:

4. Прямой ход: (1) ( )

0

, 1,...,n

i

l l j j

j

g f w x l L

;

(2) ( ) ( ) ( )

0

, , 1,...,L

i i i

q ql l q q q

l

y f w g y y q K

;

2

( )

1

( )K

i

q

q

Q w t

;

5. Обратный ход: ( ) ( ) (2)

1

, 1,...,K

i i

l q q ql

q

f w l L

;

(2) (2) ( )( 1) ( ) , 1,..., , 1,...,i

ql ql q q lw t w t f g q K l L ;

(1) (1) ( ) ( )( 1) ( ) , 1,..., , 0,1,...,i i

lj lj l l jw t w t f x l L j n .

6. Повторять 2)-5) пока либо критерий Q, либо веса w не

стабилизируются.

Достоинства алгоритма

• градиент вычисляется за небольшое число шагов;

• алгоритм можно обобщить на произвольную

функцию потерь и произвольную функцию активации;

• можно обучаться в динамике;

• можно распараллелить процесс обучения.

Недостатки алгоритма

• возможна медленная сходимость; «застревание» в

локальном минимуме;

• зависимость от порядка объектов;

• проблема переобучения;

• непонятно, как задавать архитектуру сети, параметры

алгоритма обучения;

• персептрон – «черный ящик»!

Recommended