Neurálne siete. Neurónové siete - matematický aparát

  • 31.08.2019

Umelá inteligencia a neurónové siete sú teraz obľúbenejšie ako kedykoľvek predtým. Množstvo používateľov sa čoraz častejšie pýta na to, ako neurónové siete fungujú, čo to je a na čom je založený princíp ich činnosti?

Tieto otázky spolu s ich popularitou sú tiež značne zložité, pretože procesy sú zložité algoritmy strojového učenia navrhnuté na rôzne účely, od analýzy zmien až po modelovanie rizík spojených s určitými akciami.

Čo sú neurónové siete a ich typy?

Prvá otázka, ktorá vyvstáva od záujemcov, je, čo je to neurónová sieť? V klasickej definícii ide o určitú sekvenciu neurónov, ktoré sú spojené synapsiami. Neurónové siete sú zjednodušeným modelom biologických analógov.

Program, ktorý má štruktúru neurónovej siete, umožňuje stroju analyzovať vstupné dáta a zapamätať si výsledok získaný z určitých zdrojov. Následne podobný prístup umožňuje získať z pamäte výsledok zodpovedajúci aktuálnemu súboru údajov, ak už bol dostupný pri skúsenostiach so sieťovými cyklami.

Mnoho ľudí vníma neurónovú sieť ako analógiu ľudského mozgu. Na jednej strane možno tento úsudok považovať za blízky pravde, no na druhej strane je ľudský mozog príliš zložitý mechanizmus na to, aby ho dokázal strojom obnoviť aspoň na zlomok percenta. Neurónová sieť je predovšetkým program založený na princípe fungovania mozgu, ale v žiadnom prípade nie je jeho analógom.

Neurónová sieť je zhluk neurónov, z ktorých každý prijíma informácie, spracováva ich a prenáša na iný neurón. Každý neurón spracováva signál presne rovnako.

Ako potom dosiahnete iný výsledok? Všetko je to o synapsiách, ktoré spájajú neuróny medzi sebou. Jeden neurón môže mať obrovské množstvo synapsií, ktoré zosilňujú alebo zoslabujú signál, a tie majú schopnosť časom meniť svoje charakteristiky.

Sú to práve správne zvolené parametre synapsie, ktoré umožňujú získať správny výsledok prevodu vstupných údajov na výstupe.

Po všeobecnom definovaní toho, čo je neurónová sieť, môžeme rozlíšiť hlavné typy ich klasifikácie. Pred pristúpením k klasifikácii je potrebné uviesť jedno upresnenie. Každá sieť má prvú vrstvu neurónov nazývanú vstupná vrstva.

Nevykonáva žiadne výpočty a transformácie, jeho úlohou je len jedna vec: prijímať a distribuovať vstupné signály zvyšku neurónov. Toto je jediná vrstva, ktorá je spoločná pre všetky typy neurónových sietí, ich ďalšia štruktúra je kritériom pre hlavné rozdelenie.

  • Jednovrstvová neurónová sieť. Ide o štruktúru interakcie neurónov, pri ktorej sa vstupné dáta po vstupe do prvej vstupnej vrstvy okamžite prenesú do výstupnej vrstvy konečného výsledku. V tomto prípade sa prvá vstupná vrstva neberie do úvahy, pretože nevykonáva žiadne akcie, okrem príjmu a distribúcie, ako už bolo uvedené vyššie. A druhá vrstva vykoná všetky potrebné výpočty a spracovanie a okamžite vytvorí konečný výsledok. Vstupné neuróny sú s hlavnou vrstvou spojené synapsiami, ktoré majú rôznu váhu zabezpečujúcu kvalitu spojení.
  • Viacvrstvová neurónová sieť. Ako je zrejmé z definície, tento typ neurónovej siete má okrem vstupnej a výstupnej vrstvy aj medzivrstvy. Ich počet závisí od stupňa zložitosti samotnej siete. Pripomína to skôr štruktúru biologickej neurónovej siete. Tieto typy sietí boli vyvinuté pomerne nedávno, predtým boli všetky procesy implementované pomocou jednovrstvových sietí. V súlade s tým má takéto riešenie oveľa viac možností ako jeho predchodca. V procese spracovania informácií je každá medzivrstva medzistupňom spracovania a distribúcie informácií.

V závislosti od smeru distribúcie informácií cez synapsie z jedného neurónu do druhého možno siete tiež rozdeliť do dvoch kategórií.

  • Dopredné siete alebo jednosmerné, to znamená štruktúra, v ktorej sa signál pohybuje striktne zo vstupnej vrstvy na výstup. Pohyb signálu v opačnom smere nie je možný. Takýto vývoj je pomerne rozšírený av súčasnosti úspešne rieši problémy ako rozpoznávanie, predpovede alebo zhlukovanie.
  • Siete so spätnou väzbou alebo opakujúce sa siete. Takéto siete umožňujú pohyb signálu nielen v smere dopredu, ale aj v opačnom smere. Čo to robí? V takýchto sieťach je možné na základe toho vrátiť výsledok výstupu na vstup, výstup neurónu je určený váhami a vstupnými signálmi a je doplnený o predchádzajúce výstupy, ktoré sa opäť vracajú na vstup. Takéto siete sa vyznačujú funkciou krátkodobej pamäte, na základe ktorej sa pri spracovaní obnovujú a dopĺňajú signály.

Toto nie sú jediné možnosti klasifikácie sietí.

Možno ich rozdeliť na homogénne a hybridné na základe typov neurónov, ktoré tvoria sieť. A tiež na heteroasociatívnu alebo autoasociatívnu, v závislosti od spôsobu výučby siete, s učiteľom alebo bez neho. Siete môžete klasifikovať aj podľa ich účelu.

Kde sa používajú neurónové siete?

Neurónové siete sa používajú na riešenie rôznych problémov. Ak úlohy uvažujeme podľa stupňa zložitosti, tak na riešenie najjednoduchších úloh je vhodný bežný počítačový program, viac
komplikované úlohy vyžadujúce jednoduché predpovedanie alebo približné riešenie rovníc, využívajú sa programy využívajúce štatistické metódy.

No úlohy ešte zložitejšej úrovne si vyžadujú úplne iný prístup. Týka sa to najmä rozpoznávania vzorov, reči alebo komplexnej predikcie. V hlave človeka sa takéto procesy dejú nevedome, to znamená, že rozpoznáva a zapamätáva si obrazy, človek si neuvedomuje, ako tento proces prebieha, a preto ho nemôže ovládať.

Toto sú úlohy, ktoré neurónové siete pomáhajú riešiť, to znamená, že sú vytvorené na vykonávanie procesov, ktorých algoritmy sú neznáme.

Neurónové siete sú teda široko používané v nasledujúcich oblastiach:

  • uznanie, pričom tento smer je v súčasnosti najširší;
  • pri predpovedaní ďalšieho kroku je táto funkcia použiteľná pri obchodovaní a akciových trhoch;
  • klasifikácia vstupných údajov podľa parametrov, takúto funkciu vykonávajú úverové roboty, ktoré sú schopné rozhodovať sa pri schvaľovaní pôžičky osobe, pričom sa spoliehajú na vstupnú sadu rôznych parametrov.

Vďaka schopnostiam neurónových sietí sú veľmi obľúbené. Môžu sa toho veľa naučiť, napríklad hrať hry, rozpoznávať určitý hlas atď. Vychádzajúc zo skutočnosti, že umelé siete sú postavené na princípe biologických sietí, možno ich trénovať vo všetkých procesoch, ktoré človek nevedome vykonáva.

Čo sú neuróny a synapsia?

Čo je teda neurón z hľadiska umelých neurónových sietí? Tento termín sa vzťahuje na jednotku, ktorá vykonáva výpočty. Prijíma informácie zo vstupnej vrstvy siete, vykonáva s nimi jednoduché výpočty a požiera ich na ďalší neurón.

Sieť obsahuje tri typy neurónov: vstupné, skryté a výstupné. Navyše, ak je sieť jednovrstvová, potom neobsahuje skryté neuróny. Okrem toho existuje množstvo jednotiek nazývaných displacement neurón a kontextový neurón.

Každý neurón má dva typy údajov: vstupné a výstupné. V tomto prípade sa vstupné dáta prvej vrstvy rovnajú výstupným dátam. V iných prípadoch sa celkové informácie predchádzajúcich vrstiev dostanú na vstup neurónu, potom prechádzajú procesom normalizácie, to znamená, že všetky hodnoty, ktoré spadajú mimo požadovaný rozsah, sú konvertované aktivačnou funkciou.

Ako bolo uvedené vyššie, synapsia je spojenie medzi neurónmi, z ktorých každý má svoj vlastný stupeň hmotnosti. Práve vďaka tejto vlastnosti sa pri prenose upravujú vstupné informácie. V procese spracovania budú prevládať informácie prenášané synapsiou s veľkým indikátorom hmotnosti.

Ukazuje sa, že výsledok nie je ovplyvnený neurónmi, ale synapsiami, ktoré dávajú určitý súbor váh vstupných údajov, keďže samotné neuróny vykonávajú zakaždým presne tie isté výpočty.

V tomto prípade sú váhy nastavené v náhodnom poradí.

Schéma neurónovej siete

Na pochopenie fungovania neurónovej siete nie sú potrebné žiadne špeciálne zručnosti. Určité informácie prichádzajú na vstupnú vrstvu neurónov. Prenáša sa cez synapsie do ďalšej vrstvy, pričom každá synapsia má svoj váhový koeficient a každý ďalší neurón môže mať niekoľko prichádzajúcich synapsií.

Výsledkom je, že informácie prijaté nasledujúcim neurónom sú súčtom všetkých údajov, z ktorých každý sa vynásobí vlastným váhovým koeficientom. Výsledná hodnota sa dosadí do aktivačnej funkcie a získa sa výstupná informácia, ktorá sa odovzdáva ďalej, kým nedosiahne konečný výstup. Prvé spustenie siete neposkytuje správne výsledky, pretože sieť ešte nebola natrénovaná.

Aktivačná funkcia sa používa na normalizáciu vstupných údajov. Existuje veľa takýchto funkcií, ale existuje niekoľko hlavných, ktoré sú najrozšírenejšie. Ich hlavným rozdielom je rozsah hodnôt, v ktorých fungujú.

  • Lineárna funkcia f (x) = x, najjednoduchšia zo všetkých možných, slúži len na testovanie vytvorenej neurónovej siete alebo prenos dát v pôvodnej podobe.
  • Sigmoid je považovaný za najbežnejšiu aktivačnú funkciu a má tvar f (x) = 1/1 + e- ×; rozsah jej hodnôt je od 0 do 1. Nazýva sa aj logistická funkcia.
  • Hyperbolický tangens sa používa aj na pokrytie záporných hodnôt. F (x) = e² × - 1 / e² × + 1 - táto funkcia má tento tvar a rozsah, ktorý má od -1 do 1. Ak neurónová sieť neumožňuje použitie záporných hodnôt, nemali by ste použi to.

Na nastavenie dát do siete, s ktorou bude fungovať, sú potrebné tréningové sady.

Integrácia je počítadlo, ktoré sa zvyšuje s každou tréningovou sadou.

Epocha je indikátorom úrovne tréningu neurónovej siete, tento indikátor sa zvyšuje zakaždým, keď sieť prechádza cyklom celej sady tréningových sád.

