Лекция многослойни инм без обратна връзка. Алгоритъм за



Дата31.12.2017
Размер152.58 Kb.
#38434
ТипЛекция




ЛЕКЦИЯ 7. МНОГОСЛОЙНИ ИНМ БЕЗ ОБРАТНА ВРЪЗКА. АЛГОРИТЪМ ЗА

ОБУЧЕНИЕ НА СКРИТИ СЛОЕВЕ. ОБРАТНО

РАЗПРОСТРАНЕНИЕ НА ГРЕШКАТА.
Първоначално развитието на многослойните ИНМ е било задържано от липсата на подходящ алгоритъм за обучение на скритите слоеве. Алгоритмите познати дотогава (алгоритъм на Хеб или Делта-алгоритъма) изискват знанието на желания изход на обучаваните неврони, което за невроните от скрития слой е невъзможно. От друга страна скритите слоеве съществено подобряват работата на мрежата и я правят по-гъвкава за решаване на сложни задачи поради междинните представяния които възникват в скритите слоеве. Качествено новите свойства на мрежите със скрити слоеве се виждат и от примера за решаване на проблема XOR, който не може да се реши от еднослойна мрежа, но лесно се решава от двуслойна мрежа.

След разработване на алгоритъма обратно разпространение на грешката (ОРГ) през 1986 г. от Румелхарт, Хинтон и Уилиямс правите многослойни мрежи се развиват интензивно и понастоящем около 70% от практическите приложения на ИНМ се реализират с помощта на този алгоритъм.

АРХИТЕКТУРА

На фиг.1 е показана схематично структурата на ИНМ с един скрит слой, но скритите слоеве могат да бъдат повече от един. Показани са всички връзки само за i-ия неврон. Останалите неврони са свързани по същия начин. Могат да се забележат следните особености:

-Всеки неврон от скрития слой получава информация от всички входове. Изходната стойност се подава на входовете на всички неврони от следващия слой т.е. имаме пълна свързаност напред.

-Невроните от един слой не са свързани помежду си нито сами със себе си. Ако k l 0 не е възможно също l k 0 т.е. връзките са еднопосочни. При такава архитектура затворените цикли на информационния поток са изключени.

-Изходните стойности на скрития слой дефинират едно междинно представяне {X’} на входния вектор {X}. Това представяне се нарича скрито тъй като за него не може да се съди от изходната информация {Y}. Векторът {X’} разкрива някои характерни особености на входната информация.

фиг.1 Структура на многослойна ИНМ без обратна връзка

СВОЙСТВА НА НЕВРОНИТЕ


  1. Входната функция се дава от обичайната претеглена сума на входовете:

i = I j Xj + i за скрития слой

k = k l X’l + k за изходния слой

2) Функция на преноса. В дадения случай към ФП има две основни изисквания. Да бъде нелинейна фунция и да бъде диференцируема функция. Първото изискване следва от това, че ако ФП е линейна резултатът на изхода на мрежата ще бъде суперпозиция от входните сигнали и тогава многослойната структура може да се сведе до еднослойна т.е. губят се междинните представяния. Второто изискване следва от същността на алгоритъма ОРГ, при който се използват първите производни на функциите. Една функция, която често се използва като ФП в мрежите с ОРГ е функцията на Ферми:

Y = 1/[1+exp(-)]

Където  е параметър на нелинейност

ОБУЧЕНИЕ -АЛГОРИТЪМ ОБРАТНО РАЗПРОСТРАНЕНИЕ

НА ГРЕШКАТА (ОРГ)

Преди да опишем алгоритъма математически ще обясним идейно действието му както е показано на фиг.2. Цикълът на обучение може да се раздели на три фази:

1) В началото на входа на мрежата се подава входния вектор X, който е входен вектор за първия слой. Информацията се разпространява напред през всички слоеве докато на изхода се появи изходния вектор Y. Полученият изход се сравнява с желания изход D(X) и се изчислява грешката на изходните неврони = D(X) - Y.



фиг.2 Схема на действие на алгоритъма ОРГ.

2) Втората фаза включва изчисляването на грешката на невроните от предишния слой като се знае грешката на по-горния слой и стойностите на връзките т.е. наподобява се движение на грешката отпред назад, от изхода към входа. При това изходната грешка се разпределя между невроните от предходния слой според “вината” им за тази грешка. Всеки неврон от скрития слой получава такава част от грешката на следвашите неврони, която е пропорционална на приноса на съответния неврон към реалния изход на следващия слой.

