Metódy klasifikácie a prognózovania. Neurálne siete. Tréning neurónových sietí

  • 28.06.2019

Vyžaduje školenie, inak je nepravdepodobné, že sa dosiahne správny výsledok. Existuje niekoľko metód na trénovanie neurónovej siete.

Napriek tomu sa medzi nimi rozlišujú tri najzaujímavejšie metódy, sú to metódy spätného a elastického rozmnožovania, ako aj genetická analýza. Povedzme si o nich podrobnejšie.

Táto metóda je hlavná a má iný názov - Backpropagation, pretože používa algoritmus gradientového zostupu. To znamená, že pohybom po gradiente sa vypočíta lokálne minimum a maximum funkcie. Pochopenie tejto metódy povedie k tomu, že ďalšia nespôsobí ťažkosti.

Ak znázorníme funkciu ako graf, ktorý určuje závislosť chyby od hmotnosti synapsie, tak na tomto grafe je potrebné nájsť bod s minimálnou chybou a s maximálnou. Každá váha musí mať navyše svoje grafické znázornenie a pre každú z nich je potrebné vypočítať globálne minimum.

Samotný gradient je vektorová hodnota, ktorá definuje smer a strmosť svahu. Gradient sa nájde pomocou derivácie funkcie v požadovanom bode. Akonáhle je v určitom bode s hodnotou hmotnosti, ktorá je rozložená náhodne, vypočíta sa gradient a určí sa smer klesania a tak ďalej v každom ďalšom bode, až kým sa nedosiahne lokálne minimum, ktoré neumožňuje ďalší zostup.

Aby ste sa s týmto problémom vyrovnali, musíte nastaviť požadovanú hodnotu okamihu, ktorá vám umožní prekonať časť grafu a dosiahnuť požadovaný bod. Ak je táto hodnota nedostatočná, potom nebude možné vydutie prekonať, v prípade nastavenia vyššej hodnoty ako je potrebné je šanca prekĺznuť cez globálne minimum.

Okrem momentu zrýchlenia existuje aj koncept, ktorý určuje celkovú rýchlosť učenia siete. Táto hodnota, rovnako ako predchádzajúca, je hyperparametrom a je vybraná metódou pokus-omyl. Optimálny variant nie je nikdy vopred známy, dá sa zistiť iba vykonaním niekoľkých tréningov a nastavením hodnoty zakaždým správnym smerom.

Teraz môžete prejsť priamo na metódu výučby a určiť, čo to je. V procese prijímania informácií ich neurónová sieť postupne prenáša z jedného neurónu na druhý prostredníctvom synapsií, až do okamihu, keď sa informácia objaví na výstupnej vrstve a ako výsledok je vydaná. Táto metóda sa nazýva dopredný prenos.

Po prijatí výsledku sa vypočíta chyba a na základe nej vykonáme postback. Podstatou ktorej je postupná zmena hmotnosti synapsií počnúc výstupnou vrstvou a smerom k vstupnej vrstve. V tomto prípade sa hodnota hmotnosti zmení smerom k najlepšiemu výsledku.

Na použitie tejto metódy učenia sú vhodné iba tie aktivačné funkcie, ktoré možno diferencovať. Keďže spätné šírenie sa vypočíta tak, že sa vypočíta rozdiel výsledkov a vynásobí sa deriváciou funkcie zo vstupnej hodnoty.

Pre úspešné vykonanie tréningu je potrebné propagovať prijatú chybu na celú váhu siete. Výpočtom chyby na výstupnej úrovni a tiež tam môžete vypočítať deltu, ktorá sa bude postupne prenášať medzi neurónmi.

Potom je potrebné vypočítať gradient pre každé odchádzajúce spojenie. Potom, keď máme všetky potrebné údaje, je potrebné aktualizovať váhy a vypočítať, vďaka funkcii MOP, hodnotu, ktorá sa stane veľkosťou zmeny.

Zároveň nezabúdajte na moment a rýchlosť učenia.

Jedna iterácia MOP poskytuje malé percento zníženia chýb, takže je potrebné ich opakovať znova a znova, kým sa indikátor chyby nepriblíži k 0.

Elastická metóda šírenia

Nasledujúca metóda tréningu siete je Resilient propagation alebo Rprop. Predchádzajúci spôsob učenia prezentovaný vyššie má nevýhodu veľkej časovej investície do procesu učenia, čo je nevhodné, ak potrebujete získať rýchly výsledok.

Na urýchlenie procesu bolo navrhnutých mnoho ďalších algoritmov, ktoré tento proces urýchlia. Jedným z nich je súčasná metóda.

Tento algoritmus používa epochové učenie ako základ a na úpravu váh používa iba znaky špeciálnych derivácií prípadu. Používa sa určité pravidlo, podľa ktorého sa vypočíta hodnota korekcie hmotnosti.

Ak v tejto fáze výpočtov derivácia zmení svoje znamienko, znamená to, že zmena bola príliš veľká a miestne minimum sa minulo a malo by sa vykonať rollback, to znamená, že váha by sa mala vrátiť do opačnej polohy a veľkosť zmeny by sa mali znížiť.

Ak sa znamienko derivácie nezmenilo, potom sa veľkosť zmeny hmotnosti naopak zvyšuje pre väčšiu konvergenciu.

Ak sú hlavné parametre korekcie hmotnosti pevné, je možné vyhnúť sa nastaveniam globálnych parametrov. A to bude ďalšia výhoda súčasnej metódy oproti predchádzajúcej. Pre tieto parametre sú odporúčané hodnoty, avšak na ich výber neexistujú žiadne obmedzenia.

Aby váha nenabrala príliš veľké alebo malé hodnoty, používajú sa nastavené limity korekčnej hodnoty. Korekčná hodnota sa tiež vypočíta podľa určitého pravidla.

To znamená, že ak derivácia funkcie v určitom bode zmení znamienko z plus na mínus, znamená to, že chyba sa zväčšuje a váha vyžaduje korekciu a znižuje sa, inak sa zvyšuje.