Preto, aby ste správne trénovali sieť, musíte vykonávať sady a neustále zvyšovať indikátor epochy.

V priebehu tréningu budú odhalené chyby. Je to percento nezrovnalosti medzi získaným výsledkom a požadovaným výsledkom. Tento ukazovateľ by sa mal znižovať v procese zvyšovania ukazovateľa epochy, inak je niekde chyba vývojára.

Čo je to vytesňovací neurón a na čo slúži?

V neurónových sieťach existuje ešte jeden typ neurónu – vytesňovací neurón. Od hlavného typu neurónov sa líši tým, že jeho vstup a výstup sú v každom prípade rovné jednej. Okrem toho takéto neuróny nemajú vstupné synapsie.

Usporiadanie takýchto neurónov sa vyskytuje jeden na vrstvu a nie viac; tiež sa nemôžu navzájom spájať synapsiami. Nie je vhodné umiestňovať takéto neuróny na výstupnú vrstvu.

Na čo sú potrebné? Sú situácie, v ktorých neurónová sieť jednoducho nemôže nájsť správne riešenie z dôvodu, že požadovaný bod bude mimo dosahu. Práve na to sú potrebné takéto neuróny, aby bolo možné posunúť oblasť definície.

To znamená, že váha synapsie mení ohyb funkčného grafu, zatiaľ čo posunový neurón umožňuje posun pozdĺž osi súradníc X, takže neurónová sieť môže bez posunu zachytiť oblasť pre ňu neprístupnú. V tomto prípade je možné posun vykonať vpravo aj vľavo. Schematicky sa neuróny posunu zvyčajne neuvádzajú, ich váha sa štandardne zohľadňuje pri výpočte vstupnej hodnoty.

Neuróny skreslenia vám tiež umožnia získať výsledok v prípade, že všetky ostatné neuróny dávajú ako výstupný parameter 0. V tomto prípade, bez ohľadu na váhu synapsie, sa táto hodnota prenesie do každej ďalšej vrstvy.

Prítomnosť zaujatého neurónu napraví situáciu a získa iný výsledok. Uskutočniteľnosť použitia zaujatých neurónov sa určuje testovaním siete s nimi a bez nich a porovnaním výsledkov.

Je však dôležité si uvedomiť, že vytvorenie neurónovej siete na dosiahnutie výsledkov nestačí. Je tiež potrebné trénovať, čo si tiež vyžaduje špeciálne prístupy a má svoje vlastné algoritmy. Tento proces možno len ťažko nazvať jednoduchým, pretože jeho implementácia si vyžaduje určité znalosti a úsilie.

Umelá inteligencia, neurónové siete, strojové učenie – čo všetky tieto populárne pojmy skutočne znamenajú? Pre väčšinu nezasvätených ľudí, ktorými som aj ja, vždy pôsobili ako niečo fantastické, no v skutočnosti ich podstata leží na povrchu. Už dlho som mal nápad napísať jednoduchým jazykom o umelých neurónových sieťach. Naučte sa sami a povedzte ostatným, čo je táto technológia, ako funguje, zvážte jej históriu a perspektívy. V tomto článku som sa snažil nedostať do džungle, ale jednoducho a s obľubou rozprávať o tomto sľubnom smere vo svete špičkových technológií.

Umelá inteligencia, neurónové siete, strojové učenie – čo všetky tieto populárne pojmy skutočne znamenajú? Pre väčšinu nezasvätených ľudí, čo ja sám som, vždy pôsobili ako niečo fantastické, no v skutočnosti ich podstata leží na povrchu. Už dlho som mal nápad napísať jednoduchým jazykom o umelých neurónových sieťach. Naučte sa sami a povedzte ostatným, čo je táto technológia, ako funguje, zvážte jej históriu a perspektívy. V tomto článku som sa snažil nedostať do džungle, ale jednoducho a s obľubou rozprávať o tomto sľubnom smere vo svete špičkových technológií.

Trochu histórie

Prvýkrát sa objavil koncept umelých neurónových sietí (ANN) pri pokuse o simuláciu procesov mozgu. Za prvý veľký prelom v tejto oblasti možno považovať vytvorenie modelu neurónovej siete McCulloch-Pitts v roku 1943. Vedci najprv vyvinuli model umelého neurónu. Navrhli tiež vybudovanie siete týchto prvkov na vykonávanie logických operácií. Ale čo je najdôležitejšie, vedci dokázali, že takáto sieť je schopná učenia.

Ďalším dôležitým krokom bol vývoj prvého algoritmu na výpočet ANN Donaldom Hebbom v roku 1949, ktorý sa stal základom na niekoľko nasledujúcich desaťročí. V roku 1958 Frank Rosenblatt vyvinul parceptrón, systém, ktorý napodobňuje procesy v mozgu. Kedysi táto technológia nemala analógy a stále je základom v neurónových sieťach. V roku 1986 prakticky súčasne, nezávisle od seba, americkí a sovietski vedci výrazne zlepšili základnú metódu výučby viacvrstvového perceptrónu. V roku 2007 prešli neurónové siete znovuzrodením. Britský počítačový vedec Jeffrey Hinton najprv vyvinul algoritmus hlbokého učenia pre viacvrstvové neurónové siete, ktorý sa dnes napríklad používa na ovládanie autonómnych áut.

Stručne o hlavnej veci

Vo všeobecnom zmysle slova sú neurónové siete matematické modely, ktoré fungujú na princípe sietí nervových buniek v živočíšnom organizme. ANN môžu byť implementované v programovateľných aj hardvérových riešeniach. Pre uľahčenie vnímania si neurón možno predstaviť ako určitú bunku, ktorá má veľa vstupných otvorov a jeden výstupný otvor. To, koľko prichádzajúcich signálov sa sformuje na odchádzajúce, určuje algoritmus výpočtu. Efektívne hodnoty sú dodávané do každého vstupu neurónu, ktoré sa potom šíria pozdĺž interneuronálnych spojení (synopsa). Synapsie majú jeden parameter – váhu, vďaka ktorej sa vstupná informácia mení pri prechode z jedného neurónu na druhý. Najjednoduchší spôsob, ako si predstaviť, ako fungujú neurónové siete, môže byť znázornený na príklade miešania farieb. Modré, zelené a červené neuróny majú rôznu váhu. Informácie toho neurónu, ktorého váha bude dominantnejšia v nasledujúcom neuróne.

Samotná neurónová sieť je systémom mnohých takýchto neurónov (procesorov). Samostatne sú tieto procesory celkom jednoduché (oveľa jednoduchšie ako procesor osobného počítača), ale keď sú pripojené do veľkého systému, neuróny sú schopné vykonávať veľmi zložité úlohy.

V závislosti od oblasti použitia môže byť neurónová sieť interpretovaná rôznymi spôsobmi. Napríklad z hľadiska strojového učenia je ANN metódou rozpoznávania vzorov. Z matematického hľadiska ide o viacparametrový problém. Z pohľadu kybernetiky ide o model adaptívneho riadenia robotiky. Pre umelú inteligenciu je ANN základným komponentom pre modelovanie prirodzenej inteligencie pomocou výpočtových algoritmov.

Hlavnou výhodou neurónových sietí oproti konvenčným výpočtovým algoritmom je ich schopnosť učiť sa. Vo všeobecnom zmysle slova učenie spočíva v hľadaní správnych väzbových koeficientov medzi neurónmi, ako aj v zovšeobecňovaní údajov a identifikácii zložitých závislostí medzi vstupnými a výstupnými signálmi. V skutočnosti úspešné trénovanie neurónovej siete znamená, že systém bude schopný identifikovať správny výsledok na základe údajov, ktoré sa nenachádzajú v trénovacej sade.

Dnešná situácia

A bez ohľadu na to, aká sľubná by táto technológia bola, zatiaľ sú ANN stále veľmi vzdialené schopnostiam ľudského mozgu a myslenia. Napriek tomu sa neurónové siete už využívajú v mnohých oblastiach ľudskej činnosti. Zatiaľ nie sú schopní robiť vysoko intelektuálne rozhodnutia, ale dokážu nahradiť človeka tam, kde ho predtým potrebovali. Spomedzi mnohých oblastí použitia ANN je možné poznamenať: vytváranie samoučiacich sa systémov výrobných procesov, bezpilotných vozidiel, systémov rozpoznávania obrazu, inteligentných bezpečnostných systémov, robotiky, systémov monitorovania kvality, rozhraní hlasovej interakcie, analytických systémov a oveľa viac. . Takéto rozšírené používanie neurónových sietí je okrem iného spôsobené objavením sa rôznych spôsobov, ako urýchliť učenie ANN.

Dnes je trh s neurónovými sieťami obrovský – ide o miliardy a miliardy dolárov. Ako ukazuje prax, väčšina technológií neurónových sietí na celom svete sa od seba len málo líši. Využitie neurónových sietí je však veľmi nákladné cvičenie, ktoré si vo väčšine prípadov môžu dovoliť len veľké spoločnosti. Na vývoj, tréning a testovanie neurónových sietí je potrebný veľký výpočtový výkon, je zrejmé, že veľkí hráči na IT trhu toho majú dostatok. Medzi hlavné spoločnosti, ktoré vedú vývoj v tejto oblasti, patria Google DeepMind, Microsoft Research, IBM, Facebook a Baidu.

To všetko je, samozrejme, dobré: neurónové siete sa rozvíjajú, trh rastie, ale hlavná úloha doteraz nebola vyriešená. Ľudstvo nedokázalo vytvoriť technológiu, ktorá by sa čo i len približovala schopnostiam ľudského mozgu. Poďme sa pozrieť na hlavné rozdiely medzi ľudským mozgom a umelými neurónovými sieťami.

Prečo sú neurónové siete stále ďaleko od ľudského mozgu?

Najdôležitejším rozdielom, ktorý zásadne mení princíp a efektivitu systému, je rozdielny prenos signálu v umelých neurónových sieťach a v biologickej sieti neurónov. Faktom je, že v ANN neuróny prenášajú hodnoty, ktoré sú skutočnými hodnotami, to znamená čísla. V ľudskom mozgu sa prenášajú impulzy s pevnou amplitúdou a tieto impulzy sú takmer okamžité. Ľudská sieť neurónov má teda množstvo výhod.

Po prvé, komunikačné linky v mozgu sú oveľa efektívnejšie a hospodárnejšie ako v ANN. Po druhé, impulzný obvod zaisťuje jednoduchosť implementácie technológie: namiesto zložitých výpočtových mechanizmov stačí použiť analógové obvody. V konečnom dôsledku sú impulzné siete chránené pred akustickým rušením. Platné čísla sú náchylné na šum, čo zvyšuje pravdepodobnosť chýb.

Výsledok

Samozrejme, v poslednom desaťročí nastal skutočný boom vo vývoji neurónových sietí. Je to spôsobené predovšetkým skutočnosťou, že proces učenia sa ANN sa stal oveľa rýchlejším a jednoduchším. Taktiež sa začali aktívne rozvíjať takzvané „predtrénované“ neurónové siete, ktoré môžu výrazne urýchliť proces implementácie technológie. A ak je ešte priskoro povedať, či jedného dňa budú neurónové siete schopné plne reprodukovať schopnosti ľudského mozgu, pravdepodobnosť, že v nasledujúcom desaťročí budú ANN schopné nahradiť ľudí v štvrtine existujúcich profesií, je čoraz väčšia. pravda.