3) Третата фаза представлява обичайната корекция на връзките, която е пропорционална на грешката на неврона, на чийто вход е разглежданата връзка.

Характерно за правите многослойни ИНМ, обучавани с алгоритъма ОРГ е, че при обучението невроните от скритите слоеве се специализират да разпознават характерни особености на входната информация. Ако дадената особеност присъства във входните сигнали съответния неврон се активизира и дава своя принос към общия изход. Когато характерната особеност отсъства съответния неврон остава пасивен. Така изходния вектор, чийто компоненти са сума от изходите на невроните от скрития слой (слоеве) представлява своеобразна карта на специфичните детайли, разпознати от скритите слоеве.
Математическо описание на ОРГ

Алгоритъмът ОРГ принадлежи към обучението с надзор или с критик, тъй като се използват примерни тренировъчни входно-изходни двойки вектори X D(X), където  =1,2,3...p е индекса на съответната тренировъчна двойка. Основен критерий при обучението ОРГ е да се минимизира средноквадратичната грешка дефинирана както следва:

E =(1/2)  [D(X) - Y(X)]2 ,

където сумирането е по всички тренировъчни образци. Y(X) е реалният отклик на изхода на мрежата при подаден вектор X на входа, а D(X) е правилния или желания отклик на мрежата. Очевидно грешката от -ия образец е:

E =(1/2) [D(X) - Y(X)]2.

Съответно пълната грешка е: E =  E.

Функцията Е трябва да се минимизира спрямо връзките затова се използва метода на градиентно спускане по кривата Е(к j) т.е. промяната на връзките се дефинира така :

к j = -(Е/к j)

Полезно е да дефинираме понятието грешка на к-ия неврон по следния начин:

к = -(Е/ к )

т.е. к е мярка за промяната на Е при дадена промяна на ефективния вход.

Целесъобразността на така дефинираната грешка се вижда ако разпишем основния алгоритъм за промяна на връзките както следва:

к j = -(Е/ к ) (к/к j) =- к Xj

Вижда се, че алгоритъма с минимизиране на средноквадратичната грешка може да се сведе до един обобщен делта-алгоритъм, където вместо обичайната грешка (Dк - Yк ) е използвана дефинираната по-горе грешка к.

В частния случай когато невронът е линеен двете грешки съвпадат с точност до постоянен множител т.е. к= (Dк - Yк ). Този резултат лесно се получава след пресмятане на производната. От тук се вижда още един аргумент, че скритите неврони не могат да бъдат линейни, тъй като ако са линейни в обучението трябва да участва желания изход, който за скритите слоеве е неизвестен.

Преди да започнем пресмятането на грешките за различните слоеве е полезно да формулираме още едно представяне на грешката к чрез функцията на преноса Yк = f(к), която е еднаква за всички неврони от един слой.

к =-(Е/ к )= =-(Е/Yк ).(Yк/ к )=- f’(к).(Е/Yк ).

В това представяне грешката се определя от изходната стойност на неврона.



а) Изчисляване на грешката к за невроните от изходния слой

Грешката получена от един образец E може да се разложи на сума от грешките на всички неврони от изходния слой както следва:

E =(1/2) (D - Y)2 = (1/2) k(Dk - Yk)2 .

Сега лесно можем да изчислим производната (Е/Yк ):

(Е/Yк )=-(Dk - Yk) и да получим следния израз за грешката на един неврон в изходния слой:

к = (Dk - Yk) f’(к)



б) Изчисляване на грешката к за невроните от скрития слой

Очевидно, при изчисляване на (Е/Yк ) трябва да избегнем израза за желания изход Dk , който не е дефиниран за скрития слой.

В израза за ефективният вход на изходния слой участват изходните стойности на скрития слой Yk, които са входни стойности за изходния слой:

l = lk Yk.

Тук сумирането е по изходите на невроните от скрития слой т.е. броя на събираемите е равен на броя на невроните от скрития слой. От друга страна можем да представим производната (Е/Yк ) като сума от производните на съставни функции както следва:

(Е/Yк ) =l(Е/l ) (l /Yк ) = - ll (l /Yк ) = - ll .l k

Тук сумирането е по всички неврони от изходния слой тъй като изходната грешка Е може да се разложи на сума по всички изходни неврони. В крайна сметка получаваме следния интересен израз за грешката на скритите неврони:

к = f’(к) ll .l k



фиг.3 Грешката на к-ти неврон от скрития слой

Вижда се, че грешката на к-тия неврон от скрития слой е равна на сумата от грешките на невроните от изходния слой претеглени с връзките от к-тия неврон от скрития слой (виж фиг.3) умножена с производната на функцията на преноса.

Приема се, че връзките към изходния слой още не са актуализирани от грешката на изхода.

В резюме един цикъл на алгоритъма ОРГ се състои от следните стъпки:

I. Изчисляване на сигналите, разпространяващи се напред

1) Подаваме на входа на мрежата един тренировъчен образец X.

2) Изчисляваме ефективния вход към произволен к-ти неврон от скрития слой като сумирането е по всички входове:

к = k l Xl

3) Изчисляваме изходната стойност на к-тия неврон от скрития слой:

Yк =f(к )

4) Изчисляваме ефективния вход на произволен i-ти неврон от изходния слой като сумирането е по всички скрити неврони:

i = i k Yk

5) Изчисляваме изходната стойност на i-ти неврон от изходния слой, която съвпада с i -ия изход на мрежата:

Yi =f(i )

II. Изчисляване на грешките, разпространяващи се назад.



1) Изчисляваме грешката на i-ия неврон от изходния слой:

i = (Di - Yi) f’(i)

2) Изчисляваме грешката на к-тия неврон от скрития слой:

к = f’(к) ll .l k

Сумирането е по изходните неврони, а стойностите на връзките са преди актуализацията от грешката на изходните неврони.

III. Корекция на връзките

1) Актуализираме връзките към изходния слой:

i k (t+1) =i k (t) + i Yk ,

където индексът i варира по всички неврони от изходния слой, а индексът k варира по невроните от скрития слой. Началните стойности i k (0) се избират малки случайни числа.

2) Актуализираме връзките към скрития слой:

k l (t+1) =k l (t) + k Xl ,

където индексът k варира по всички неврони от скрития слой, а индексът l варира по всички входове. Редът по който се променят връзките в даден слой е без значение.

Извършените операции са представени схематично на фиг.4. Цикълът се повтаря след като на входа се подаде нов тренировъчен образец.


Неврони

Сигнали

Грешки

Корекции на

връзките


Изх. Слой

i-ти неврон










wik







Скрит слой

k-ти неврон









wkl








Входен слой

l-ти неврон










фиг.4. Схема на разпространение на сигналите напред и на

грешките назад в алгоритъма ОРГ.

Фактори влияещи на обучението ОРГ:

Алгоритъмът ОРГ, прилаган в класическия си вариант е доста бавен и това води до трудности когато мрежата трябва да се обучава от външни сигнали постъпващи в реално време и да реагира бързо. Затова има различни техники за ускоряване на обучението или за друго оптимизиране архитектурата на мрежата. Най-често стремежът е да се ограничи броя на невроните до онзи минимум който позволява да се изпълнява задачата. Това води до по-бързо изчисление, по-бързо обучение, а също и до по-добра способност за обобщаване тъй като колкото по-проста е една мрежа толкова по-добре обобщава. Обобщаването е способността на мрежата да предсказва точно изходите Y, когато входовете не принадлежат на тренировъчния комплект, с който се извършва обучението.

1) Формата на функцията на грешките Е(i k).

В описаният алгоритъм връзките се коригират след определяне грешките от един образец т.е. “пример след пример”. Възможен е и друг подход, при който връзките се променят след сумиране грешките от всички примери. Първият подход е по-гъвкав тъй като спускането по кривата на грешките Е(i k) става плавно. Допълнително подобрение на алгоритъма се получава, ако примерите се избират в случайна последователност, а не винаги в един и същи ред. Така пътя в пространството на грешките става стохастичен и по-лесно преодолява особени точки или области показани на фиг.5. Тази стратегия трябва да се прилага в случаите когато примерите имат повтарящи се елементи или области с равномерно разпределение.

Функцията Е(i k) може да бъде със сложна форма(фиг.5). Процесът на обучение може да блокира в локален минимум, което води до лоши решения. Области където наклонът е малък или водоравен могат да доведат до силно забавяне или спиране на обучението.

За да се избегнат тези капани се прилагат различни техники. Най-често се въвежда шум във вид на малки случайни флуктуации в стойностите на връзките или на входните сигнали. Както вече споменахме подаването на учебните примери в случаен ред също помага.