Postupnosť akcií je v tomto prípade nasledovná: inicializuje sa korekčná hodnota, vypočítajú sa parciálne derivácie, vypočíta sa nová korekčná hodnota hodnôt hmotnosti, hmotnosti sa opravia, ak nie je splnená podmienka zastavenia algoritmu, proces pokračuje k výpočtu derivácií a cyklus sa opakuje. Tento prístup umožňuje dosiahnuť konvergenciu neurónovej siete niekoľkonásobne rýchlejšie, na rozdiel od predchádzajúcej možnosti tréningu.

Genetický algoritmus

Tretím najzaujímavejším algoritmom učenia pre umelé neurónové siete je genetický algoritmus. Je to zjednodušená interpretácia prirodzeného algoritmu založená na krížení výsledkov. Teda v skutočnosti dochádza ku kríženiu výsledkov, výberu tých najlepších a na ich základe formovanie novej generácie.

Ak výsledok nie je uspokojivý, algoritmus sa opakuje, kým sa generovanie nestane ideálnym. Algoritmus sa môže ukončiť bez dosiahnutia požadovaného výsledku, ak je vyčerpaný počet pokusov alebo je vyčerpaný čas na mutáciu. Tento algoritmus je aplikovateľný na proces optimalizácie váhy neurónovej siete vzhľadom na predvolenú topológiu.

V tomto prípade je váha zakódovaná v binárnom kóde a každý výsledok je určený celou sadou váh. Hodnotenie kvality sa vykonáva výpočtom výstupnej chyby.

Ďalšie varianty tréningu

Okrem vyššie uvedených metód existujú aj odrody s učiteľom a bez neho. Učenie pod dohľadom sa najčastejšie aplikuje na regresie a klasifikácie.

V tomto prípade vystupuje tréner ako učiteľ a sieť vytvorená ako študent. Tréner nastaví vstupné dáta, respektíve požadovaný výsledok, sieť pochopí, o aký výsledok je potrebné sa pri daných parametroch snažiť.

Učenie bez dozoru je trochu iné a menej bežné. V tomto scenári neurónová sieť nedosiahne požadovaný výsledok. Takéto školenie je vhodné pre siete, ktorých úlohou je zoskupovať dáta podľa daných parametrov. To znamená, že po analýze veľkého množstva vstupných údajov ich sieť rozdelí do kategórií podľa určitých kritérií.

Posilňovacie učenie sa používa, keď je možné vyhodnotiť konečný výsledok vytvorený sieťou.

To znamená, že určitým povzbudením neurónovej siete vždy, keď sa získaný výsledok bude čo najviac blížiť želanému, dáme jej príležitosť hľadať akékoľvek spôsoby riešenia problému, kým neprinesie požadované výsledky.

Vďaka tomu bude sieť hľadať najlepšie spôsoby, ako dosiahnuť cieľ bez dát od kouča.

Existuje niekoľko ďalších metód výučby:

  • stochastickú metódu možno stručne opísať takto: bola nájdená hodnota aktualizácie, čo znamená, že je okamžite potrebné aktualizovať zodpovedajúcu váhu;
  • dávková metóda sčítava hodnoty všetkých hodnôt v konkrétnom cykle a aktualizuje sa až po dokončení, čo výrazne šetrí čas, ale presnosť trpí;
  • mini-dávková metóda spája výhody vyššie uvedených metód, váhy sú náhodne rozdelené medzi vybrané skupiny a menia sa o súčet korekčného faktora všetkých váh skupiny.

V procese akéhokoľvek tréningu je potrebné používať hyperparametre, ktorých výber sa vykonáva manuálne, pričom nejde o premenné v určitej rovnici. To sú už vyššie spomínaný moment a rýchlosť učenia.

Taktiež medzi tieto parametre patrí počet skrytých vrstiev, počet neurónov vo vrstve, prítomnosť bias neurónov alebo naopak ich absencia. Prítomnosť hyperparametrov je primárne určená typom umelej neurónovej siete. Správny výber ich hodnôt priamo ovplyvňuje konvergenciu siete.

V prípade, že sa proces učenia oneskorí, existuje riziko situácie, kedy je potrebné preškolenie siete. Spravidla sa to deje v čase, keď je sieť presýtená dátami a začína sa nie učiť, ale jednoducho si pamätať výsledky pre určitú sadu vstupných parametrov. A pri aplikácii nových parametrov vzniká šum, ktorý ovplyvňuje výsledok.

Aby sa predišlo takejto potrebe, školenie sa musí vykonávať na rôznych vstupných údajoch, ktoré majú medzi sebou značné rozdiely.

Neurónové siete sú veľmi sľubnou oblasťou rozvoja. Vytvorením neurónovej siete ju môžete veľa naučiť, najmä to, čo je človek zvyknutý robiť nevedome, a preto mu nepozná algoritmus.

Verí sa, že neurónové siete sú analógom ľudského mozgu, možno je to tak, ale stojí za to pripomenúť, že ide len o kópiu, ktorá sa nejasne podobá svojmu prototypu.

Dnes teda budeme pokračovať v diskusii na túto tému neurálne siete na našej webovej stránke, a ako som sľúbil v prvom článku (), budeme o tom hovoriť sieťový tréning. Táto téma je veľmi dôležitá, keďže jednou z hlavných vlastností neurónových sietí je, že nielenže konajú v súlade s nejakým dobre definovaným algoritmom, ale sa aj zlepšujú (učia sa) na základe minulých skúseností. A v tomto článku sa pozrieme na niektoré formy učenia, ako aj na malý praktický príklad.

Poďme najprv pochopiť, aký je účel vzdelávania vo všeobecnosti. A všetko je jednoduché - pri úprave váhových koeficientov sieťových spojení. Jedným z najtypickejších spôsobov je učenie pod dohľadom. Aby sme to mohli vykonať, potrebujeme mať súbor vstupných údajov, ako aj zodpovedajúcich výstupných údajov. Nastavíme váhové koeficienty rovné nejakým malým hodnotám. A potom proces prebieha nasledovne...