Pre tých, ktorí chcú vedieť viac

  • Veľká neurónová vojna: Čo Google skutočne chystá
  • Ako môžu kognitívne počítače zmeniť našu budúcnosť

V súčasnosti narastá potreba systémov, ktoré sú schopné nielen vykonávať raz naprogramovanú postupnosť akcií na vopred určených údajoch, ale sú schopné aj samé analyzovať novo prichádzajúce informácie, hľadať v nich vzorce, robiť predpovede atď. V tejto oblasti použitia tzv neurálne siete- samoučiace sa systémy, ktoré napodobňujú činnosť ľudského mozgu. Pozrime sa podrobnejšie na štruktúru umelých neurónových sietí (NN) a ich aplikáciu v konkrétnych úlohách.

Umelý neurón

Napriek širokej škále možností neurónových sietí majú všetky spoločné vlastnosti. Takže všetky, rovnako ako ľudský mozog, pozostávajú z veľkého počtu súvisiacich prvkov rovnakého typu - neuróny ktoré napodobňujú neuróny v mozgu. Na obr. 1 je znázornený diagram neurónu.

Obrázok ukazuje, že umelý neurón, rovnako ako živý, pozostáva zo synapsií spájajúcich vstupy neurónu s jadrom; jadro neurónu, ktoré spracováva vstupné signály a axón, ktorý spája neurón s neurónmi ďalšej vrstvy. Každá synapsia má váhu, ktorá určuje, do akej miery príslušný vstup neurónu ovplyvňuje jej stav. Stav neurónu je určený vzorcom

$ S = \ suma \ limity_ (i = 1) ^ (n) \, x_iw_i $, (1)

$ \ suma \ limity_ (k = 1) ^ (N) k ^ 2 $, (1)

n- počet vstupov neurónov
x i- hodnota i-tého vstupu neurónu
w i Je váha i-tej synapsie.

Potom je hodnota axónu neurónu určená vzorcom

$ Y = f \, (S) $, (2)

Kde f- nejaká funkcia tzv aktivácia... Najčastejšie ide o tzv sigmatu ktorý vyzerá takto:

$ f \, (x) = \ frac (1) (1 \, + \, \ mbox e ^ (- ax)) $, (3)

Hlavnou výhodou tejto funkcie je, že je diferencovateľná na celej osi x a má veľmi jednoduchú deriváciu:

$ f "\, (x) = \ alpha f (x) \, \ bigl (1 \, - \, f \, (x) \ bigr) $, (4)

Keď sa parameter a znižuje, sigmoid sa stáva plochejším a degeneruje do vodorovnej čiary na úrovni 0,5 pri a = 0. Ako sa zvyšuje, sigmoid sa stále viac približuje k funkcii skoku jednotky.

Backpropagation neurónové siete

Backpropagation neurónové siete sú výkonným nástrojom na vyhľadávanie vzorov, prognózovanie a kvalitatívnu analýzu. Takéto meno - siete spätného šírenia boli získané vďaka použitému učiacemu algoritmu, v ktorom sa chyba šíri z výstupnej vrstvy na vstupnú vrstvu, teda v smere opačnom ako je smer šírenia signálu pri bežnej prevádzke siete.

Neurónová sieť spätného šírenia pozostáva z niekoľkých vrstiev neurónov, pričom každý neurón je vo vrstve i pripojený ku každému neurónu vrstvy ja + 1, teda hovoríme o plne pripojený NS.

Vo všeobecnom prípade sa úloha výučby neurónových sietí redukuje na hľadanie určitej funkčnej závislosti Y = F (X) kde X- vstup a Y- výstupné vektory. Vo všeobecnom prípade má takýto problém s obmedzeným súborom vstupných údajov nekonečnú množinu riešení. Aby sa obmedzil priestor hľadania počas tréningu, kladie sa úloha minimalizovať objektívnu funkciu chyby NN, ktorá sa zistí pomocou metódy najmenších štvorcov:

$ E \, (w) = \ frac (1) (2) \ súčet \ limity_ (j = 1) ^ (p) \, ((y_i \, - \, d_i)) ^ 2 $, (5)

y j- hodnota j-tého výstupu neurónovej siete,

d j- cieľová hodnota j-tého výstupu,

p- počet neurónov vo výstupnej vrstve.

Neurónová sieť je trénovaná pomocou metódy gradientového zostupu, t.j. pri každej iterácii sa váha mení podľa vzorca:

$ \ Delta \, w_ (ij) = - \, \ eta \, \ cdot \, \ frac (\ čiastočný \, E) (\ čiastočný \, w_ (ij)) $, (6)

kde h Je to parameter, ktorý určuje rýchlosť učenia.

$ \ frac (\ čiastočný \, E) (\ čiastočný \, w_ (ij)) = \ frac (\ čiastočný \, E) (\ čiastočný \, y_i) \, \ cdot \, \ frac (dy_i) (dS_j ) \, \ cdot \, \ frac (\ čiastočný \, S_j) (\ čiastočný \, w_ (ij)) $, (7)

y j- hodnota výstupu j-tého neurónu,

S j- vážený súčet vstupných signálov určený vzorcom (1).

Navyše faktor

$ \ frac (\ čiastočný \, S_j) (\ čiastočný \, w_ (ij)) = x_i $, (8)

x i- hodnota i-tého vstupu neurónu.

$ \ frac (\ čiastočný \, E) (\ čiastočný \, y_j) = \ súčet \ limity_ (k) ^ () \ frac (\ čiastočný \, E) (\ čiastočný \, y_k) \, \ cdot \, \ frac (dy_k) (dS_k) \, \ cdot \, \ frac (\ čiastočný \, S_k) (\ čiastočný \, y_j) = \ súčet \ limity_ (k) ^ () \ frac (\ čiastočný \, E) (\ čiastočné \, y_k) \, \ cdot \, \ frac (dy_k) (dS_k) \, \ cdot \, w_ (jk) ^ ((n + 1)) $, (9)

k- počet neurónov vo vrstve n + 1.

Zavedieme pomocnú premennú

$ \ delta_j ^ ((n)) = \ frac (\ čiastočný \, E) (\ čiastočný \, y_j) \, \ cdot \, \ frac (dy_j) (dS_j) $, (10)

Potom môžeme definovať rekurzívny vzorec na určenie n-tá vrstva, ak poznáme ďalšiu (n + 1)-tá vrstva.

$ \ delta_j ^ ((n)) = \ biggl [\ súčet \ limity_ (k) ^ () \ delta_k ^ ((n + 1)) \, \ cdot \, w_ (jk) ^ ((n + 1) ) \ biggr] \, \ cdot \, \ frac (dy_j) (dS_j) $, (11)

Nájsť neurónovú sieť pre poslednú vrstvu nie je ťažké, keďže poznáme cieľový vektor, teda vektor tých hodnôt, ktoré by mala neurónová sieť produkovať pre danú množinu vstupných hodnôt.

$ \ delta_j ^ ((N)) = \ bigl (y_i ^ ((N)) - \, d_i \ bigr) \, \ cdot \, \ frac (dy_j) (dS_j) $, (12)

A nakoniec zapíšeme vzorec (6) v rozšírenom tvare

$ \ Delta w_ (ij) ^ ((n)) = - \, \ eta \, \ cdot \, \ delta_j ^ ((n)) \, \ cdot \, x_i ^ n $, (13)

Pozrime sa teraz na úplný algoritmus na trénovanie neurónovej siete:

  1. odošlite jeden z požadovaných obrázkov na vstup neurónovej siete a určte hodnoty výstupov neurónov neurónovej siete
  2. vypočítajte pre výstupnú vrstvu NS podľa vzorca (12) a vypočítajte zmeny váh výstupnej vrstvy N podľa vzorca (13)
  3. Vypočítajte podľa vzorcov (11) a (13) a $ \ Delta w_ (ij) ^ ((N)) $ pre zostávajúce vrstvy NS, n = N-1..1
  4. Opravte všetky váhy NA

    $ w_ (ij) ^ ((n)) \, (t) = w_ (ij) ^ ((n)) \, (t \, - \, 1) \, + \, \ Delta w_ (ij) ^ ((n)) \, (t) $, (14)

  5. Ak je chyba významná, prejdite na krok 1

V štádiu 2 sú vektory z trénovacej sekvencie prezentované v náhodnom poradí sieti.

Zlepšenie efektívnosti spätného šírenia trénovania neurónovej siete

Najjednoduchšia metóda gradientového zostupu diskutovaná vyššie je veľmi neúčinná, keď sú derivácie s ohľadom na rôzne hmotnosti veľmi odlišné. To zodpovedá situácii, keď je hodnota funkcie S pre niektoré neuróny blízka modulom 1, alebo keď modul niektorých váh je oveľa väčší ako 1. V tomto prípade je pre plynulé zníženie chyby veľmi nízka rýchlosť učenia. mali by ste zvoliť, ale školenie môže trvať neúmerne dlho.

Najjednoduchšou metódou na zlepšenie klesania je zavedenie moment m keď sa vplyv gradientu na zmenu hmotností v čase mení. Potom vzorec (13) získa formu

$ \ Delta w_ (ij) ^ ((n)) \, (t) = - \, \ eta \, \ cdot \, \ delta_j ^ ((n)) \, \ cdot \, x_i ^ n \, + \, \ mu \, \ Delta w_ (ij) ^ ((n)) \, (t \, - \, 1) $, (13.1)

Ďalšou výhodou zavedenia krútiaceho momentu je schopnosť algoritmu prekonať malé lokálne minimá.

Prezentácia vstupných údajov

Hlavný rozdiel medzi neurónovými sieťami je v tom, že v nich sú všetky vstupné a výstupné parametre reprezentované ako čísla s pohyblivou rádovou čiarkou, zvyčajne v rozsahu. Zároveň sú údaje predmetnej oblasti často inak zakódované. Takže to môžu byť čísla v ľubovoľnom rozsahu, dátumy, reťazce znakov. Údaje o probléme teda môžu byť kvantitatívne aj kvalitatívne. Najprv sa pozrime na prevod kvalitných údajov na číselné údaje a potom zvážime, ako previesť vstupné údaje do požadovaného rozsahu.

Kvalitatívne údaje môžeme rozdeliť do dvoch skupín: usporiadané (ordinálne) a neusporiadané. Aby sme zvážili spôsoby kódovania týchto údajov, zvážime problém predpovedania úspešnosti liečby choroby. Príkladom usporiadaných údajov môžu byť napríklad údaje o dodatočných rizikových faktoroch daného ochorenia.

A tiež možným príkladom by bol napríklad vek pacienta:

Nebezpečenstvo každého faktora sa v tabuľkách zvyšuje pri pohybe zľava doprava.

V prvom prípade vidíme, že pacient môže mať viacero rizikových faktorov súčasne. V tomto prípade musíme použiť také kódovanie, pri ktorom nenastane situácia, keď rovnaká hodnota zodpovedá rôznym kombináciám faktorov. Najbežnejšou metódou kódovania je, keď je každému faktoru priradený bit binárneho čísla. 1 v tomto bite označuje prítomnosť faktora a 0 označuje jeho neprítomnosť. Parametru no možno priradiť číslo 0. Na vyjadrenie všetkých faktorov teda stačí 4-bitové binárne číslo. Číslo 1010 2 = 10 10 teda znamená, že pacient má hypertenziu a konzumáciu alkoholu, a číslo 0000 2 zodpovedá absencii rizikových faktorov u pacienta. Rizikové faktory budú teda reprezentované číslami v rozsahu.

