Вештачка невронска мрежа![]() Вештачка невронска мрежа - ВНМ (анг. artificial neural network - ANN[1]) е парадигма за обработка на информации која е инспирирана од начинот на кој биолошки нервен систем, како што е мозокот, обработува информации. Клучниот елемент на оваа парадигма е необичната структура на обработувачки информациски систем. Таа е составена од голем број на меѓусебно поврзани елементи за обработка (неврони), кои работат едногласно за да се решат конкретни проблеми. Поим за невронска мрежаВештачката невронска мрежае систем кој е заснован на биолошките невронски мрежи, како што е мозокот. Невроните меѓусебно се поврзани со врски кои се нарекуваат синапси. Секој неврон поседува илјадници врски со други неврони преку кои константно добива сигнали што треба да бидат стигнат до телото на клетката (невронот). Доколку резултантната сума од сигналите надмине одреден дефиниран праг (threshold), преку аксонот се испраќа одговор. Тоа значи дека биолошкиот неврон ги сумира сигналите кои пристигнуваат до него, добиената сума ја споредува со одреден праг и доколку таа го надмине прагот, невронот испраќа одреден излезен сигнал.[2][3] Невронските мрежи со својата извонредна можност за изведување смисла од комплицирани или непрецизни податоци, може да се користат за да се изведат шаблони и да се детектираат трендовите кои се премногу комплексни за да бидат забележани од страна на луѓето или други сметачки техники. Обучена невронска мрежа може да се смета за експерт во категоријата на информациите што и се дадени да се анализираат. Овој експерт потоа може да се користи за да обезбеди прогнози при дадени ситуации во доменот на нашиот интерес, и да одговори на прашања од видот „што ако...?“. Другите предности вклучуваат:
Состојба на активацијаАналогно на биолошката интерпретација, невронската мрежа во контекст на експертните системи претставува модел на пресметки со поврзовен пристап, кој соодветно се состои од множество на обработувачки единки - неврони. Главна одлика на невронските мрежи е состојбата на активација. Состојбата на активација во потесна смисла го претставува излезот од даден јазол, а во поширока означува дали влезот на јазелот бил над граничната вредност, односно дали невронот се активирал. Заради меѓуповрзаноста, во невронските мрежи имаме правило на пропагација кое пропишува колку излезот на даден јазол зависи од индиректните влезови во тој јазол. Во структурна смисла, невронската мрежа се состои од:
Секоја единка извршува релативно едноставна задача: добива влез од соседите или од надворешни извори и го користи ова за да пресмета излезен сигнал кој понатаму се шири (пренесува) до останатите единки. Освен оваа обработка, втора задача на невронот е поставување на тежините. Системот е паралелен, така да повеќе единки може да ги вршат своите пресметки во исто време. Во рамките на невронските мрежи, разликува три типа на јазли:
За време на операциите, јазлите може да се обновуваат синхроно или асинхроно. Кај синхроното обновување сите јазли ја обновуваат својата активација истовремено, додека кај асинхроните, секоја јазол има своја (вообичаено фиксна) веројатност на обнова за време t, и вообичаено само една единка ќе може да изврши активација во единица време. Топологии на невронски мрежиРазликуваме два типа на топологии на невронски мрежи:
Невронски мрежи како класификаториНевронските мрежи имаат одлики кои ги прават многу погодни за користење во експертните системи, заради нивните погодности за создавање на системи за класификација. Некои од тие одлики се:
ПерцептронПерцептронот е вештачки неврон кој моделира биолошки неврон од природата. Тој добива n влезни сигнали кои соодветствуваат на бројот на својства (input features) од податочното множество кое се анализира, ги сумира тие влезни сигнали, го проверува резултатот (споредувајќи го со одреден праг) и според него произведува излезен сигнал. Перцептронот се состои од пондери (weights - wi), процесор на сума (s) и активациска функција (f(s)). На сигналите кои доаѓаат на влезот на перцептронот им се доделуваат пондери (weights) кои најчесто претставуваат реални броеви како и влезните сигнали, така што зборуваме за вкупно n „weighted inputs“, кои се влезни сигнали. Доколку првиот влезен сигнал го означиме со x1, а неговиот пондер со w1 додека i-тиот влезен сигнал е xi со пондер wi, тогаш последниот (n-ти) влезен сигнал е xn, а неговиот пондер е wn. Сумата на сите сигнали кои доаѓаат на влезот на перцептронот претставуваат збир од сите производи на xi и wi, каде вредноста на i се движи од 1 до n.[5][6]
Така добиената сума (S) се проследува како аргумент до активациска функција (f(s)) која врши проверка (споредба) на сумата со одреден праг (θ). Доколку сумата е поголема од прагот (θ), перцептронот на излезот испраќа сигнал 1, додека во обратен случај, кога сумата е помала или еднаква со прагот (θ,) излезниот сигнал на перцептронот е 0, иако во литературата може да се најдат објаснувања за перцептронот каде излезните сигнали се 1 или -1. Притоа, сигналот врши пропагација кон напред (forward propagation), доаѓајќи на влезот на перцептронот, каде се врши пресметка и се извршува активациската функција, за на крајот да биде произведен излезен сигнал.[3]
Перцептрон на едно нивоПерцептроните се наједноставните видови на еднонасочни мрежи. Најраните видови на невронски мрежи се мрежи со перцептрон на едно ниво, кој се состои од еден слој на излезни јазли, влезовите одат директно во излезите преку серија на врски со тежини. Сумата на производите на тежините и влезовите се пресметува во секој јазол, и доколку вредноста е над некој праг (вообичаено 0), јазолот се активира и зазема активирана вредност (вообичаено, 1), спротивно зема деактивирана вредност (типично -1). Неврони со ваков вид на активациска функција се нарекуваат МекКалок-Питс неврони или прагови-неврони. Перцептрон може да се создаде со користење на било кои вредности за активирана и декативирана вредност, сè додека вредноста за прагот лежи помеѓу овие две вредности. Повеќето перцептрони имаат излези 1 или -1 со праг 0, и има некакви докази дека таквите мрежи може да се обучуваат побрзо од мрежите создадени со други вредности за активација и деактивација. Перцептроните може да се обучуваат со едноставен алгоритам за учење што често се нарекува и делта-правило. Алгоритмот ги пресметува грешките помеѓу пресметаниот излез и излезот од примеркот на податоци и го користи тоа знаење за да ги постави пондерите, со тоа имплементирајќи форма на нивно постепено опаѓање. Покрај влезните сигнали кои потекнуваат од својствата на податочното множество коригирани со одреден пондер, перцептронот најчесто добива и уште еден влезен сигнал, познат како „пристрасност“ (bias). Тој типично се третира само како уште еден влезен сигнал и на тој начин може да се додаде во сумата на влезни сигнали.[2][7] Перцептронот обично се користи при класификација на класи што може линеарно да се разделат (linearly separable) и најчесто се употребува при бинарна класификација, во која излезниот сигнал припаѓа на една од две можни класи. Во случај кога вредностите припаѓаат на една од двете класи кои се линеарно раздвојливи, тие физички можат да бидат одвоени со права линија. Во случаите каде постојат бесконечно многу прави кои физички можат да ги одвојат класите, која било права која целосно ги одвојува (perfect separation) е доволна за решавање на проблемот на класификација.[8] Активациските функции ги преведуваат влезните сигнали во излезни сигнали и притоа во процесот користат одреден праг на активација (threshold). Кај перцептронот се користат четири типови активациски функции: unit step (threshold), piecewise linear, сигмоид и Гаусова функција.[3] Тренирање (учење) кај перцептронотДоколку постојат n атрибути што опишуваат одреден ентитет од податочното множество наменето за учење, потребно е да се пронајдат n+1 пондери (n пондери + пристрасност) кои ќе бидат коефициенти во равенката на права, рамнина или хипер-рамнина која ги разделува ентитетите според класите на кои тие припаѓаат. При тренирањето на перцептронот треба да се пронајде бараната права/рамнина/хипер-рамнина која точно ќе подели две класи, на тој начин што се вршиме приспособување на пондерите и на пристрасноста. Перцептронот се тренира за да даде одговор на секој влезен вектор (сигнал) соодветен со посакуваната вредност од 0 или 1. Податочното множество кое се користи за тренинг најчесто има повеќе атрибути за дадениот случај, така што влезниот сигнал може да се гледа и како вектор кој претставува еднодимензионална низа. Доколку такво решение постои (доколку податоците се линеарно сепарабилни), теоријата за перцептронот вели дека тоа ќе биде пронајдено за конечен временски период.[3][7][8] Учењето (тренирањето) на перцептронот се спроведува според следниов алгоритам:[3]
Притоа, едно целосно изминување (итерација) на сите случаи од податочното множество за тренинг се нарекува „епоха“. Според тоа, постапката за тренирање на перцептронот е таква што векторите од податочното множество за тренинг треба да бидат предадени на влезот на перцептронот, последователно еден по еден. Доколку сигналот кој се добива на излезот од перцептронот е точен (предвидениот резултат е ист со познатиот резултат од тренинг множеството), тогаш не се прават никакви промени. Во спротивно се применува „правилото за учење на перцептронот“ кое врши исправка на пондерите и на пристрасноста.[3] Тренингот е завршен кога за сите тренинг-вектори перцептронот ќе изврши точна класификација (нема да се појави грешка), или пак ќе истече времето (бројот на епохи) предвидено за тренинг. Кога е извршен тренингот на перцептронот, доколку на влезот се донесе тренинг-вектор (вектор од податочното множество за тренинг), тогаш на излезот ќе биде извршена точна класификација. Доколку, пак, се донесе нов вектор на влезот, кој не е дел од податочното множество за тренинг, мрежата се стреми кон тоа да изврши генерализација, одговарајќи со излезен сигнал, сличен на излезните сигнали добиени од тренинг-векторите кои се блиски со новиот, непознат вектор.[8] Перцептрон на повеќе нивоаОваа класа на мрежи се состои од повеќе слоеви на пресметковни единки, вообичаено поврзани со еднонасочни врски. Секој неврон во еден слој има директна врска со неврон во следниот слој. Во многу апликации, единките на овие мрежи применуваат сигмоидна функција како активациска функција. Универзалната апроксимативна теорема за невронски мрежи тврди дека секоја функција која може да мапира R -> R може да биде приближно пресметана со перцептрон на повеќе нивоа со само еден скриен слој. Овој резултат се однесува само на одредени класи на активациски функции, како на пример, за сигмоидните функции. Еднослојниот перцептрон (single layer perceptron, SLP) е линеарен класификатор. Оттука, ако класите не се линеарно сепарабилни, процесот на учење никогаш нема да достигне момент каде сите случаи се соодветно класифицирани. Во тој случај, доколку не постои услов за прекинување на процесот на учење (ограничување на бројот на итерациите), алгоритамот на перцептронот ќе се извршува бескрајно, бидејќи не постои решение на проблемот. Најпознат проблем кој ја прикажува неможноста на перцептронот да решава проблеми каде се сретнуваат класи кои не се линеарно сепарабилни, е проблемот на XOR. Имено, логичката XOR-порта на излезот ќе даде сигнал 1 само ако двата влезни сигнали се меѓусебно различни (0 и 1 или 1 и 0). Во спротивно (ако на влезот доаѓааат сигнали 0 и 0 или 1 и 1), излезниот сигнал на XOR-портата ќе биде 0. Тогаш е невозможно да се постави права која ќе ги одвои случаите според класата на која припаѓаат.[9] За решавање на проблемите од типот на XOR може да се искористи алгоритамот на повеќеслоен перцептрон (multi-layer perceptron) со пропагација на грешка кон назад (back-propagation). Повеќеслојниот перцептрон ја има истата структура како и еднослојниот перцептрон, со таа разлика што има еден или повеќе скриени слоеви. Влезниот слој е составен од сигнали кои доаѓаат од податочното множество, додека пак секој јазел од скриениот и излезниот слој претставува посебен перцептрон. Карактеристично тука е што како активациска функција (activation/transformation function) се користи сигмоидната функција, наместо threshold-функцијата.[10][11] Процесот на активација кај секој јазол (перцептрон) е истиот како кај еднослојниот перцептрон, т.е. се користат влезните сигнали и нивните пондери за да се пресмета пондерираната сума која се предава на активациската функција. Истото се случува и кај јазлите од скриениот слој, кои добиваат сигнали од влезниот слој, додека пак излезните сигнали кои ги произведува скриениот слој претставуваат влезни сигнали за јазлите (јазолот) на излезниот слој.[9][12] Пропагација кон назад (Backpropagation)Кај назадното патување се користи грешката при излезот на излезниот слој (output error – разликата помеѓу предвидениот излез и саканиот излез), за да се поправи грешката на пондерите на влезните сигнали кај излезниот слој. Исправката се врши на пондерите на сигналите кои доаѓаат од скриениот слој и влегуваат во излезниот слој. Истата постапка се извршува понатаму кај секој од јазлите од скриениот слој, така што се пресметува грешката при излез и таа се користи за поправање на пондерите кои ги добиваат влезните сигнали. На тој начин, грешката шири низ слоевите движејќи се од излезниот слој кон влезниот слој. Сето тоа е овозможено со употребата на сигмоидната функција, како нелинеарна активациска функција која е диференцијабилна.[13] Учење кај невронските мрежиУчењето кај невронските мрежи вклучува модификација на тежините на врските според некое изменето правило. Главната идеја е тоа што ако јазлите ј и k се активни истовремено, нивната врска ојакнува. Учењето претставува пресликување од Х во Y и модификација на врските. Постојат два начина на модификација на врските во невронските мрежи:
Повратни мрежиКај повратните мрежи среќаваме дводимензионален податочен тек (јамки). Џорданова мрежаЕдноставната повратна мрежа која е варијација на перцептронот на повеќе нивоа се нарекува Џорданова мрежа. Трислојна мрежа се добива со додавање на повратни врски од излезните единки до т.н. состојбени единки со фиксирана вредност на тежините на 1. Скриениот слој е поврзан со врските од овие единки. При секој чекор влезот се пренесува преку стандарден еднонасолен начин, и потоа се применува правилото за учење со обратно раширување (backpropagation). Фиксните повратни врски резултираат со одржување на копија од вредностите на претходните вредности од скриениот слој. Кај потполно повратна мрежа, секој неврон добива влез од секој друг неврон во мрежата. Овие мрежи не се ангажирани во слоеви. Вообичаено само подмножество на неврони добиваат надворешни влезови, а друго множество на неврони го репортира излезот надвор од мрежата и го враќа кон сите неврони. Овие влезови и излези ја изведуваат функцијата на влезни и излезни слоеви кај еднонасочните. Елманова мрежаКај Елмановата мрежа повратните врски се решаваат исклучиво во скриените слоеви. Хопфилдова мрежаХопфилдова мрежа е комплетно поврзана мрежа од N јазли, каде сите јазли се истовремено и влезни и излзени. Библиографија
Наводи
|
Portal di Ensiklopedia Dunia