Dáta privádzame na vstup siete, potom sieť vypočíta výstupnú hodnotu. Túto hodnotu porovnáme s tou, ktorú máme (pripomínam, že na tréning sa používa hotová sada vstupných údajov, pre ktorú je známy výstupný signál) a v súlade s rozdielom medzi týmito hodnotami upravíme váhu koeficienty neurónovej siete. A táto operácia sa opakuje v kruhu mnohokrát. Výsledkom je trénovaná sieť s novými hodnotami váhových koeficientov.

Zdá sa, že všetko je jasné, až na to, ako presne a akým algoritmom je potrebné zmeniť hodnotu každého konkrétneho váhového koeficientu. A v dnešnom článku o korekcii hmotnosti, ako dobrý príklad, zvážime Widrow-Hoffovo pravidlo, ktorý sa tiež nazýva delta pravidlo.

Delta pravidlo (Widrow-Hoffovo pravidlo).

Definujme chybu:

Tu máme - toto je očakávaný (skutočný) výstup siete a - toto je skutočný výstup (aktivita) výstupného prvku. Okrem výstupného prvku možno chyby určiť aj pre všetky prvky skrytej vrstvy neurónovej siete, o tom si povieme trochu neskôr.

Pravidlo delta je nasledovné - zmena hodnoty váhového faktora by sa mala rovnať:

Kde je miera učenia. Toto číslo sme si sami nastavili pred začatím tréningu. je signál prichádzajúci k prvku k z prvku j. A - chyba prvku k.

V procese učenia teda privádzame vzorku po vzorke na sieťový vstup a výsledkom sú nové hodnoty váhových koeficientov. Tréning sa zvyčajne končí, keď pre všetky vstupné vzorky bude chybová hodnota nižšia ako určitá hodnota. Potom sa sieť otestuje s novými údajmi, ktoré neboli zahrnuté do tréningu. A na základe výsledkov tohto testovania je už možné vyvodiť závery o tom, či sieť zvláda svoje úlohy dobre alebo nie.

S úpravou váh je všetko jasné, zostáva presne určiť, ako a akým algoritmom budú výpočty prebiehať pri trénovaní siete. Poďme sa pozrieť na tréning spätnej propagácie.

Algoritmus spätného šírenia.

Tento algoritmus definuje dva "toky" v sieti. Vstupné signály sa pohybujú v smere dopredu, výsledkom čoho je výstupný signál, z ktorého dostaneme chybovú hodnotu. Chybová hodnota sa pohybuje v opačnom smere, v dôsledku čoho sa upravia váhy sieťového spojenia. Na konci článku zvážime príklad, ktorý tieto procesy jasne demonštruje.

Na úpravu hodnôt hmotnosti teda použijeme pravidlo delta, o ktorom sme už hovorili. Je len potrebné definovať univerzálne pravidlo pre výpočet chyby každého prvku siete po faktickom prechode cez prvok (so spätným šírením chýb).

Možno nebudem uvádzať matematické závery a výpočty (napriek mojej láske k matematike 🙂), aby sme nepreťažili článok, obmedzíme sa iba na konečné výsledky:

Funkcia je funkciou aktivity prvku. Využime na to logistickú funkciu:

Nahraďte predchádzajúci vzorec a získajte chybovú hodnotu:

V tomto vzorci:

Teraz sa to určite nezdá úplne jasné, ale nebojte sa, pri zvažovaní praktického príkladu všetko zapadne na svoje miesto 😉

Vlastne, poďme na to a ideme ďalej.

Pred trénovaním siete je potrebné nastaviť počiatočné hodnoty váh - zvyčajne sa inicializujú malými náhodnými hodnotami, napríklad z intervalu (-0,5, 0,5). Ale pre náš príklad si pre pohodlie zoberme celé čísla.

Zvážte neurónovú sieť a manuálne vykonajte výpočty pre dopredné a spätné „toky“ v sieti.

Pri vchode musíme predložiť vzorku, nech je (0.2, 0.5) . Očakávaný sieťový výstup - 0.4 . Nechajte rýchlosť učenia byť 0.85 . Urobme všetky výpočty krok za krokom. Mimochodom, úplne som zabudol, že ako funkciu činnosti budeme používať logistickú funkciu:

Tak začnime...

Vypočítajte kombinovaný vstup prvkov 2 , 3 a 4 :

Aktivita týchto prvkov sa rovná:

Kombinovaný vstup piateho prvku:

Aktivita piateho prvku a zároveň výstup neurónovej siete je:

Zistili sme priamy „tok“, teraz prejdime k opačnému „toku“. Všetky výpočty sa vykonajú v súlade so vzorcami, o ktorých sme už diskutovali. Poďme teda vypočítať chybu výstupného prvku:

Potom chyby pre prvky 2 , 3 a 4 sú rovnaké v tomto poradí:

Tu hodnoty -0.014, -0.028 a -0.056 sa získajú ako výsledok prejdenia chyby výstupného prvku − 0.014 váženými väzbami smerom k prvkom 2 , 3 a 4 resp.

A nakoniec vypočítame množstvo, o ktoré je potrebné zmeniť hodnoty váhových koeficientov. Napríklad miera úpravy vzťahu medzi prvkami 0 a 2 sa rovná súčinu veľkosti signálu prichádzajúceho k prvku 2 z prvku 0 , chyby prvkov 2 a normy učenia (všetko podľa pravidla delta, o ktorom sme hovorili na začiatku článku):

Podobne urobíme výpočty pre zostávajúce prvky:

Teraz sa nové váhové faktory budú rovnať súčtu predchádzajúcej hodnoty a korekčnej hodnoty.

Tým je spätný prechod cez sieť ukončený, cieľ je dosiahnutý 😉 Takto prebieha proces učenia podľa algoritmu backpropagation. Tento proces sme uvažovali pre jednu množinu údajov a na to, aby sme získali plne trénovanú sieť takýchto množín, ich musí byť samozrejme oveľa viac, ale algoritmus zostáva nezmenený, len sa mnohokrát v kruhu opakuje pre rôzne údaje)