V druhom prípade môžeme všetky hodnoty zakódovať aj s binárnymi váhami, ale bude to nepraktické, pretože súbor možných hodnôt bude príliš nerovnomerný. V tomto prípade bude správnejšie nastaviť v súlade s každou hodnotou vlastnej hmotnosti, ktorá sa líši o 1 od hmotnosti susednej hodnoty. Takže číslo 3 bude zodpovedať veku 50-59 rokov. Vek bude teda zakódovaný číslami v rozsahu.

V zásade to isté môžete urobiť pre neusporiadané údaje tak, že každej hodnote priradíte číslo. To však prináša nechcené zoradenie, ktoré môže skresliť údaje a značne skomplikovať proces učenia. Ako jeden zo spôsobov riešenia tohto problému je možné navrhnúť priradenie každej hodnoty jedného z NN vstupov. V tomto prípade, ak je táto hodnota prítomná, príslušný vstup je nastavený na 1 alebo 0 v opačnom prípade. Žiaľ, táto metóda nie je všeliekom, pretože pri veľkom množstve možností vstupných hodnôt narastá počet NN vstupov do obrovského počtu. Tým sa výrazne zvýši čas strávený tréningom. Ako riešenie tohto problému môžete použiť trochu iné riešenie. V súlade s každou hodnotou vstupného parametra sa vloží binárny vektor, ktorého každý bit zodpovedá samostatnému vstupu NS.

Literatúra

  • Dirk Emma Baestaens, Willem Max Van Den Bergh, Douglas Wood, „Riešenie neurónovej siete pre obchodovanie na finančných trhoch“, vydavateľstvo Pitman
  • R. M. Hristev, "Umelé neurónové siete"
  • S. Korotkiy, "Neurónové siete: Algoritmus spätného šírenia"
  • S. Short, "Neurónové siete: Základy"

Začnime uvažovať o materiáli úvodom a definíciou samotného pojmu umelého nervového systému.

Možno ho považovať za analógový výpočtový komplex, v ktorom sa používajú jednoduché prvky na spracovanie údajov, prevažne paralelne zapojené. Prvky na spracovanie údajov vykonávajú na svojich vstupných údajoch veľmi jednoduché logické alebo aritmetické operácie. Základom fungovania umelého nervového systému je, že s každým prvkom takéhoto systému sú spojené váhové koeficienty. Tieto váhy predstavujú informácie uložené v systéme.

Schéma typického umelého neurónu

Neurón môže mať veľa vstupov, ale iba jeden výstup. Ľudský mozog obsahuje približne neuróny a každý neurón môže mať tisíce spojení s ostatnými. Vstupné signály neurónu sa vynásobia váhami a sčítajú sa, aby sa získal celkový vstup neurónu - ja:

Ryža. 1.Typický umelý neurón

Funkcia, ktorá spája výstup neurónu s jeho vstupmi, sa nazýva spúšťacia funkcia. Má formu sigmoidálnej funkcie θ ... Formalizácia odpovede neurónu spočíva v tom, že pôvodný signál je nasmerovaný na jednu z hraníc pri prijímaní veľmi malých a veľmi veľkých vstupných signálov. Okrem toho je s každým neurónom spojená prahová hodnota - θ , ktorý sa vo vzorci na výpočet výstupného signálu odpočíta od celkového vstupného signálu. Výsledkom je, že výstupný signál neurónu - O je často opísaný takto:

Štruktúra siete Backpropagation "src =" https://libtime.ru/uploads/images/00/00/01/2014/06/27/set-s-obratnym-rasprostraneniyem.png.pagespeed.ce.O_0jCrJsLr.png "alt =" (! LANG: Sieťová štruktúra Backpropagation" width="450" height="370">!}

Ryža. 2. Backpropagation network

Sieť spätného šírenia je vo všeobecnosti rozdelená do troch segmentov, hoci môžu byť vytvorené aj ďalšie segmenty. Segmenty (segmenty) umiestnené medzi vstupnými a výstupnými segmentmi sa nazývajú skryté segmenty, pretože vonkajší svet vizuálne vníma iba vstupné a výstupné segmenty. Sieť, ktorá vypočítava hodnotu logickej operácie „exkluzívny OR“, vydáva skutočnú hodnotu iba v prípadoch, keď nie všetky jej vstupy majú pravdivé hodnoty alebo nie všetky vstupy sú chybné hodnoty. Počet uzlov v skrytom sektore sa môže líšiť v závislosti od účelu projektu.

Charakteristika neurónovej siete

Treba si uvedomiť, že neurónové siete nevyžadujú programovanie v obvyklom zmysle slova. Na trénovanie neurónových sietí sa používajú špeciálne algoritmy na trénovanie neurónových sietí, ako je kontrapropagácia a spätné šírenie. Programátor „naprogramuje“ sieť zadaním vstupných údajov a zodpovedajúcich výstupných údajov. Sieť sa učí automatickým nastavovaním váh pre synaptické spojenia medzi neurónmi.

Váhy spolu s prahovými hodnotami neurónov určujú charakter šírenia dát po sieti a tým nastavujú správnu odozvu na dáta používané v tréningovom procese. Školenie siete na získanie správnych odpovedí môže byť časovo náročné. Koľko závisí od toho, koľko obrázkov je potrebné zvládnuť v priebehu tréningu siete, ako aj od možností použitého hardvéru a pomocného softvéru. Po dokončení školenia je však sieť schopná reagovať vysokou rýchlosťou.

Podľa jeho architektúra umelý nervový systém odlišné od iných výpočtových systémov. V klasickom informačnom systéme sa realizuje možnosť prepojenia diskrétnych informácií s pamäťovými prvkami. Napríklad informačný systém zvyčajne uchováva údaje o konkrétnom objekte v skupine súvislých pamäťových prvkov. Schopnosť pristupovať k údajom a manipulovať s nimi sa teda dosiahne vytvorením vzťahu jedna ku jednej medzi atribútmi objektu a adresami pamäťových buniek, v ktorých sú zaznamenané.

Na rozdiel od takýchto systémov sú modely umelých nervových systémov vyvíjané na základe moderných teórií fungovania mozgu, podľa ktorých sú informácie v mozgu reprezentované pomocou váh. Neexistuje však žiadna priama korelácia medzi špecifickou hodnotou hmotnosti a špecifickou uloženou informačnou položkou.

Táto distribuovaná prezentácia informácií je podobná technológii ukladania a prezentácie obrazu používanej v hologramoch. Podľa tejto technológie pôsobia čiary hologramu ako difrakčné mriežky. S ich pomocou sa pri prechode laserového lúča reprodukuje uložený obraz, avšak samotné dáta nie sú priamo interpretované.


Neurónová sieť ako prostriedok riešenia problému

Neurónová sieť funguje ako prijateľný prostriedok riešenia problému, keď existuje veľké množstvo empirických údajov, ale neexistuje algoritmus, ktorý by bol schopný poskytnúť dostatočne presné riešenie s požadovanou rýchlosťou. V tomto kontexte má technológia na reprezentáciu údajov umelého neurónového systému významné výhody oproti iným informačným technológiám. Títo Výhody možno formulovať nasledovne:

  1. Pamäť neurónovej siete je odolná voči chybám. Pri odstraňovaní jednotlivých častí neurónovej siete dochádza len k zníženiu kvality informácie, tá sa zachová, ale úplne nezanikne. Je to spôsobené tým, že informácie sú uložené v distribuovanej forme.
  2. Kvalita informácií v neurónovej sieti, ktorá podlieha redukcii, klesá postupne, úmerne s tým, aká časť siete bola odstránená. Nedochádza k žiadnej katastrofálnej strate informácií.
  3. Dáta v neurónovej sieti sa ukladajú prirodzeným spôsobom pomocou asociatívnej pamäte. Asociatívna pamäť je pamäť, v ktorej na úplné obnovenie všetkých informácií stačí vyhľadať čiastočne zastúpené údaje. Toto je rozdiel medzi asociatívnou pamäťou a obyčajnou pamäťou, v ktorej sa dáta prijímajú zadaním presnej adresy zodpovedajúcich pamäťových prvkov.
  4. umožňujú vykonávať extrapoláciu a interpoláciu na základe informácií v nich uložených. To znamená, že učenie umožňuje sieti vyhľadávať dôležité funkcie alebo vzťahy v údajoch. Potom je sieť schopná extrapolovať a odhaliť súvislosti v nových údajoch, ktoré k nej prichádzajú. Napríklad v jednom experimente bola pomocou hypotetického príkladu trénovaná neurónová sieť. Po absolvovaní školenia sieť nadobudla schopnosť správne odpovedať na otázky, pre ktoré sa školenie neuskutočnilo.
  5. Neurónové siete sú flexibilné. Aj po odstránení určitého počtu neurónov je možné sieť pretrénovať na primárnu úroveň (samozrejme, ak v nej zostane dostatok neurónov). Táto vlastnosť je charakteristická aj pre ľudský mozog, v ktorom môže dôjsť k poškodeniu jednotlivých častí, no postupom času sa pomocou tréningu dosiahne primárna úroveň zručností a vedomostí.

Vďaka týmto vlastnostiam sa umelé nervové systémy stávajú veľmi atraktívnymi pre použitie v robotické kozmické lode, zariadenia pre ropný priemysel, podvodné vozidlá, riadenie procesov a iné technické zariadenia, ktorý by mal fungovať dlhodobo bez opravy v nepriaznivom prostredí. Umelé neurónové systémy riešia nielen problém spoľahlivosti, ale vďaka svojej plasticite poskytujú aj možnosť znížiť prevádzkové náklady.

Vo všeobecnosti sa však umelé neurónové systémy príliš nehodia na vytváranie aplikácií, ktoré vyžadujú zložité matematické výpočty alebo hľadanie optimálneho riešenia. Okrem toho použitie umelého nervového systému nebude najlepšou voľbou, ak existuje algoritmické riešenie, ktoré už prinieslo pozitívny výsledok vďaka praktickej aplikácii na riešenie takýchto problémov.

NEURÁLNE SIETE umelé, viacvrstvové vysoko paralelné (čiže s veľkým počtom paralelne nezávisle pracujúcich prvkov) logické štruktúry zložené z formálnych neurónov. Začiatok teórie neurónových sietí a neuropočítače práca amerických neurofyziológov W. McCulloch a W. Pitts, The Logical Calculus of Ideas Relating to Nervous Activity (1943), v ktorej navrhli matematický model biologického neurónu. Zo základných prác treba vyzdvihnúť model D. Hubba, ktorý v roku 1949 navrhol zákon učenia, ktorý bol východiskovým bodom pre učenie sa algoritmov pre umelé neurónové siete. Ďalší vývoj teórie neurónových sietí výrazne ovplyvnila monografia amerického neurofyziológa F. Rosenblatta „Principles of Neurodynamics“, v ktorej podrobne opísal schému perceptrónu (prístroja, ktorý simuluje proces vnímania informácie pomocou tzv. ľudský mozog). Jeho myšlienky boli rozvinuté vo vedeckých prácach mnohých autorov. V rokoch 1985-86. teória neurónových sietí dostala „technologický impulz“ spôsobený schopnosťou simulovať neurónové siete na dostupné a vysoko výkonné, ktoré sa v tom čase objavili osobné počítače... Teória neurónových sietí sa na začiatku 21. storočia pomerne aktívne rozvíja. Podľa odborníkov sa v blízkej budúcnosti očakáva výrazný technologický rast v dizajne neurónových sietí a neuropočítačov. V posledných rokoch už bolo objavených veľa nových možností neurónových sietí a práca v tejto oblasti je významným prínosom pre priemysel, vedu a techniku ​​a má veľký ekonomický význam.