фиг.5 Вид на кривата на грешките Е(i k).

2) Архитектурата на мрежата също силно влияе на скоростта и качеството на обучението.

Има различни подходи за оптимизиране на архитектурата:

-Генетичният алгоритъм използва идеята добрите структурни блокове да имат по-голяма вероятност за оцеляване и за комбиниране с други добри структури получени от други опити.

-Има опити за трениране на архитектурата (не само на връзките), но това изисква големи компютърни мощности.

-друга възможност е ИНМ сама да отстранява ненужните връзки в процеса на обучение. Това може да се реализира като се въведе тенденция към затихване на връзките. В такъв случай връзките които не получават подкрепа от активни неврони ще изчезнат. Например в алгоритъма на обучение може да се използва формулата:

k l (t+1) =(1- ) k l (t),

където  е число между нула и единица. Така в процеса на обучение стойностите на връзките намаляват и оставт само най-силните връзки. Могат да се въведат и по-сложни функции на затихване, например ако  също е функция на връзките от вида:

=1/(1+ 2k l)2

В този случай силните връзки затихват по-бавно от слабите.

-понякога е полезно да се отстранят ненужните неврони. Може да се започне с излишък от скрити неврони и последователно да се отстраняват някои от тях тъй като в затихването на връзките участват и изходните стойности на невроните. Тогава връзките на невроните, които систематично дават малки изходни стойности ще изчезнат и съответните неврони ще отпаднат от мрежата.

-съществува и обратния подход. Започва се с малък брой неврони в скрития слой и се добавят нови докато задачата започне да се изпълнява задоволително.

ПРИЛОЖЕНИЯ НА АЛГОРИТЪМА ОРГ

Алгоритъмът ОРГ има множество приложения поради общия си характер на обучение на многослойни ИНМ без обратна връзка.

1) Решаване на проблема “четност” като многомерно обобщение на проблема XOR.

Нека имаме N-мерен вход, N скрити неврона и един изходен неврон (фиг.6). Цел на задачата е да получаваме на изхода 1-ца ако на входа имаме нечетен брой единици и нула ако на входа имаме четен брой единици. При избраната архитектура показана на фиг.6 за N=4 изходът на

i-тия скрит неврон ще бъде 1-ца ако на входа имаме i на брой единици. Останалите неврони ще са нули. От своя страна изходният неврон ще получи изходна стойност 1-ца ако активният неврон е нечетен и 0 ако активния неврон е четен.

Връзките на изходния неврон са избрани -1 за четните неврони и +1 за нечетните неврони. Вижда се че този проблем при N=2 се свежда до проблема XOR. На пръв поглед тази задача е лесна, но това е един труден проблем за повечето ИНМ тъй като промяна на само една компонента на входния вектор води да класифициране в друг клас. По принцип промяната на даден процент от входните компоненти не трябва да променя класа на класифициране.

фиг.6 Двуслойна ИНМ за решаване на проблема “четност”

2) Машина за четене на текст - NET talk.

Едно от първите сериозни приложения на алгоритъма ОРГ е проекта NET talk, реализиран от Сейновски и Розенберг през 1986 г. Цел на проекта е да се превърне текст, записан в ASCII -код, във фонеми и с помощта на синтезиращ чип, усилвател и високоговорител да се прочете написания текст с разбираема, артикулирана реч. Възможните знаци подавани на входа са 26-те букви на английската азбука плюс три знака от пунктуацията или общо 29 знака. Понеже всеки знак се разглежда в контекста на предишните три знака и на следващите три знака на входа се подават и анализират 7 знака, но решение как да се произнесе се взима само за средния знак. След фиксирано време текстът се премества надясно с една стъпка и се произнася следващата буква. В изходния слой са кодирани 26 фонеми и три артикулации (стоп, край на думата, продъджава). Възможните входни комбинации са 7x29=203. Всяка комбинация активира един изходен неврон (една фонема). Връзките са около 1800 на брой. Първият текст е съдържал протокол на думите произнесени от деца. Вторият текст е съдържал думи случайно избрани от речника. В процеса на обучение при определяне на грешката на изходния слой се използва фонологичната транскрипция на думите, която служи като желан изход с който се сравнява реалния изход.



фиг.7 Проектът NET talk

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