Na žiadosť čitateľov blogu som sa rozhodol pridať krátky príklad tréningu siete s dvoma skrytými vrstvami:

Do našej siete teda pridáme dva nové prvky (X a Y), ktoré budú teraz fungovať ako vstup. Poskytujeme aj vzorku (0.2, 0.5) . Zvážte algoritmus v tomto prípade:

1. Priamy sieťový priechod. Tu je všetko úplne rovnaké ako pri sieti s jednou skrytou vrstvou. Výsledkom bude hodnota.

2. Vypočítajte chybu výstupného prvku:

3. Teraz musíme vypočítať chyby prvkov 2, 3 a 4.

Tento článok obsahuje materiály – väčšinou v ruskom jazyku – pre základnú štúdiu umelých neurónových sietí.

Umelá neurónová sieť alebo ANN je matematický model, ako aj jeho softvérová alebo hardvérová implementácia, postavená na princípe organizácie a fungovania biologických neurónových sietí – sietí nervových buniek živého organizmu. Veda o neurónových sieťach existuje už dlho, ale práve v súvislosti s najnovšími úspechmi vedecko-technického pokroku si táto oblasť začína získavať na popularite.

knihy

Výber začnime klasickým spôsobom štúdia – pomocou kníh. Vybrali sme knihy v ruskom jazyku s veľkým počtom príkladov:

  • F. Wasserman, Neurocomputer Engineering: Theory and Practice. 1992
    Kniha vo verejnej podobe načrtáva základy budovania neuropočítačov. Je popísaná štruktúra neurónových sietí a rôzne algoritmy na ich ladenie. Samostatné kapitoly sú venované implementácii neurónových sietí.
  • S. Khaikin, Neurónové siete: Kompletný kurz. 2006
    Tu sú zvažované hlavné paradigmy umelých neurónových sietí. Predkladaný materiál obsahuje rigorózne matematické zdôvodnenie všetkých paradigiem neurónových sietí, je ilustrovaný príkladmi, popismi počítačových experimentov, obsahuje množstvo praktických problémov, ako aj rozsiahlu bibliografiu.
  • D. Forsyth, Počítačové videnie. Moderný prístup. 2004
    Počítačové videnie je jednou z najžiadanejších oblastí v tomto štádiu vývoja globálnych digitálnych počítačových technológií. Vyžaduje sa vo výrobe, riadení robotov, automatizácii procesov, lekárskych a vojenských aplikáciách, satelitnom dohľade a práci s osobným počítačom, ako je vyhľadávanie digitálnych obrázkov.

Video

Nie je nič dostupnejšie a zrozumiteľnejšie ako vizuálne učenie pomocou videa:

  • Ak chcete pochopiť, čo je strojové učenie vo všeobecnosti, pozrite sa sem. tieto dve prednášky od ShaD Yandex.
  • Úvod k základným princípom návrhu neurónových sietí – skvelé na pokračovanie v skúmaní neurónových sietí.
  • Prednáškový kurz na tému „Počítačové videnie“ z VMK MsÚ. Počítačové videnie je teória a technológia na vytváranie umelých systémov, ktoré detekujú a klasifikujú objekty na obrázkoch a videách. Tieto prednášky možno pripísať úvodu do tejto zaujímavej a komplexnej vedy.

Vzdelávacie zdroje a užitočné odkazy

  • Portál umelej inteligencie.
  • Laboratórium „Ja som intelekt“.
  • Neurónové siete v Matlabe.
  • Neurónové siete v Pythone (anglicky):
    • Klasifikácia textu s ;
    • Jednoduché .
  • Neurónová sieť je zapnutá.

Séria našich publikácií na túto tému

Kurz sme už zverejnili #[e-mail chránený] pomocou neurónových sietí. V tomto zozname sú pre vaše pohodlie zoradené publikácie v poradí štúdia.

Tréning neurónových sietí

Neurónové siete sa používajú na reprezentáciu vedomostí. Na rozdiel od konvenčných výpočtov, reprezentácia znalostí v neurónových sieťach vyhľadáva podľa obsahu, nie podľa adresy uložených údajov. Navyše reprezentácia znalostí v neurónových sieťach sa uskutočňuje prostredníctvom približnej, a nie úplne presnej zhody. Reprezentácia znalostí v neurónových sieťach pozostáva zo siete, váh odkazov a sémantických interpretácií pripojených k aktiváciám uzlov. Napríklad v kontexte manažérskej klasifikácie pomocou trénovanej neurónovej siete je možné predpovedať, či si zákazník vyberie nový produkt na základe číselných údajov o zákazníkovi, ako je posledná zakúpená značka, záujem pred expozíciou, re - možnosť expozície a záujem o ňu. Tieto kvantifikátory atribútov sú vstupmi do trénovanej neurónovej siete. Aktivácia „+1“ prijatá z neurónovej siete môže znamenať, že klient si vyberie nový produkt a „-1“ - naopak.

Zovšeobecnenie poznatkov v neurónových sieťach sa dosahuje tréningom. Proces učenia v neurónových sieťach stimuluje žiaduce aktivačné vzorce a blokuje nechcené na základe dostupných údajov. Na dosiahnutie určitého zovšeobecnenia vedomostí v neurónovej sieti je vyvinutý algoritmus učenia. Chybová funkcia určená na výstupe neurónovej siete alebo energetická funkcia určená pri aktivácii prvkov siete charakterizuje kvalitu neurónovej siete pri zovšeobecnení poznatkov. Súbor trénovacích údajov by v tomto prípade mal pozostávať zo vzoriek reprezentácie znalostí, ktoré majú trénovať neurónovú sieť. Algoritmus učenia funguje tak, že mení buď váhy (t. j. silu spojení medzi uzlami) alebo výstupy neurónovej siete, alebo štruktúru neurónovej siete, pričom sa zameriava na minimálne chyby alebo energiu na základe tréningových údajov.

V systémoch neurónových sietí existuje veľké množstvo paradigiem učenia. Učenie pod dohľadom (učenie pod dohľadom) a učenie bez dozoru (učenie bez dozoru alebo samoučenie) sú dve hlavné paradigmy bežne používané pri navrhovaní algoritmov učenia. Existuje aj zmiešaná paradigma.