Hlavné oblasti použitia neurónových sietí

Potenciálne oblasti použitia umelých neurónových sietí sú tie, kde je ľudská inteligencia neefektívna a tradičné výpočty sú časovo náročné alebo fyzicky neadekvátne (t. j. neodrážajú alebo nedostatočne odrážajú skutočné fyzikálne procesy a objekty). Relevantnosť používania neurónových sietí (t.j. neuropočítačov) sa mnohonásobne zvyšuje, keď je potrebné riešiť zle formalizovaná zadná časť h) Hlavné oblasti použitia neurónových sietí: automatizácia procesu klasifikácie, automatizácia prognózovania, automatizácia procesu rozpoznávania, automatizácia procesu rozhodovania; Správa, kódovanie a dekódovanie informácií; aproximácia závislostí atď.

Pomocou neurónových sietí je dôležitý problém v oblasti telekomunikácií- návrh a optimalizácia komunikačných sietí (hľadanie optimálnej dopravnej cesty medzi uzlami). Okrem riadenia smerovania toku sa neurónové siete využívajú na získanie efektívnych riešení pri návrhu nových telekomunikačných sietí.

Rozpoznávanie reči Je jednou z najpopulárnejších aplikácií pre neurónové siete.

Ďalšou oblasťou je riadenie cien a výroby(straty zo suboptimálneho plánovania výroby sú často podceňované). Keďže dopyt a podmienky predaja produktov závisia od času, sezóny, výmenných kurzov a mnohých ďalších faktorov, objem výroby sa musí flexibilne meniť aj s cieľom optimalizovať využitie zdrojov (systém neurónovej siete zisťuje zložité vzťahy medzi nákladmi na reklamu , objemy predaja, cena, ceny konkurentov, deň v týždni, sezóna atď.). Výsledkom používania systému je zvolená optimálna výrobná stratégia z hľadiska maximalizácie predaja alebo zisku.

o analýza spotrebiteľského trhu(marketing), keď konvenčné (klasické) metódy predpovedania reakcie spotrebiteľa nemusia byť dostatočne presné, používa sa systém prediktívnej neurónovej siete s architektúrou adaptívneho neurosimulátora.

Dopyt po výskume umožňuje udržať podnikanie spoločnosti v konkurenčnom prostredí, teda udržiavať neustály kontakt so spotrebiteľmi prostredníctvom „spätnej väzby“. Veľké spoločnosti uskutočňujú spotrebiteľské prieskumy, aby zistili, aké faktory sú pre nich pri kúpe daného produktu alebo služby rozhodujúce, prečo sa v niektorých prípadoch uprednostňuje konkurencia a aké produkty by chcel spotrebiteľ vidieť v budúcnosti. Analýza výsledkov takéhoto prieskumu je pomerne náročná úloha, pretože existuje veľké množstvo korelovaných parametrov. Systém neurónovej siete umožňuje identifikovať komplexné závislosti medzi faktormi dopytu, predvídať správanie spotrebiteľov pri zmene marketingovej politiky, nájsť najvýznamnejšie faktory a optimálne reklamné stratégie a tiež načrtnúť segment spotrebiteľov, ktorý je pre daný produkt najperspektívnejší.

V lekárskej diagnostiky neurónové siete sa využívajú napríklad na diagnostiku sluchu u dojčiat. Systém objektívnej diagnostiky spracováva registrované „evokované potenciály“ (mozgové odpovede), ktoré sa na elektroencefalograme objavujú vo forme výbuchov, ako odpoveď na zvukový podnet syntetizovaný počas vyšetrenia. Skúsený audiológ zvyčajne potrebuje až 2 000 testov, aby spoľahlivo diagnostikoval sluch dieťaťa, čo trvá asi hodinu. Systém založený na neurónovej sieti je schopný určiť úroveň sluchu s rovnakou spoľahlivosťou z 200 pozorovaní v priebehu niekoľkých minút a bez účasti kvalifikovaného personálu.

Neurónové siete sa využívajú aj na predpovedanie krátkodobé a dlhodobé trendy v rôznych oblastiach (finančné, ekonomické, bankovníctvo atď.).

Štruktúra neurónových sietí

Nervový systém a ľudský mozog sú zložené z neurónov, ktoré sú vzájomne prepojené nervovými vláknami. Nervové vlákna sú schopné prenášať elektrické impulzy medzi neurónmi. Všetky procesy prenosu podráždenia z našej pokožky, uší a očí do mozgu, procesy myslenia a kontroly konania - to všetko sa v živom organizme realizuje ako prenos elektrických impulzov medzi neurónmi.

Biologický neurón(Cell) má jadro (Nucleus), ako aj procesy nervových vlákien dvoch typov (obr. 1) - dendrity (Dendrites), pozdĺž ktorých sú prijímané impulzy (prenáša signály), a jeden axón (Axon), pozdĺž ktorých môže neurón prenášať impulz (Odnáša signály). Axón kontaktuje dendrity iných neurónov prostredníctvom špeciálnych štruktúr - synapsií, ktoré ovplyvňujú silu prenášaného impulzu. Štruktúra pozostávajúca zo súboru veľkého počtu takýchto neurónov sa nazýva biologická (alebo prirodzená) neurónová sieť.

Vznik formálny neurón z veľkej časti vďaka štúdiu biologických neurónov. Formálny neurón (ďalej len neurón) je základom každej umelej neurónovej siete. Neuróny sú relatívne jednoduché, jednotné prvky, ktoré napodobňujú prácu mozgových neurónov. Každý neurón je charakterizovaný svojim aktuálnym stavom, analogicky s nervovými bunkami v mozgu, ktoré môžu byť excitované a inhibované. Umelý neurón, rovnako ako jeho prirodzený prototyp, má skupinu synapsií (vstupov), ktoré sú prepojené s výstupmi iných neurónov, ako aj axón - výstupné spojenie tohto neurónu, odkiaľ ide signál excitácie alebo inhibície. synapsie iných neurónov.

Formálny neurón je logický prvok s $ N $ vstupov, ($ N + 1 $) váhovými koeficientmi, sčítačkou a nelineárnym prevodníkom. Najjednoduchší formálny neurón vykonávajúci logickú transformáciu $ y = \ text (znamienko) \ suma_ (i = 0) ^ (N) a_ix_i $ vstupné signály (čo sú napr. výstupné signály iných formálnych neurónov N. strany) do výstupného signálu, je znázornené na obr. 1.

Tu $ y $ je výstupná hodnota formálneho neurónu; $ a_i $ - váhové koeficienty; $ x_i $ - vstupné hodnoty formálneho neurónu ($ x_i∈ \ vľavo \ (0,1 \ vpravo \), \; x_0 = 1 $). Procesom výpočtu výstupnej hodnoty formálneho neurónu je pohyb dátového toku a jeho transformácia. Najskôr dáta idú do vstupného bloku formálneho neurónu, kde sa počiatočné dáta vynásobia zodpovedajúcimi váhovými koeficientmi, tzv. synoptické váhy (v súlade so synapsiami biologických neurónov). Váhový faktor je miera, ktorá určuje, do akej miery zodpovedajúca vstupná hodnota ovplyvňuje stav formálneho neurónu. Váhové koeficienty je možné meniť v súlade s tréningovými príkladmi, architektúrou N., Pravidlami tréningu atď. Získané hodnoty (pri násobení) sa v sčítačke prepočítajú na jednu číselnú hodnotu $ g $ (pomocou súčtu). Potom, aby sa určil výstup formálneho neurónu v bloku nelineárnej transformácie (ktorý implementuje prenosovú funkciu), $ g $ sa porovná s určitým číslom (prahom). Ak je súčet väčší ako prahová hodnota, formálny neurón generuje signál, inak bude signál nulový alebo inhibičný. V tomto formálnom neuróne sa uplatňuje nelineárna transformácia $$ \ text (znamienko) (g) = \ začiatok (prípady) 0, \; g< 0 \\ 1,\; g ⩾ 0 \end{cases},\quad \text{где}\,\,g = \sum_{i=0}^N a_i x_i.$$

Výber štruktúry neurónovej siete sa uskutočňuje v súlade s charakteristikami a zložitosťou problému. Teoreticky môže byť počet vrstiev a počet neurónov v každej vrstve neurónovej siete ľubovoľný, ale v skutočnosti je obmedzený zdrojmi počítača alebo špecializovaného mikroobvodu, na ktorom je neurónová sieť zvyčajne implementovaná. Navyše, ak sa funkcia jediného skoku použije ako aktivačná funkcia pre všetky neuróny v sieti, neurónová sieť sa nazýva viacvrstvové perceptróno m.

Na obr. 3 znázorňuje všeobecný diagram viacvrstvovej sériovej neurónovej siete. Vysoký paralelizmus spracovania sa dosahuje kombináciou veľkého počtu formálnych neurónov do vrstiev a spájaním rôznych neurónov určitým spôsobom navzájom.

Vo všeobecnosti možno do tejto štruktúry zaviesť krížové prepojenia a spätné väzby s prispôsobiteľnými váhami (obr. 4).

Neurónové siete sú zložité nelineárne systémy s obrovským počtom stupňov voľnosti. Princíp, ktorým spracúvajú informácie, sa líši od princípu používaného v počítačoch založených na procesoroch s von Neumannovou architektúrou – s logickým základom A, ALEBO, NIE (pozri J. von Neumann, Počítací stroj). Namiesto klasického programovania (ako v tradičných výpočtových systémoch) sa používa trénovanie neurónových sietí, ktoré sa spravidla scvrkáva na úpravu váhových koeficientov za účelom optimalizácie daného kritéria kvality fungovania neurónovej siete.

Algoritmy neurónových sietí

Algoritmus neurónovej siete na riešenie problémov je výpočtový postup, ktorý je plne alebo z väčšej časti implementovaný vo forme neurónovej siete určitej štruktúry (napríklad viacvrstvová neurónová sieť so sekvenčnými alebo krížovými spojeniami medzi vrstvami formálnych neurónov) s vhodným algoritmom na úpravu váhových koeficientov. Základom pre vývoj algoritmu neurónovej siete je systematický prístup, v ktorom je proces riešenia problému reprezentovaný ako fungovanie nejakého dynamického systému v čase. Na jej vybudovanie je potrebné určiť: objekt, ktorý funguje ako vstupný signál neurónovej siete; objekt, ktorý funguje ako výstupný signál neurónovej siete (napríklad samotné riešenie alebo niektoré jeho charakteristiky); požadovaný (požadovaný) výstupný signál neurónovej siete; štruktúra neurónovej siete (počet vrstiev, spojenia medzi vrstvami, objekty slúžiace ako váhové koeficienty); funkcia systémovej chyby (charakterizujúca odchýlku požadovaného výstupného signálu neurónovej siete od skutočného výstupného signálu); kritérium kvality systému a funkčnosť jeho optimalizácie v závislosti od chyby; hodnota váhových koeficientov (napr. určená analyticky priamo z úlohy, pomocou niektorých numerických metód alebo postupom úpravy váhových koeficientov neurónovej siete).