- в началната фаза фонемите се разделят само на два класа - гласни и съгласни. Вътре в класовете фонемите са смесени. Чува се нечленоразделно бълбукане както при бебетата.

-при втората фаза границите на думите се долавят като важна особеност на речта. Чуват се псевдодуми.

-След около 10 епохи (една епоха съответства на преминаване през мрежата на всички тренировъчни думи) възниква разбираема реч, която става все по-ясна в процеса на обучение.

Интересно е да се сравни проекта NЕT talk с един друг проект DEC talk създаден на базата на лингвинистични правила. Проектът NЕT talk се нуждае от 16 часа обучение за да постигне точност над 90%. Проектът DEC talk е бил създаван от десетки експерти в продължение на едно десетилетие. Очевидни са предимствата на ИНМ когато трябва да се постигне бърз макар и не съвършен успех.

3) Разпознаване на акустични сигнали в подводната ехография.

Друго интересно приложение на алгоритъма ОРГ е било използвано в експеримента на Гормон и Сейновски, които са използвали двуслоен перцептрон за разпознаване на акустични сигнали отразени от два вида обекти разположени на дъното на океана - скали и метални цилиндри. Използваната мрежа е имала 60 входа, 2 изхода съответстващи на двата класа обекти, и вариращ от 0 до 24 брой скрити неврони. Аналоговият акустичен сигнал S(t) във временната област е бил преобразуван с Фурие трансформация в честотната област. Фурие трансформацията е линейно преобразование и не е съществена от гледна точка на невронната обработка. Предимството е, че в честотната област могат да се използват по-малък брой входове. Без скрити неврони мрежата бързо достига 80% точност, която не може да се подобри с по-продължително обучение. При 12 скрити неврона точността макар и бавно достига почти 100%. Увеличението на скритите неврони над 12 не води до забележимо подобрение работата на мрежата.

За пълнота ще споменем още няколко приложения на алгоритъма ОРГ без разбира се списъка да е пълен.

-разпознаване на почерци

-идентифициране на подводни лодки по характерни шумови характеристики.

-симулиране на игри без точен алгоритъм за анализиране на ходовете. Например програмата за игра на табла базираща се на ИНМ е победила всички други компютърни програми за игра на табла.

-управление на автомобил. Използват се входни сигнали от видеокамера, с които мрежата се обучава достатъчно бързо за да може да даде команда за реакция. Бързината на обучение ограничава скоростта на автомобила, която в проведения експеримент не е надвишавала 5-10 км\час.

-интерпретиране на експериментални данни получавани от различни методики за изследване и окачествяване на материали.

-при използване на най-модерни технологии и усъвършенствани варианти на алгоритъма ОРГ е била разработена система позволяваща на изтребителите F-15 да стабилизират полета си автоматично само 2 секунди след като са загубили при обстрел части (достатъчно малки) от корпуса.



Общи характеристики на мрежите обучавани с ОРГ:

Обща слабост на алгоритъма ОРГ е сравнително дългото време за обучение, а също така трудното експериментално налучкване на оптималния за дадена задача брой скрити неврони. Състоянието на връзките има по-голямо значение отколкото при другите модели. Малки случайни промяни в стойностите на връзките рязко намаляват точността на работа на мрежата, но при кратко допълнително обучение мрежата бързо възстановява предишните си възможности.



Основното предимство на алгоритъма ОРГ е, че няма никакви изисквания или ограничения за вида на входните образци. За сравнение нека си спомним, че при правилото на Хеб входните образци трябва да са ортогонални. При делта правилото и правилото на перцептрона входните образци трябва да са линейно разделяеми(отделими). При асоциатора на Хеб или на Хопфилд добре се заучават само некорелирани образци т.е. такива с малко припокриване.
Каталог: ~tank -> NeuralNetworks
~tank -> Лекция 2 Типове данни. Класове и обекти. Числено интегриране
NeuralNetworks -> Лекция състезателно обучение без надзор. Самоорганизиращи се карти на кохонен
~tank -> Основи на езика fortran
~tank -> Програма От командната линия, след като сме влезли в директорията където е файла с фортран-код
~tank -> Програма за изчисляване на средна стойност
NeuralNetworks -> Лекция мрежи с асоциативна памет. Еднослоен автоасоциатор и модел на хопфилд
NeuralNetworks -> Лекция строеж и свойства на биологичните неврони като


Сподели с приятели:




©obuch.info 2024
отнасят до администрацията

    Начална страница