V paradigme učenia s učiteľom neurónová sieť má správne odpovede (sieťové výstupy) pre každý príklad vstupu. Proces učenia sa snaží minimalizovať „vzdialenosť“ medzi skutočnými a požadovanými výstupmi neurónovej siete. Váhy sú upravené tak, aby sieť vytvárala odpovede čo najbližšie k známym správnym odpovediam. Vylepšená verzia učenia pod dohľadom predpokladá, že je známe iba kritické posúdenie správnosti výstupu neurónovej siete, ale nie správne hodnoty samotného výstupu.

Opakom učenia pod dohľadom je učenie bez učiteľa. Na rozdiel od kontrolovaného učenia neexistuje žiadna a priori množina požadovaných výstupných hodnôt a nie je potrebná znalosť správnych odpovedí na každý príklad trénovacej vzorky. Keď sa použije takáto paradigma, predpokladá sa viacero vstupných vzorov. Predpokladá sa, že počas procesu učenia neurónová sieť deteguje významné vlastnosti vstupov (odhalí sa vnútorná dátová štruktúra alebo korelácie medzi vzorkami v dátovom systéme, čo umožňuje kategorizovať vzorky). Neurónová sieť si musí vyvinúť vlastnú reprezentáciu vstupných podnetov bez pomoci učiteľa.

O zmiešané Pri učení sa časť váh určuje tréningom s učiteľom, zatiaľ čo zvyšok sa získava samoučením.

Teória učenia zvažuje tri základné vlastnosti spojené s učením sa príkladom: kapacita, vzorová zložitosť a výpočtová zložitosť.

Kapacita je chápaná ako koľko vzoriek si sieť dokáže zapamätať a aké funkcie a hranice rozhodovania na nej môžu byť vytvorené.

Zložitosť vzoriek určuje počet trénovacích príkladov potrebných na dosiahnutie schopnosti siete zovšeobecňovať. Príliš málo príkladov môže spôsobiť, že sieť „prepastuje“, keď funguje dobre na príkladoch tréningových vzoriek, ale slabo na testovacích príkladoch podliehajúcich rovnakému štatistickému rozdeleniu.

Existujú 4 hlavné typy pravidiel učenia: oprava chýb, Boltzmannov stroj, Hebbovo pravidlo a súťažné učenie.

Pravidlo na opravu chýb. Pri učení pod dohľadom je pre každý príklad vstupu daný požadovaný výstup d. Skutočný výkon siete y nemusí byť požadovaný. Princíp učenia opravy chýb spočíva v použití signálu (d-y) na úpravu váh, aby sa chyba postupne znižovala. Učenie prebieha len vtedy, keď sa perceptrón pomýli. Sú známe rôzne modifikácie tohto učiaceho algoritmu.

Boltzmannov tréning. Predstavuje stochastické pravidlo učenia, ktoré vyplýva z informačných teoretických a termodynamických princípov. Cieľom Boltzmannovho učenia je upraviť váhy tak, aby stavy viditeľných neurónov spĺňali požadované rozdelenie pravdepodobnosti. Boltzmannovo učenie možno považovať za špeciálny prípad korekcie chýb, pri ktorom sa chyba chápe ako divergencia stavových korelácií v dvoch režimoch.

Hebbovo pravidlo. Najstaršie pravidlo učenia je Hebbov postulát učenia. Hebb sa spoliehal na nasledujúce neurofyziologické pozorovania: ak neuróny na oboch stranách synapsie horia súčasne a pravidelne, potom sa sila synaptického spojenia zvyšuje. Dôležitou vlastnosťou tohto pravidla je, že zmena synaptickej hmotnosti závisí len od aktivity neurónov, ktoré sú prepojené danou synapsiou. To značne zjednodušuje vzdelávacie reťazce pri implementácii VLSI.

Súťažné učenie. Na rozdiel od Hebbovského učenia, v ktorom môže veľa výstupných neurónov vystreliť súčasne, pri konkurenčnom učení výstupné neuróny medzi sebou súťažia o odpálenie. Tento jav je známy ako pravidlo víťaz berie všetko. Podobné učenie prebieha v biologických neurónových sieťach. Konkurenčné učenie umožňuje zoskupovanie vstupných údajov: takéto príklady sú zoskupené podľa siete podľa korelácií a sú reprezentované jedným prvkom.

Počas tréningu sa upravujú iba váhy „víťazného“ neurónu. Účinok tohto pravidla sa dosiahne zmenou vzorky uloženej v sieti (vektor váh spojení víťazného neurónu) tak, aby sa trochu priblížila vstupnému príkladu. Na obr. 3 je geometrická ilustrácia súťažného učenia. Vstupné vektory sú normalizované a reprezentované bodmi na povrchu gule. Váhové vektory pre tri neuróny sú inicializované náhodnými hodnotami. Ich počiatočné a konečné hodnoty po tréningu sú označené X na obr. 3a a 3b. Každá z troch skupín príkladov je detegovaná jedným z výstupných neurónov, ktorých hmotnostný vektor je naladený na ťažisko detegovanej skupiny.


Ryža. N.
Príklad súťažného učenia: a) pred učením sa; b) po školení

Je možné vidieť, že sieť sa nikdy neprestane učiť, ak parameter rýchlosti učenia nie je rovný 0. Niektoré vstupné vzorky môžu spustiť ďalší výstupný neurón pri ďalších iteráciách počas tréningového procesu. To vyvoláva otázku udržateľnosti vzdelávacieho systému. Systém sa považuje za stabilný, ak žiadny z príkladov trénovacej vzorky nezmení príslušnosť ku kategórii po konečnom počte opakovaní tréningového procesu. Jedným zo spôsobov, ako dosiahnuť stabilitu, je postupné znižovanie parametra rýchlosti učenia na 0. Táto umelá inhibícia učenia však spôsobuje ďalší problém nazývaný plasticita, ktorý súvisí so schopnosťou prispôsobiť sa novým údajom. Tieto črty konkurenčného učenia sú známe ako Grossbergova dilema stability a plasticity.