Počet a typ formálnych neurónov vo vrstvách, ako aj počet vrstiev neurónov sa vyberá na základe špecifík riešených problémov a požadovanej kvality riešenia. V procese ladenia na riešenie konkrétneho problému sa neurónová sieť považuje za viacrozmerný nelineárny systém, ktorý v iteratívnom režime cielene hľadá optimum nejakého funkcionálu, ktorý kvantitatívne určuje kvalitu riešenia problému. . Pre neurónové siete, ako viacrozmerné nelineárne riadiace objekty, sa vytvárajú algoritmy na nastavenie množiny váhových koeficientov. Medzi hlavné etapy štúdia neurónovej siete a konštrukcie algoritmov na ladenie (prispôsobenie) ich váhových koeficientov patrí: štúdium charakteristík vstupného signálu pre rôzne režimy činnosti neurónovej siete (vstupný signál neurónovej siete). sieť je spravidla vstupná spracovaná informácia a označenie tzv. "učiteľa" neurónovej siete); výber optimalizačných kritérií (pri pravdepodobnostnom modeli vonkajšieho sveta môže byť takýmito kritériami minimum funkcie priemerného rizika, maximum zadnej pravdepodobnosti, najmä ak existujú obmedzenia na jednotlivé zložky funkcie priemerného rizika); vývoj algoritmu na vyhľadávanie extrémov optimalizačných funkcionalít (napríklad na implementáciu algoritmov na vyhľadávanie lokálnych a globálnych extrémov); konštrukcia algoritmov na prispôsobenie koeficientov neurónovej siete; analýza spoľahlivosti a diagnostických metód neurónovej siete a pod.

Treba poznamenať, že zavedenie spätných väzieb a v dôsledku toho aj vývoj algoritmov na úpravu ich koeficientov v 60. – 80. rokoch 20. storočia malo čisto teoretický význam, keďže neexistovali žiadne praktické problémy adekvátne takýmto štruktúram. Až koncom 80. a začiatkom 90. rokov sa začali objavovať takéto problémy a najjednoduchšie štruktúry s prispôsobiteľnými spätnými väzbami na ich riešenie (tzv. rekurentné neurónové siete). Vývojári v oblasti technológií neurónových sietí sa zaoberali nielen tvorbou algoritmov na ladenie viacvrstvových neurónových sietí a algoritmami neurónových sietí na riešenie rôznych problémov, ale aj najefektívnejšími (v súčasnej dobe vývoja elektronických technológií) hardvérovými emulátormi (špeciálne programy, ktoré sú navrhnuté tak, aby spúšťali jeden systém v prostredí druhého), algoritmy neurónových sietí. V šesťdesiatych rokoch, pred príchodom mikroprocesorov, boli najefektívnejšími emulátormi neurónových sietí analógové implementácie neurónových sietí s otvorenou slučkou s vyvinutými ladiacimi algoritmami na univerzálnych počítačoch (niekedy systémoch založených na adaptívnych prvkoch s analógovou pamäťou). Táto úroveň rozvoja elektroniky spôsobila, že zavedenie krížových spojení do štruktúr neurónových sietí bolo naliehavé. To viedlo k výraznému zníženiu počtu neurónov v neurónovej sieti pri zachovaní kvality riešenia problému (napríklad rozlišovacia schopnosť pri riešení problémov rozpoznávania vzorov). Štúdie zo 60. a 70. rokov 20. storočia v oblasti optimalizácie štruktúr krížovo viazaných neurónových sietí sa pravdepodobne vyvinú po implementácii. memristorových nervových systémov[memristor (memristor, z pamäte - pamäť a rezistor - elektrický odpor), pasívny prvok v mikroelektronike, schopný meniť svoj odpor v závislosti od náboja, ktorý ním prechádza], berúc do úvahy ich špecifickosť z hľadiska analógovo-digitálneho spracovania informácií a veľmi významné množstvo vlastných pomerov. Špecifické požiadavky aplikovaných úloh určovali niektoré vlastnosti štruktúr neurónových sietí pomocou ladiacich algoritmov: kontinuum (z lat. continuum - spojitý, spojitý) počet tried, keď je pokyn „učiteľa“ systému tvorený vo forme hodnoty spojitej funkcie v určitom rozsahu variácií; kontinuum riešení viacvrstvovej neurónovej siete, tvorené voľbou kontinuálnej aktivačnej funkcie neurónu poslednej vrstvy; kontinuum počtu znakov, tvorené prechodom v priestore znakov od reprezentácie výstupného signálu vo forme $ N $ -rozmerného vektora reálnych čísel k reálnej funkcii v určitom variačnom rozsahu. argument; kontinuita množstva funkcií si v dôsledku toho vyžaduje špecifickú softvérovú a hardvérovú implementáciu neurónovej siete; bol implementovaný variant kontinua vlastností vstupného priestoru v probléme rozpoznávania periodických signálov bez ich transformácie pomocou analógovo-digitálny prevodník(ADC) na vstupe systému a implementácia analógovo-digitálnej viacvrstvovej neurónovej siete; kontinuum počtu neurónov vo vrstve; implementácia viacvrstvových neurónových sietí s kontinuom tried a riešení sa uskutočňuje výberom vhodných typov aktivačných funkcií pre neuróny poslednej vrstvy.

Tabuľka zobrazuje systematizovaný súbor možností pre ladiace algoritmy pre viacvrstvové neurónové siete v priestore "Vstupný signál - rozhodovací priestor". Uvádza sa veľa možností pre charakteristiky vstupných a výstupných signálov neurónových sietí, pre ktoré sú platné algoritmy na úpravu koeficientov vyvinuté ruskou vedeckou školou v rokoch 1960–70. Signál na vstup neurónovej siete je opísaný počtom tried (gradácií) obrázkov reprezentujúcich pokyny „učiteľa“. Výstupom neurónovej siete je kvantitatívny popis rozhodovacieho priestoru. V tabuľke je uvedená klasifikácia možností fungovania neurónových sietí pre rôzne typy vstupného signálu (2 triedy, $ K $ triedy, kontinuum tried) a rôzne možnosti pre kvantitatívny popis priestoru riešenia (2 riešenia, $ K_p $ riešenia, kontinuum riešení). Obrázky 1, 7, 8 predstavujú konkrétne možnosti fungovania neurónových sietí.

Tabuľka. Sada možností pre ladiace algoritmy

Priestor (počet) riešení

Vstupný signál

2 trieda$ K $ triedyKontinuita tried
2 1 7 8
$ K_p $$ K_p = 3 $3a$ K \ lt K_p $9 10
$ K = K_p $2
$ K_p = \ text (konšt.) $3b$ K \ gt K_p $4
Kontinuum5 6 11

Hlavnými výhodami neurónových sietí ako logického základu pre algoritmy na riešenie zložitých problémov sú: nemennosť (nemennosť, nezávislosť) metód syntézy neurónových sietí z dimenzie priestoru vlastností; schopnosť vybrať štruktúru neurónových sietí vo významnom rozsahu parametrov v závislosti od zložitosti a špecifík riešeného problému s cieľom dosiahnuť požadovanú kvalitu riešenia; primeranosť súčasným a budúcim mikroelektronickým technológiám; chybovosti v zmysle jej malej, a nie katastrofálnej zmeny kvality riešenia problému v závislosti od počtu zlyhaných prvkov.

Neurónové siete - konkrétny typ riadiaceho objektu v adaptívnom systéme

Neurónové siete boli jedným z prvých príkladov prechodu od riadenia najjednoduchších lineárnych stacionárnych systémov k riadeniu zložitých nelineárnych, nestacionárnych, viacrozmerných, viacnásobne prepojených systémov v teórii riadenia. V druhej polovici 60. rokov sa zrodila technika syntézy neurónových sietí, ktorá bola vyvinutá a úspešne aplikovaná v priebehu nasledujúcich takmer päťdesiatich rokov. Všeobecná štruktúra tejto techniky je znázornená na obr. 5.

Vstupné signály neurónovej siete

Pravdepodobný model okolitého sveta je základom technológií neurónových sietí. Takýto model je základom matematickej štatistiky. Neurónové siete vznikli práve v čase, keď si experimentátori využívajúci metódy matematickej štatistiky položili otázku: „Prečo sme povinní popisovať distribučné funkcie vstupných náhodných signálov vo forme špecifických analytických výrazov (normálne rozdelenie, Poissonovo rozdelenie atď.) ? Ak je to správne a existuje na to nejaký fyzikálny dôvod, potom sa úloha spracovania náhodných signálov stáva celkom jednoduchou."

Odborníci na technológie neurónových sietí uviedli: „Nevieme nič o distribučnej funkcii vstupných signálov, upúšťame od potreby formálneho popisu distribučnej funkcie vstupných signálov, aj keď zužujeme triedu problémov, ktoré treba riešiť. Distribučné funkcie vstupných signálov považujeme za zložité, neznáme a konkrétne špecifické problémy budeme riešiť za podmienok podobných predchádzajúca neistota(tj neúplný popis; neexistujú žiadne informácie o možných výsledkoch) ". To je dôvod, prečo boli neurónové siete na začiatku 60. rokov efektívne využívané na riešenie problémov s rozpoznávaním vzorov. Okrem toho bol problém rozpoznávania vzorov interpretovaný ako problém aproximácie viacrozmernej náhodnej funkcie, ktorá nadobúda hodnoty $ K $, kde $ K $ je počet tried vzorov.

Niektoré režimy fungovania viacvrstvových neurónových sietí, určené charakteristikami náhodných vstupných signálov, pre ktoré boli koncom šesťdesiatych rokov vyvinuté algoritmy úpravy koeficientov, sú uvedené nižšie.

Tréning neurónovej siete

Je zrejmé, že fungovanie neurónovej siete, teda činnosti, ktoré je schopná vykonávať, závisí od veľkosti synoptických spojení. Preto vzhľadom na štruktúru neurónovej siete, ktorá spĺňa konkrétnu úlohu, musí vývojár nájsť optimálne hodnoty pre všetky váhové koeficienty $ w $. Táto fáza sa nazýva trénovanie neurónovej siete a schopnosť siete riešiť problémy, ktoré jej vznikajú počas prevádzky, závisí od toho, ako dobre sa vykonáva. Najdôležitejšie parametre tréningu sú: kvalita výberu váhových koeficientov a čas, ktorý treba tréningu venovať. Tieto dva parametre sú zvyčajne nepriamo úmerné a musia byť zvolené na základe kompromisu. V súčasnosti možno všetky algoritmy na učenie sa neurónových sietí rozdeliť do dvoch veľkých tried: „s učiteľom“ a „bez učiteľa“.

A priori pravdepodobnosti výskytu tried

Pri nedostatku a priori informácií o distribučných funkciách vstupných signálov môže ignorovanie niektorých užitočných informácií viesť k strate kvality riešenia problému. Týka sa to predovšetkým a priori pravdepodobnosti výskytu tried. Boli vyvinuté algoritmy na ladenie viacvrstvových neurónových sietí, berúc do úvahy dostupné informácie o apriórnych pravdepodobnostiach výskytu tried. Deje sa to pri problémoch ako je rozpoznávanie písmen v texte, kedy je pre daný jazyk známa pravdepodobnosť výskytu každého písmena a táto informácia sa musí použiť pri konštrukcii algoritmu na úpravu koeficientov viacvrstvovej neurónovej siete.