Tabuľka 2 predstavuje rôzne algoritmy učenia a ich pridružené sieťové architektúry (zoznam nie je úplný). V poslednom stĺpci sú uvedené úlohy, na ktoré možno použiť každý algoritmus. Každý algoritmus učenia je zameraný na sieť určitej architektúry a je určený pre obmedzenú triedu úloh. Okrem tých, ktoré sa uvažujú, by sa mali spomenúť niektoré ďalšie algoritmy:

Adaline a Madaline

lineárna diskriminačná analýza], Sammonove projekcie,

metóda/analýza hlavnej zložky .

Tabuľka 2. Známe algoritmy učenia.

Paradigma pravidlo učenia Architektúra Algoritmus učenia Úloha
S učiteľkou Oprava chýb Jednovrstvový a viacvrstvový perceptrón Algoritmy učenia perceptrónov Spätná propagácia Adaline a Madaline
Boltzmann opakujúci Boltzmannov algoritmus učenia Klasifikácia obrázkov
hebb Lineárna diskriminačná analýza Analýza údajov Klasifikácia vzorov
konkurencia konkurencia Vektorové kvantovanie Kategorizácia v rámci triedy Kompresia údajov
ART Network ARTMap Klasifikácia obrázkov
Bez učiteľa Oprava chýb Viacvrstvové priame šírenie Sammonova projekcia Kategorizácia v rámci triedy Analýza údajov
hebb Priama distribúcia alebo konkurencia Analýza hlavných komponentov Analýza údajov Kompresia údajov
Hopfieldova sieť Tréning asociatívnej pamäte Asociačná pamäť
konkurencia konkurencia Vektorové kvantovanie Kompresia údajov kategorizácie
SOM Kohonen SOM Kohonen Analýza kategorizačných údajov
ART siete ART1, ART2 Kategorizácia
zmiešané Oprava chýb a súťaž Sieť RBF RBF algoritmus učenia Klasifikácia obrázkov Aproximácia funkcií Predikcia, kontrola

Metódy, pravidlá a algoritmy používané pri trénovaní rôznych topológií sietí.

. Tréning neurónových sietí.

. Metódy trénovania neurónových sietí.

Riešenie problému na neuropočítači sa zásadne líši od riešenia rovnakého problému na bežnom počítači s architektúrou Von Neumann. Riešením problému na klasickom počítači je spracovanie vstupných údajov v súlade s programom. Program robí človek. Na zostavenie programu si treba vymyslieť algoritmus, t.j. určitý sled matematických a logických úkonov nevyhnutných na vyriešenie tohto problému. Algoritmy, podobne ako programy, vyvíjajú ľudia a počítač sa používa iba na vykonávanie veľkého počtu základných operácií: sčítanie, násobenie, kontrola logických podmienok atď.

Neuropočítač sa používa ako „čierna skrinka“, ktorú je možné naučiť riešiť problémy z ktorejkoľvek triedy. Neuropočítaču sú „predložené“ počiatočné údaje úlohy a odpoveď, ktorá týmto údajom zodpovedá a ktorá bola nejakým spôsobom získaná. Neuropočítač musí sám zostaviť algoritmus na vyriešenie tohto problému v „čiernej skrinke“, aby mohol dať správnu odpoveď. Zdá sa prirodzené očakávať, že čím viac rôznych párov (vstupných údajov), (odpoveď) bude prezentovaných neuropočítaču, tým adekvátnejšie k riešenému problému vytvorí model.

Po tréningovej fáze neuropočítača by sme mali dúfať, že ak sa mu predložia počiatočné údaje, ktoré predtým nevidel, predsa poskytne správne riešenie – to je schopnosť neuropočítača zovšeobecňovať.

Keďže základom neuropočítača je umelá neurónová sieť, proces učenia spočíva v nastavení parametrov tejto siete. V tomto prípade sa topológia siete spravidla považuje za nezmenenú a nastaviteľné parametre zvyčajne zahŕňajú parametre neurónov a hodnoty synaptických váh. Doteraz sa v literatúre učenie bežne chápe ako proces zmeny hmotnosti spojení medzi neurónmi.

Budeme uvažovať o dvoch smeroch klasifikácie metód sieťového tréningu. Prvý smer je o spôsoboch využitia učiteľa.

S učiteľkou:

Sieť je prezentovaná s príkladmi vstupných a výstupných údajov. Sieť transformuje vstupné dáta a porovnáva ich výstup s požadovaným. Potom sa váhy upravia, aby sa dosiahla lepšia konzistencia výstupov.

Učenie s postupným posilňovaním vedomostí:

V tomto prípade sieť nedostane požadovanú hodnotu výstupu, ale namiesto toho sa sieti pridelí odhad, či je výstup dobrý alebo zlý.

Učenie bez učiteľa:

Samotná sieť vytvára pravidlá učenia extrahovaním funkcií zo súboru vstupných údajov.

Druhým smerom v klasifikácii vyučovacích metód je využívanie prvkov náhody.

Deterministické metódy:

V nich sa krok za krokom vykonáva postup na opravu váh siete na základe použitia ich aktuálnych hodnôt, napríklad hodnôt požadovaných sieťových výstupov. Algoritmus učenia spätného šírenia diskutovaný nižšie je príkladom deterministického učenia.

Stochastické metódy učenia:

Sú založené na použití náhodných zmien hmotnosti počas tréningu. Boltzmannov algoritmus učenia diskutovaný nižšie je príkladom stochastického učenia.

. Pravidlá pre učenie sa neurónových sietí .

Pravidlá učenia definujú zákon, podľa ktorého musí sieť počas procesu učenia meniť svoje synaptické váhy.

Hebbovo pravidlo (D.Hebb):

Väčšina tréningových metód je založená na všeobecných princípoch tréningu neurónových sietí vyvinutých Donaldom Hebbom. Hebbov princíp možno povedať takto: „Ak sú súčasne aktívne dva neuróny, zvýšte silu spojenia medzi nimi“, čo možno napísať ako:

dW ij = gf (Y i) f (Y j),

kde: dW ij - množstvo zmeny v synapsii W ij

Y i - úroveň excitácie i-tého neurónu

Y j - úroveň excitácie j-tého neurónu

f(.) - konverzná funkcia

g je konštanta, ktorá určuje rýchlosť učenia.

Väčšina pravidiel učenia je založená na tomto vzorci.

Pravidlo delta:

Je známe ako pravidlo znižovania kvadratickej chyby a bolo navrhnuté. Pravidlo delta sa používa pri učení pod dohľadom.

dW ij = g (D j - Y j) Y i

kde: Dj je požadovaný výstup j-tého neurónu.

K zmene sily spojov teda dochádza v súlade s chybou výstupného signálu (Dj - Yj) a úrovňou aktivity vstupného prvku Y. .

ART - pravidlo:

Teória adaptívnej rezonancie (ART) bola vyvinutá v r. ART je učenie bez dozoru, keď k sebaorganizácii dochádza v dôsledku reakcie na výber vstupných obrázkov. Sieť ART je schopná klasifikácie obrázkov. ART používa koncept dlhodobej a krátkodobej pamäte na trénovanie NN. Dlhodobá pamäť ukladá odpovede na vzory, v ktorých bola sieť natrénovaná ako vektory váh. Aktuálny vstupný obraz, očakávaný obraz a klasifikácia vstupného obrazu sú uložené v krátkodobej pamäti. Očakávaný vzor sa získa z dlhodobej pamäte vždy, keď sa do NN privedie nový vzor. Ak sú podobné podľa určitého kritéria, sieť ich klasifikuje ako patriace do existujúcej triedy. Ak sú odlišné, vytvorí sa nová trieda, v ktorej bude vstupný vektor prvým členom triedy.

Tento druh učenia sa nazýva kontradiktórne učenie. Najjednoduchší typ kontradiktórneho učenia je definovaný pravidlom víťaz-berie-všetko, t.j. súbor s najlepším výkonom je aktivovaný, ostatné sú potlačené.

Prvok s najvyššou úrovňou aktivácie sa nazýva „víťaz“. Po výbere NN pridáva vlastnosti vstupného obrazu k členom dlhodobej pamäte opakovaným prechádzaním sem a tam cez váhy dlhodobej pamäte. Grossberg nazval tento proces rezonanciou.

Kohonenovo pravidlo:

Theo Kohonen z Helsinského technologického inštitútu použil koncept kontradiktórneho učenia na vytvorenie pravidla učenia „bez dozoru“ v NN, ako je Kohonenov diagram (obrázok 3.3).

Kohonenovo pravidlo je nasledovné. Najprv sa vyberie víťaz pomocou stratégie víťaz-berie-všetko. Keďže výstup j-tého neurónu je určený skalárnym súčinom (U,W j) vstupného vektora U s vektorom váh spojení medzi vstupnou vrstvou a j-tým neurónom, závisí od uhla medzi vektory U,W j . Preto sa vyberie neurón, ktorého váhový vektor W j je najbližšie k vstupnému vektoru U. (inými slovami, vyberie sa najaktívnejší neurón). Ďalej sa zostrojí nový vektor W j tak, aby bol bližšie k vstupnému vektoru U, t.j. :

W ij nový = W ij starý + g (U - W ij starý) i = 1,2,...,k.

kde: k je počet sieťových vstupov.

g je konštanta učenia.

Boltzmannovo učenie:

Boltzmannovo učenie spočíva v posilnení učenia v súlade s objektívnou funkciou zmeny výstupu NN. Tento tréning využíva pravdepodobnostnú funkciu na zmenu váh. Táto funkcia je zvyčajne vo forme Gaussovho rozdelenia, hoci možno použiť aj iné rozdelenia.

Boltzmannovo učenie sa vykonáva v niekoľkých krokoch.

1. Koeficient T má veľkú počiatočnú hodnotu.

2. Vstupný vektor prechádza cez sieť a cieľová funkcia sa vypočítava z výstupu.

3. Náhodne zmeňte hmotnosť v súlade s Gaussovým rozdelením: P(x)=exp(-x 2 /T 2) , kde x je zmena hmotnosti.

4. Znova vypočítajte výstupnú a cieľovú funkciu.

5. Ak sa hodnota účelovej funkcie znížila (zlepšila), uložte zmenu hmotnosti. Ak nie a hodnota zhoršenia objektívnej funkcie je С, potom sa pravdepodobnosť udržania zmeny hmotnosti vypočíta nasledovne.

Hodnota Р(С) - pravdepodobnosť zmeny С v účelovej funkcii, je určená pomocou Boltzmannovho rozdelenia: P(С)~exp(- С/kT)

kde: k - konštanta podobná Boltzmannovej konštante, sa volí v závislosti od podmienok problému.

Potom sa vyberie náhodné číslo V pomocou rovnomerného rozdelenia od nuly do jednej. Ak Р(С)>V , potom sa zmena hmotnosti uloží, inak sa zmena hmotnosti rovná nule.

Kroky 3 až 5 sa opakujú pre každú zo sieťových váh, pričom sa postupne znižuje T, kým sa nedosiahne prijateľne nízka hodnota cieľovej funkcie. Potom sa celý proces učenia opakuje pre ďalší vstupný vektor. Sieť je trénovaná na všetkých vektoroch, kým sa cieľová funkcia nestane platnou pre všetky z nich. Zároveň, aby sa zabezpečila konvergencia, zmena T musí byť úmerná logaritmu času t:

T(t) = T(0) / log(1+t)

To znamená, že miera konvergencie cieľovej funkcie je nízka, takže čas tréningu môže byť veľmi dlhý.

. Algoritmy na trénovanie neurónových sietí.

Školenie dopredných sietí.

Na trénovanie siete potrebujete poznať hodnoty d j (j=1,2 .. .n(K)) výstupov z neurónov výstupnej vrstvy (požadované výstupy), ktoré by sieť mala produkovať pri excitácii vektora Dostávam sa k jeho vstupu.