Kvalifikácia "učiteľ"

Neurónovej sieti sú prezentované hodnoty vstupných aj výstupných parametrov a podľa nejakého interného algoritmu upravuje váhy svojich synaptických spojení. Riadené učenie predpokladá, že pre každý vstupný vektor existuje cieľový vektor, ktorý predstavuje požadovaný výstup. Vo všeobecnosti sa kvalifikácia „učiteľa“ môže líšiť pre rôzne triedy obrázkov. Spolu sú tzv reprezentatívny alebo tréningová vzorka th. Zvyčajne sa neurónová sieť trénuje na určitom počte takýchto vzoriek. Prezentuje sa výstupný vektor, vypočíta sa výstup neurónovej siete a porovná sa so zodpovedajúcim cieľovým vektorom, rozdiel (chyba) sa vráti späť do neurónovej siete pomocou spätnej väzby a váhy sa zmenia v súlade s algoritmom. ktorý sa snaží minimalizovať chybu. Vektory tréningovej množiny sú prezentované postupne, vypočítavajú sa chyby a váhy sa upravujú pre každý vektor, kým chyba v celom tréningovom poli nedosiahne prijateľne nízku úroveň.

V úlohách rozpoznávania vzorov je spravidla štandardne kvalifikácia „učiteľa“ úplná, t. pravdepodobnosť správneho priradenia obrázkov „učiteľom“ konkrétnej triede sa rovná jednej. V praxi to pri existencii nepriamych meraní často nezodpovedá realite, napríklad pri problémoch medicínskej diagnostiky, kedy pri overovaní (kontrole) archívu medicínskych údajov určených na školenie je pravdepodobnosť priradenia týchto údajov napr. konkrétna choroba sa nerovná jednej. Zavedenie konceptu „učiteľskej“ kvalifikácie umožnilo vyvinúť jednotné algoritmy na úpravu koeficientov viacvrstvových neurónových sietí pre tréningové režimy, učenie „s učiteľom“ s finálnou kvalifikáciou a samoučenie (clustering), kedy , v prítomnosti $ K $ alebo dvoch tried obrázkov sa kvalifikácia „učiteľa“ (pravdepodobnosť priradenia obrázkov konkrétnej triede) rovná $ \ frac (1) (K) $ alebo 1/2. Zavedenie konceptu „učiteľských“ kvalifikácií v systémoch rozpoznávania obrázkov nám umožnilo čisto teoreticky zvážiť spôsoby „sabotáže“ systému, keď je systém informovaný o úmyselne nesprávnom (s rôznym stupňom nepravdivosti) priradení obrázkov. do konkrétnej triedy. Tento spôsob ladenia koeficientov viacvrstvovej neurónovej siete zatiaľ nenašiel praktické uplatnenie.

Zhlukovanie

Clustering (samoučenie, učenie sa „bez učiteľa“) je špeciálny režim fungovania viacvrstvových neurónových sietí, kedy systém nie je informovaný o príslušnosti vzoriek ku konkrétnej triede. Neurónovej sieti sú prezentované iba vstupné signály a výstupy siete sa vytvárajú nezávisle, pričom sa berú do úvahy iba vstupné a odvodené signály. Napriek mnohým aplikovaným pokrokom bolo učenie pod dohľadom kritizované za biologickú nepravdepodobnosť. Je ťažké si predstaviť mechanizmus učenia v prirodzenej ľudskej inteligencii, ktorý porovnáva požadované a skutočné hodnoty výstupov pomocou korekcie spätnej väzby. Ak predpokladáme podobný mechanizmus v ľudskom mozgu, odkiaľ potom pochádzajú želané výstupy? Učenie bez dozoru je hodnovernejším modelom učenia v biologickom systéme. Nepotrebuje cieľový vektor pre výstupy, a preto ho netreba porovnávať s vopred definovanými ideálnymi odozvami. Tréningová množina pozostáva len zo vstupných vektorov. Tréningový algoritmus upravuje váhy neurónovej siete tak, aby sa získali konzistentné výstupné vektory, t.j. aby prezentácia dostatočne blízkych vstupných vektorov poskytovala rovnaké výstupy. Proces učenia preto extrahuje štatistické vlastnosti trénovacej množiny a zoskupuje podobné vektory do tried. Prezentácia vektora z danej triedy na vstup poskytne určitý výstupný vektor, ale pred tréningom nie je možné predpovedať, aký výstup vytvorí daná trieda vstupných vektorov. Následne musia byť výstupy takejto siete kvôli procesu učenia transformované do nejakej zrozumiteľnej podoby. Nejde o vážny problém. Zvyčajne nie je ťažké identifikovať spojenie medzi vstupom a výstupom vytvorené sieťou.

Existuje mnoho vedeckých prác venovaných zhlukovaniu. Hlavnou úlohou zhlukovania je spracovanie množiny vektorov vo viacrozmernom priestore znakov s pridelením kompaktných podmnožín (podmnožín blízko seba), ich počtu a vlastností. Najbežnejšou metódou klastrovania je metóda „$ K $ -means“, ktorá prakticky nesúvisí s metódami spätného šírenia a nie je zovšeobecnená na architektúry, ako sú viacvrstvové neurónové siete.

Zavedenie konceptu „učiteľskej“ kvalifikácie a jednotného prístupu k učeniu a samovzdelávaniu v 60. rokoch umožnilo v podstate vytvoriť základ pre implementáciu režimu klastrovania vo viacvrstvových neurónových sieťach širokej triedy. štruktúr.

Nestacionárne obrázky

Existujúci vývoj v oblasti systémov rozpoznávania obrazu založených na viacvrstvových neurónových sieťach sa týka najmä stacionárnych obrazov, t.j. na náhodné vstupné signály s komplexnými neznámymi, ale časovo stacionárnymi distribučnými funkciami. V niektorých prácach bol urobený pokus rozšíriť navrhovanú techniku ​​ladenia viacvrstvových neurónových sietí na nestacionárne obrazy, keď predpokladaná neznáma distribučná funkcia vstupného signálu závisí od času alebo je vstupný náhodný signál superpozíciou regulárnej zložky a náhodná zložka s neznámou komplexnou distribučnou funkciou, ktorá nezávisí od času.

O kritériách primárnej optimalizácie vo viacvrstvových neurónových sieťach

Pravdepodobnostný model sveta, ktorý sa použil ako základ pre konštrukciu adaptačných algoritmov vo viacvrstvových neurónových sieťach, umožnil vytvoriť primárne optimalizačné kritérium v ​​posudzovaných systémoch v podobe požiadaviek na minimum funkcie priemerného rizika a jeho modifikácie: , t.j. údaje založené na skúsenostiach); funkcia minimálneho priemerného rizika; minimum funkcie priemerného rizika za predpokladu, že funkcie podmieneného rizika pre rôzne triedy sú rovnaké; minimum funkcie priemerného rizika za podmienky danej hodnoty funkcie podmieneného rizika pre jednu z tried; ďalšie kritériá primárnej optimalizácie vyplývajúce z požiadaviek konkrétneho praktického problému. V prácach ruských vedcov boli prezentované modifikácie algoritmov na ladenie viacvrstvových neurónových sietí pre vyššie uvedené kritériá primárnej optimalizácie. Všimnite si, že v drvivej väčšine prác v oblasti teórie neurónových sietí a v algoritmoch spätného šírenia sa uvažuje o najjednoduchšom kritériu - minimum strednej štvorcovej chyby, bez akýchkoľvek obmedzení podmienených rizikových funkcií.

Predpokladom pre vytvorenie kritéria a funkcionálu primárnej optimalizácie neurónových sietí je v samoučiacom sa (clusteringovom) režime reprezentácia distribučnej funkcie vstupného signálu vo forme multimodálnej funkcie vo viacrozmernom priestore vlastnosti, kde každý režim s určitou pravdepodobnosťou zodpovedá triede. Modifikácie funkcie priemerného rizika boli použité ako kritériá pre primárnu optimalizáciu v samoučiacom sa režime.

Prezentované modifikácie primárnych optimalizačných kritérií boli zovšeobecnené na prípady kontinua tried a riešení; kontinuum znakov vstupného priestoru; kontinuum počtu neurónov vo vrstve; s ľubovoľnou kvalifikáciou učiteľa. Dôležitým úsekom tvorby kritéria a funkcionálu primárnej optimalizácie vo viacvrstvových neurónových sieťach s pravdepodobnostným modelom sveta je výber stratovej matice, ktorá v teórii štatistického rozhodovania určuje stratový koeficient $ L_ (12) $ v prípade chybného priradenia obrázkov 1. triedy k 2. a stratového koeficientu $ L_ (21) $ pri odkazovaní obrázkov 2. triedy do 1. triedy. Spravidla sa matica $ L $ týchto koeficientov pri syntéze algoritmov na ladenie viacvrstvových neurónových sietí, vrátane použitia metódy spätného šírenia, považuje za symetrickú. V praxi to nie je pravda. Typickým príkladom je systém detekcie mín pomocou geolokácie. V tomto prípade sa straty v dôsledku chybného priradenia kameňa k bani rovnajú malej strate času používateľa geolokátora. Straty spojené s chybným priradením míny do triedy kameňov sú spojené so životom alebo významnou stratou zdravia používateľov geolokátora.

Analýza neurónových sietí s otvorenou slučkou

Cieľom tejto etapy syntézy je vo všeobecnosti definovať štatistické charakteristiky výstupných a medziľahlých signálov neurónových sietí ako viacrozmerných, nelineárnych riadiacich objektov, aby sa ďalej vytvorilo kritérium a funkcionál sekundárnej optimalizácie, tj funkcionál skutočne optimalizovaný pomocou adaptačný algoritmus v špecifickej neurónovej sieti. V drvivej väčšine prác je stredná hodnota chyby braná ako taká funkcionalita, ktorá zhoršuje kvalitu riešenia alebo vôbec nezodpovedá optimalizačnému problému, ktorý predstavuje primárne optimalizačné kritérium.

Bola vyvinutá metodológia a algoritmy na vytvorenie sekundárneho optimalizačného funkcionálu zodpovedajúceho danému primárnemu optimalizačnému funkcionálu.

Algoritmy na vyhľadávanie extrému sekundárnych optimalizačných funkcionalít

Algoritmus na nájdenie extrému vo vzťahu ku konkrétnej funkcionalite sekundárnej optimalizácie určuje algoritmus na úpravu koeficientov viacvrstvovej neurónovej siete. Na začiatku 21. storočia je najväčší praktický záujem o podobné algoritmy implementované v systéme MatLab (skratka pre anglické "Matrix Laboratory" - balík aplikovaných programov na riešenie technických výpočtových problémov a programovací jazyk s rovnakým názvom) . Je však potrebné upozorniť na špecifickosť adaptačných algoritmov vo viacvrstvových neurónových sieťach používaných v systémoch MatLab (Neural Network Toolbox - poskytuje funkcie a aplikácie na modelovanie zložitých nelineárnych systémov, ktoré sú popísané rovnicami; podporuje učenie „s učiteľom“ a „bez učiteľ", priama distribúcia, s radiálnymi bázovými funkciami a pod.) a orientácia týchto algoritmov nie na špecifiká riešených problémov, ale na pomyselnú "geometriu" sekundárnych optimalizačných funkcionálov. Tieto algoritmy nezohľadňujú mnohé detaily špecifík aplikácie viacvrstvových neurónových sietí pri riešení špecifických problémov a prirodzene vyžadujú radikálne, ak nie zásadné spracovanie pri prechode na memristorové neurónové systémy. Bola vykonaná podrobná porovnávacia analýza metódy spätného šírenia a ruských metód 60. – 70. rokov 20. storočia. Hlavnou črtou týchto algoritmov je potreba hľadania lokálnych a globálnych extrémov multiextrémneho funkcionálu vo viacrozmernom priestore nastaviteľných koeficientov neurónovej siete. Zväčšenie veľkosti neurónovej siete vedie k výraznému zvýšeniu počtu laditeľných koeficientov, teda k zväčšeniu rozmeru vyhľadávacieho priestoru. V 60-tych rokoch boli v prácach navrhnuté vyhľadávacie a analytické postupy na výpočet gradientu sekundárneho optimalizačného funkcionálu a v triede analytických postupov bolo navrhnuté použitie nielen prvej, ale aj druhej derivácie sekundárneho optimalizačného funkcionálu. a vyšetrované. Špecifiká multiextrémnosti sekundárneho optimalizačného funkcionálu viedli v priebehu nasledujúcich desaťročí k objaveniu sa rôznych modifikácií vyhľadávacích metód (genetické algoritmy a pod.). Boli vytvorené algoritmy na vyhľadávanie extrémov sekundárnych optimalizačných funkcionalít s obmedzeniami na hodnotu, rýchlosť a ďalšie parametre váhových koeficientov neurónových sietí. Práve tieto metódy by mali byť základom pre prácu na metódach ladenia neurónových sietí pomocou memristorov (váhových koeficientov), ​​berúc do úvahy také špecifické vlastnosti, ako sú prenosové funkcie.

Východiskové podmienky pri nastavovaní koeficientov

Voľba počiatočných podmienok iteračného postupu na nájdenie extrémov sekundárnych optimalizačných funkcionalít je dôležitou etapou syntézy algoritmov na ladenie viacvrstvových neurónových sietí. Problém výberu počiatočných podmienok by sa mal riešiť špecificky pre každý problém riešený neurónovou sieťou a mal by byť neoddeliteľnou súčasťou všeobecného postupu syntézy algoritmov na ladenie viacvrstvových neurónových sietí. Vysokokvalitné riešenie tohto problému môže výrazne skrátiť čas nastavenia. Apriórna zložitosť sekundárneho optimalizačného funkcionálu si vyžiadala zavedenie postupu výberu počiatočných podmienok vo forme náhodných hodnôt koeficientov s opakovaním tohto postupu a postupu úpravy koeficientov. Ešte v 60. rokoch sa tento postup zdal extrémne zbytočný z hľadiska času stráveného úpravou koeficientov. Napriek tomu je dnes široko používaný. Pre jednotlivé problémy bola zároveň prijatá myšlienka výberu počiatočných podmienok špecifických pre daný problém, ktorý sa má riešiť. Tento postup bol vypracovaný pre tri úlohy: rozpoznávanie vzorov; zhlukovanie; neuro-identifikácia nelineárnych dynamických objektov.

Pamäť v slučke pre nastavenie koeficientov

Systematický prístup ku konštrukcii algoritmov na nájdenie extrému sekundárneho optimalizačného funkcionálu predpokladá ako jeden z režimov ladenia rekonfiguráciu koeficientov v každom kroku vstupu obrazov na vstupe podľa aktuálnej hodnoty gradientu. funkcionálu sekundárnej optimalizácie. Boli vyvinuté algoritmy na ladenie viacvrstvových neurónových sietí s filtrovaním postupnosti hodnôt gradientov funkcionálu sekundárnej optimalizácie: filter nultého rádu s pamäťou $ m_n $ (pre stacionárne obrázky); filter $ 1,…, k $ -tý rád s pamäťou $ m_n $ (pre nestacionárne obrázky) s rôznou hypotézou časovej variácie distribučných funkcií pre obrázky rôznych tried.

Výskum adaptačných algoritmov v neurónových sieťach

Hlavná otázka – ako zvoliť štruktúru viacvrstvovej neurónovej siete pre riešenie zvoleného špecifického problému – je stále do značnej miery nevyriešená. Ponúknuť možno len rozumne orientovaný výpočet variantov štruktúry s posúdením ich efektívnosti v procese riešenia problému. Avšak posúdenie kvality ladiaceho algoritmu na konkrétnej vybranej štruktúre, konkrétnej úlohe nemusí byť dostatočne správne. Na posúdenie kvality lineárnych dynamických riadiacich systémov sa teda používajú typické vstupné signály (krokové, kvadratické atď.), podľa reakcie, na ktorú sa prejavuje chyba v ustálenom stave (astatizmus systému) a chyby v prechodových procesoch. odhadnutý.

Podobne pre viacvrstvové neurónové siete boli vyvinuté typické vstupné signály na testovanie a porovnávanie výkonnosti rôznych ladiacich algoritmov. Prirodzene, typické vstupné signály pre objekty, ako sú viacvrstvové neurónové siete, sú špecifické pre každý riešený problém. V prvom rade boli vyvinuté štandardné vstupné signály pre nasledujúce úlohy: rozpoznávanie vzorov; zhlukovanie; neurokontrola dynamických objektov.

Hlavným axiomatickým princípom využívania technológií neurónových sietí namiesto metód klasickej matematickej štatistiky je odmietnutie formalizovaného popisu funkcií rozdelenia pravdepodobnosti pre vstupné signály a prijatie konceptu neznámych, komplexných distribučných funkcií. Z tohto dôvodu boli navrhnuté nasledujúce generické vstupné signály.

Pre problém zhlukovania bola navrhnutá vzorka náhodného signálu s multimodálnou distribúciou, implementovaná v $ N $ -rozmernom priestore funkcií s režimami distribučnej funkcie, ktorých stredy vo výške $ Z $ sa nachádzajú na hyperbisektore $ N $ -rozmerný priestor prvkov. Každý režim implementuje zložku náhodnej vzorky s normálnym rozdelením a štandardnou odchýlkou ​​$ σ $ rovnými pre každý z režimov $ Z $. Predmetom porovnania rôznych metód zhlukovania bude dynamika ladenia a kvalita riešenia úlohy v závislosti od $ N $, $ Z $ a $ σ $, pre dostatočne veľkú náhodnú vzorku $ M $. Tento prístup možno považovať za jeden z prvých pomerne objektívnych prístupov k porovnávaniu klastrovacích algoritmov, vrátane tých, ktoré sú založené na viacvrstvových neurónových sieťach, s vhodnou voľbou štruktúry na dosiahnutie požadovanej kvality klastrovania. Pre klasifikačné problémy sú vstupné signály pre testy podobné signálom pre zhlukovanie s tým rozdielom, že vzorka s multimodálnym rozdelením je rozdelená na dve (v prípade dvoch tried) alebo na $ K $ (v prípade $ K $ tried ) časti so striedajúcimi sa režimami distribučnej funkcie pre jednotlivé triedy ...

Neurónové siete s variabilnou štruktúrou

Odmietanie v technológiách neurónových sietí od apriórnych informácií, od informácií o distribučných funkciách vstupných signálov vedie k potrebe implementácie rozumného enumerácie parametrov štruktúry viacvrstvových neurónových sietí na zabezpečenie požadovanej kvality riešenia problému.

V šesťdesiatych rokoch minulého storočia bol pre triedu problémov, ktoré boli veľmi relevantné, navrhnutý postup ladenia viacvrstvových neurónových sietí, v ktorých štruktúra nie je a priori pevná, ale je výsledkom ladenia spolu s hodnotami laditeľných koeficientov. v tom čase - rozpoznávanie vzorov. V tomto prípade sa počas procesu nastavenia vyberie počet vrstiev a počet neurónov vo vrstvách. Postup úpravy koeficientov viacvrstvovej neurónovej siete s premenlivou štruktúrou možno jednoducho preniesť z problému rozpoznávania dvoch tried vzorov na problém rozpoznávania $ K $ tried vzorov. A tu je výsledkom ladenia $ K $ neurónové siete, z ktorých prvá trieda je $ k $ -tá trieda ($ k = 1, \ ldots, K $) a druhá sú všetky ostatné. Podobná myšlienka ladenia viacvrstvových neurónových sietí s variabilnou štruktúrou je použiteľná pri riešení problému klastrovania. V tomto prípade sa počiatočná analyzovaná vzorka odoberie ako prvá trieda obrázkov a vzorka s rovnomerným rozložením v rozsahu zmien znakov sa odoberie ako druhá trieda. Viacvrstvová neurónová sieť s variabilnou štruktúrou, implementovaná v procese ladenia, kvalitatívne a kvantitatívne odráža zložitosť riešenia problému. Z tohto hľadiska úloha zhlukovania ako úlohy generovania nových poznatkov o skúmanom objekte spočíva v identifikácii a analýze tých oblastí viacrozmerného priestoru znakov, v ktorých funkcia rozdelenia pravdepodobnosti presahuje úroveň rovnomerného rozdelenia v rozsahu variácií hodnôt vlastností.

Perspektívy rozvoja

Na začiatku 21. storočia bola jednou z hlavných koncepcií rozvoja (tréningu) viacvrstvovej neurónovej siete snaha zvýšiť počet vrstiev, čo znamená zabezpečiť výber štruktúry neurónovej siete adekvátnej danému problému. riešený vývoj nových metód na vytváranie algoritmov na úpravu koeficientov. Výhody neurónových sietí sú: vlastnosť tzv. postupná degradácia - pri poruche jednotlivých prvkov kvalita systému postupne klesá (pre porovnanie logické siete AND, ALEBO, NEZLYHAJÚ pri poruche niektorého prvku siete); zvýšená odolnosť voči zmenám parametrov obvodov, ktoré ich realizujú (napr. veľmi výrazné zmeny váh nevedú k chybám pri implementácii jednoduchej logickej funkcie dvoch premenných) atď.

Široké používanie algoritmov neurónových sietí v oblasti zložitých formalizovateľných, slabo formalizovaných a neformalizovaných problémov viedlo k vytvoreniu nového smeru vo výpočtovej matematike - neuromatematika... Neuromatematika zahŕňa algoritmy neurónových sietí na riešenie nasledujúcich problémov: rozpoznávanie vzorov; optimalizácia a extrapolácia funkcií; teória grafov; kryptografické úlohy; riešenie reálnych a booleovských systémov lineárnych a nelineárnych rovníc, obyčajných jednorozmerných a viacrozmerných diferenciálnych rovníc, parciálnych diferenciálnych rovníc a pod.. Na základe teórie neurónových sietí vznikla nová sekcia modernej teórie riadenia pre komplexné nelineárne a viacrozmerné, boli vytvorené viacnásobne prepojené dynamické systémy - neurokontrola vrátane metód identifikácie zložitých dynamických objektov pomocou neurónových sietí; konštrukcia neuroregulátorov v riadiacich slučkách zložitých dynamických objektov a pod.