Chyba prevádzky siete na týchto údajoch je definovaná ako

kde: y j - sieťový výstup.

Na zníženie tejto chyby by ste mali zmeniť váhy siete podľa nasledujúceho pravidla:

W k nové = W k staré - (E/ W k)

kde:  je konštanta charakterizujúca rýchlosť učenia.

Posledný vzorec popisuje proces gradientu klesania v hmotnostnom priestore. Výraz pre derivát dE/dW je nasledujúci:

E/W k-1 ij = (d j - y j) f j u k-1 i pre výstupnú vrstvu, t.j. k = K

E/W k-1 ij =[ (d j - y j) f j w k ij ] f j u k-1 i pre skryté vrstvy,

tie. k = 1,2. . . , K-1.

Ak sa sigmoidná funkcia používa ako nelineárna transformačná funkcia, potom namiesto posledných dvoch výrazov je vhodné použiť pre výstupnú vrstvu nasledujúce rekurzívne vzorce:

 k-1 j = (d j - y j) y j (1- y j) , E/W k-1 ij =  k-1 j u k-1 i

pre skryté vrstvy:

 k-1 j =  [  k j w k ] u j k (1- u j k) , E/W k-1 ij =  k-1 j u k-1 i

Tieto vzťahy sa nazývajú vzorce spätného šírenia. Ak sa pri priamej prevádzke šíri vstupný signál sieťou zo vstupnej vrstvy do výstupnej vrstvy, tak pri úprave váh sa chyba siete šíri z výstupnej vrstvy na vstupnú vrstvu.

Školenie Kohonenových sietí (konštrukcia máp objektov).

Na zostavenie Kohonenovy mapy je potrebná pomerne reprezentatívna vzorka vektorov trénovacích znakov (U). Nech každý vektor U z množiny (U) má rozmer k: U=(U1,U2,...,Uk).

Potom prvá (distribučná) vrstva Kohonenovy siete musí mať k neurónov; n neurónov druhej vrstvy (mapy) je umiestnených mimo rovinu v nejakej pravidelnej konfigurácii, napríklad zo štvorcovej pravouhlej siete (obr. 3.3). Prispôsobeným spojeniam medzi neurónmi prvej a druhej vrstvy W ij sú priradené náhodné hodnoty.

Index i tu označuje číslo neurónu prvej vrstvy, index j - počet neurónu druhej vrstvy. Pred začiatkom tréningu sa nastaví funkcia vplyvu neurónov druhej vrstvy na seba g(r,t), kde r je vzdialenosť medzi neurónmi, t je parameter charakterizujúci čas tréningu.

Táto funkcia tradične vyzerá ako „mexický klobúk“ (obr. 3.4.), ktorý sa v procese učenia, keď sa parameter t zvyšuje, viac „zužuje“. Často sa však používajú jednoduchšie funkcie, napríklad:

kde: D je konštanta charakterizujúca počiatočný polomer kladného vrcholu "mexického klobúka".

Každý tréningový cyklus spočíva v postupnom prezentovaní siete vektorov tréningovej množiny s následnou úpravou váh W ij . Úprava sa vykonáva takto:

1. Keď sa na vstupe siete objaví ďalší trénovací vektor U, sieť vypočíta odozvu neurónov druhej vrstvy:

2. Vyberie sa víťazný neurón (t. j. neurón s najvyššou odozvou). Jeho C číslo je definované ako:

C = argmax Yj, j=1,2,. . ., č.

3. Úprava hmotnosti spojok W sa vykonáva podľa nasledujúceho vzorca:

W ij nový = W ij starý +g(r,t)(U i - W ij starý), i=1, . . . ,k; j=1,. . . n.

Tu  je konštanta charakterizujúca učenie.

Ak sa po ďalšom tréningovom cykle proces zmeny váh spomalil, zvýšte parameter t.

Školenie siete Hopfield.

Tu treba rozlíšiť dve možnosti súvisiace s následným využitím siete: či bude použitá ako asociatívna pamäť alebo na riešenie optimalizačného problému.

Sieť sa používa ako asociatívna pamäť. Totiž: chceme do nej uložiť m binárnych vektorov V s , s=1,2, . . .n: Vs =(Vis,V2s,...,Vns).

To znamená, že keď sa sieti prezentuje niektorý z týchto vektorov, musí sa dostať do stabilného stavu zodpovedajúceho tomuto vektoru, t.j. ten istý vektor by mal vyniknúť na výstupe neurónov. Ak je sieť prezentovaná s neznámym vektorom U, potom by sa na výstupe siete mal objaviť jeden z uložených vektorov Vi, ktorý je najbližšie k U.

Je zrejmé, že počet neurónov v takejto sieti by sa mal rovnať dĺžke uložených vektorov n.

Najjednoduchší spôsob vytvorenia váh takejto siete sa dosiahne nasledujúcim postupom:

Kapacita takejto siete (tj počet uložených vektorov m) je však malá, m  log n. V práci bolo na tvorbu váh použité pravidlo učenia Hebbovského typu, v dôsledku čoho bola dosiahnutá kapacita siete m  n.

Sieť sa používa na vyriešenie problému optimalizácie. Táto možnosť je spôsobená nasledujúcou pozoruhodnou vlastnosťou Hopfieldových sietí: počas prevádzky siete sa hodnota (ktorá sa v literatúre bežne nazýva „energia“ Hopfieldovej siete) nezvyšuje. Jedna z možností „energie“ siete Hopfield:

kde A,B - konštanty určené úlohou. Úlohou štúdie je sformulovať počiatočný optimalizačný problém v podmienkach neurónovej siete a zapísať minimalizovaný funkcionál E h . Výraz získaný pre W ij udáva hodnotu váhových faktorov. V dôsledku činnosti sa sieť dostane do rovnovážneho stavu, ktorý zodpovedá lokálnemu minimu funkcionálu E h. Hodnoty excitácie neurónov v tomto prípade zodpovedajú hodnotám argumentov, na ktorých je dosiahnuté minimum.