Neuronová síť [1] (též umělá neuronová síť , ANN ) je matematický model , stejně jako jeho softwarová či hardwarová implementace, vybudovaný na principu organizace a fungování biologických neuronových sítí - sítí nervových buněk živého organismu. Tento koncept vznikl při studiu procesů probíhajících v mozku a při pokusu o modelování těchto procesů. Prvním takovým pokusem byly neuronové sítě W. McCullocha a W. Pittse [2] . Po vývoji algoritmů učení se výsledné modely začaly používat pro praktické účely:problémy s předpovídáním , rozpoznávání vzorů , problémy s ovládáním atd.
ANN je systém propojených a interagujících jednoduchých procesorů ( umělých neuronů ). Takové procesory jsou obvykle poměrně jednoduché (zejména ve srovnání s procesory používanými v osobních počítačích). Každý procesor v takové síti pracuje pouze se signály , které periodicky přijímá, a se signály, které periodicky odesílá jiným procesorům. A přesto, jsou-li takto jednotlivě jednoduché procesory propojeny v dostatečně velké síti s řízenou interakcí, mohou společně vykonávat poměrně složité úkoly.
Neuronové sítě nejsou naprogramovány v obvyklém slova smyslu, jsou trénované [a] . Schopnost učit se je jednou z hlavních výhod neuronových sítí oproti tradičním algoritmům . Technicky vzato je učení o hledání koeficientů spojení mezi neurony. V procesu učení je neuronová síť schopna identifikovat složité závislosti mezi vstupy a výstupy a také provádět zobecnění . To znamená, že v případě úspěšného školení bude síť schopna vrátit správný výsledek na základě dat, která v trénovacím vzorku chyběla, a také neúplných a/nebo „hlučných“, částečně zkreslených dat.
Jako obrázky mohou fungovat objekty různé povahy: textové symboly, obrázky, zvukové vzory atd. Při trénování sítě jsou nabízeny různé vzory obrázků s uvedením, do které třídy patří. Vzorek je obvykle reprezentován jako vektor hodnot vlastností. V tomto případě musí souhrn všech znaků jednoznačně určit třídu , do které vzorek patří. Pokud není dostatek funkcí, může síť přiřadit stejný vzorek k několika třídám, což není pravda. Na konci síťového školení může být předložen s dosud neznámými obrázky a získat odpověď o příslušnosti k určité třídě.
Topologie takové sítě se vyznačuje tím, že počet neuronů ve výstupní vrstvě se obvykle rovná počtu definovaných tříd. Tím se vytvoří korespondence mezi výstupem neuronové sítě a třídou, kterou reprezentuje. Když je síť prezentována s obrázkem, jeden z jejích výstupů by měl ukazovat, že obrázek patří do této třídy. Zároveň by ostatní výstupy měly mít označení, že obrázek do této třídy nepatří [18] . Pokud mají dva nebo více výstupů znak příslušnosti ke třídě, má se za to, že si síť „není jistá“ svou odpovědí.
Použité architektury neuronových sítíTento problém je blízký problému klasifikace. Situace podléhají klasifikaci, jejíž charakteristiky jsou přiváděny na vstup neuronové sítě. Na výstupu sítě by se měl objevit znak rozhodnutí, které učinila. V tomto případě se jako vstupní signály používají různá kritéria pro popis stavu řízeného systému [19] .
Clustering označuje rozdělení sady vstupních signálů do tříd, a to navzdory skutečnosti, že ani počet, ani vlastnosti tříd nejsou předem známy. Po naučení je taková síť schopna určit, do jaké třídy vstupní signál patří. Síť také může signalizovat, že vstupní signál nepatří do žádné z vybraných tříd – to je známka chybějících nových dat v trénovacím vzorku. Taková síť tedy může detekovat nové, dříve neznámé třídy signálů . Korespondence mezi třídami identifikovanými sítí a třídami, které existují v předmětné oblasti, je stanovena osobou. Shlukování je prováděno např. Kohonenovými neuronovými sítěmi .
Neuronové sítě v Kohonenově jednoduché verzi nemohou být obrovské, proto se dělí na hypervrstvy (hypersloupce) a jádra (mikrokloupce). V porovnání s lidským mozkem by ideální počet paralelních vrstev neměl překročit 112. Tyto vrstvy zase tvoří hypervrstvy (hypersloupce), ve kterých je 500 až 2000 mikrosloupců (jader). Každá vrstva je navíc rozdělena na sadu hypersloupů prostupujících těmito vrstvami. Mikrosloupce jsou zakódovány číslicemi a jednotkami s výsledkem získaným na výstupu. V případě potřeby jsou odstraněny nebo přidány další vrstvy a neurony. Pro výběr počtu neuronů a vrstev je ideální použít superpočítač. Takový systém umožňuje, aby neuronové sítě byly plastické.
Použité architektury neuronových sítíSchopnost neuronové sítě předpovídat přímo vyplývá z její schopnosti zobecňovat a zvýraznit skryté závislosti mezi vstupními a výstupními daty. Po trénování je síť schopna předpovědět budoucí hodnotu určité sekvence na základě několika předchozích hodnot a (nebo) některých aktuálně existujících faktorů. Prognóza je možná pouze tehdy, když předchozí změny skutečně do určité míry předurčují budoucnost . Například predikce cen akcií na základě cen akcií z minulého týdne může, ale nemusí být úspěšná, zatímco predikce zítřejších výsledků loterie na základě dat za posledních 50 let téměř jistě selže.
Použité architektury neuronových sítíNeuronové sítě mohou aproximovat spojité funkce. Byla prokázána zobecněná aproximační věta [20] : pomocí lineárních operací a kaskádového zapojení je možné získat zařízení z libovolného nelineárního prvku, které počítá libovolnou spojitou funkci s určitou předem stanovenou přesností . To znamená, že nelineární charakteristika neuronu může být libovolná: od sigmatu po libovolný vlnový paket nebo vlnku , sinus nebo polynom . Složitost konkrétní sítě může záviset na volbě nelineární funkce , ale při jakékoli nelinearitě zůstává síť univerzálním aproximátorem a při správné volbě struktury může přesně aproximovat fungování jakéhokoli spojitého automatu.
Použité architektury neuronových sítíSchopnost neuronových sítí identifikovat vztahy mezi různými parametry umožňuje kompaktněji vyjadřovat vysokorozměrná data, pokud jsou data mezi sebou úzce propojena. Opačný proces – obnovení původního souboru dat z části informace – se nazývá (auto)asociativní paměť. Asociativní paměť také umožňuje obnovit původní signál/obraz ze zašuměných/poškozených vstupních dat. Řešení problému heteroasociativní paměti umožňuje implementovat obsahově adresovatelnou paměť [19] .
Některé z těchto kroků by měly být zváženy podrobněji.
Výběr dat pro trénování sítě a jejich zpracování je nejtěžším krokem při řešení problému. Tréninkový datový soubor musí splňovat několik kritérií:
Počáteční data jsou převedena do podoby, ve které je lze odeslat na vstupy sítě. Každý záznam v datovém souboru se nazývá tréninkový pár nebo tréninkový vektor . Tréninkový vektor obsahuje jednu hodnotu pro každý síťový vstup a v závislosti na typu trénování (s dohledem nebo bez dozoru) jednu hodnotu pro každý síťový výstup. Trénink sítě na „surové“ sestavě zpravidla nedává vysoce kvalitní výsledky. Existuje řada způsobů, jak zlepšit „vnímání“ sítě.
Kromě toho hraje důležitou roli prezentace vstupních i výstupních dat. Předpokládejme, že síť je naučená rozpoznávat písmena na obrázcích a má jeden číselný výstup – číslo písmene v abecedě. V tomto případě síť získá falešný dojem, že písmena 1 a 2 jsou si podobnější než písmena 1 a 3, což obecně není pravda. Aby k takové situaci nedocházelo, používá se topologie sítě s velkým počtem výstupů, kdy každý výstup má svůj význam. Čím více výstupů v síti, tím větší je vzdálenost mezi třídami a tím obtížnější je jejich záměna.
Typ sítě by měl být zvolen na základě prohlášení o problému a dostupných tréninkových dat. Učení pod dohledem vyžaduje „expertní“ hodnocení pro každý prvek vzorku. Někdy je získání takového odhadu pro velké množství dat prostě nemožné. V těchto případech je přirozenou volbou nekontrolovaná výuková síť (např. Kohonenova samoorganizující se mapa nebo Hopfieldova neuronová síť ). Při řešení jiných problémů (např. prognózování časových řad) je odborný posudek obsažen již v původních datech a lze jej extrahovat během zpracování. V tomto případě můžete použít vícevrstvý perceptron[ objasnit ] nebo síť Word .
Po zvolení obecné struktury je nutné experimentálně vybrat parametry sítě. U sítí jako perceptron to bude počet vrstev, počet bloků ve skrytých vrstvách (pro sítě Word), přítomnost nebo nepřítomnost bypassových spojení a přenosové funkce neuronů. Při volbě počtu vrstev a neuronů v nich je třeba vycházet ze skutečnosti, že schopnost sítě zobecňovat je tím vyšší, čím větší je celkový počet spojení mezi neurony . Na druhou stranu je počet spojení shora omezen počtem záznamů v trénovacích datech.
Po zvolení konkrétní topologie je nutné zvolit parametry trénování neuronové sítě. Tento krok je zvláště důležitý pro kontrolované sítě . Správná volba parametrů určuje nejen to, jak rychle budou odezvy sítě konvergovat ke správným reakcím. Například volba nízké rychlosti učení prodlouží dobu konvergence, ale někdy se vyhnete paralýze sítě . Zvýšení momentu učení může buď zvýšit nebo snížit dobu konvergence, v závislosti na tvaru chybové plochy . Na základě takového rozporuplného vlivu parametrů lze dojít k závěru, že jejich hodnoty by měly být vybrány experimentálně, vedené kritériem dokončení učení (například minimalizace chyby nebo omezení doby školení).
Během procesu učení síť skenuje trénovací vzorek v určitém pořadí. Pořadí procházení může být sekvenční, náhodné atd. Některé sítě bez dozoru ( například sítě Hopfield ) skenují vzorek pouze jednou. Jiné (jako jsou sítě Kohonen ), stejně jako sítě pod dohledem, skenují vzorek mnohokrát, přičemž jeden úplný průchod vzorkem se nazývá epocha učení . Při učení s učitelem je soubor výchozích dat rozdělen na dvě části – vlastní tréninkový vzorek a testovací data; princip oddělení může být libovolný. Tréninková data se přivádějí do sítě pro trénování a testovací data se používají k výpočtu chyby sítě (testovací data se nikdy nepoužívají k trénování sítě). Pokud se tedy chyba na testovacích datech sníží, síť zobecní. Pokud se chyba v trénovacích datech stále snižuje a chyba v testovacích datech se zvyšuje, pak síť přestala zobecňovat a jednoduše si „pamatuje“ trénovací data. Tento jev se nazývá síťové overfitting nebo overfitting . V takových případech je trénink obvykle zastaven. Během tréninkového procesu se mohou objevit další problémy, jako je paralýza nebo se síť dostane do lokálního minima chybové plochy. Není možné předem předvídat projev konkrétního problému, stejně jako dát jednoznačná doporučení pro jejich řešení.
Vše výše uvedené platí pouze pro iterativní algoritmy pro hledání řešení neuronové sítě. U nich nelze skutečně nic zaručit a nelze plně automatizovat trénování neuronových sítí. Spolu s iterativními algoritmy učení však existují i neiterativní algoritmy, které mají velmi vysokou stabilitu a umožňují plně automatizovat proces učení .
I v případě na první pohled úspěšného školení se síť ne vždy naučí přesně to, co od ní tvůrce chtěl. Je znám případ, kdy byla síť vycvičena k rozpoznání obrázků tanků z fotografií, ale později se ukázalo, že všechny tanky byly vyfotografovány na stejném pozadí. V důsledku toho se síť „naučila“ rozpoznávat tento typ terénu, místo aby se „učila“ rozpoznávat tanky [22] . Síť tedy „chápe“ nikoli to, co se od ní požadovalo, ale to, co je nejjednodušší zobecnit.
Testování kvality trénování neuronové sítě by mělo být prováděno na příkladech, které se nezúčastnily jejího trénování. Počet testovacích případů by měl být tím větší, čím vyšší je kvalita školení. Pokud mají chyby neuronové sítě pravděpodobnost blízkou jedné miliardtině, pak je k potvrzení této pravděpodobnosti potřeba miliarda testovacích případů. Ukazuje se, že testování dobře trénovaných neuronových sítí se stává velmi obtížným úkolem.
V řadě neuronových sítí může aktivační funkce záviset nejen na váhových koeficientech spojení , ale také na době přenosu impulsu (signálu) komunikačními kanály . Obecně tedy má aktivační (přenášecí) funkce spojení z prvku na prvek tvar: . Synchronní síť je pak taková síť, ve které je doba přenosu každého spojení buď nulová, nebo pevná konstanta . Asynchronní síť je síť, ve které je doba přenosu pro každé spojení mezi prvky různá , ale také konstantní.
V dopředných neuronových sítích jsou všechna spojení řízena striktně od vstupních neuronů k výstupním neuronům. Příklady takových sítí jsou Rosenblattův perceptron , vícevrstvý perceptron , sítě Word .
Signál z výstupních neuronů nebo neuronů skryté vrstvy je částečně přenášen zpět na vstupy neuronů vstupní vrstvy ( zpětná vazba ). Rekurentní Hopfieldova síť „filtruje“ vstupní data, vrací se do stabilního stavu a umožňuje tak řešit problémy komprese dat a budování asociativní paměti [23] . Obousměrné sítě jsou zvláštním případem rekurentních sítí. V takových sítích dochází k propojení mezi vrstvami jak ve směru od vstupní vrstvy k výstupní, tak i v opačném směru. Klasickým příkladem je Cosco Neural Network .
Byly vyvinuty neuronové sítě, které používají radiálně-základní (také nazývané RBF) sítě jako aktivační funkce. Celkový pohled na funkci radiální báze:
, například,
kde je vektor vstupních signálů neuronů, je šířka okna funkce, je klesající funkce (nejčastěji rovna nule mimo určitý segment).
Radiálně-základní síť se vyznačuje třemi rysy:
Takové sítě jsou nekontrolované konkurenční neuronové sítě , které plní úlohu vizualizace a shlukování . Jde o metodu promítání vícerozměrného prostoru do prostoru s nižší dimenzí (nejčastěji dvourozměrného), používá se také k řešení problémů modelování, předpovídání apod. Je jednou z verzí Kohonenovy neuronové sítě [ 24] . Kohonenovy samoorganizující se mapy slouží především k vizualizaci a prvotní („průzkumné“) analýze dat [25] .
Signál do Kohonenovy sítě jde do všech neuronů najednou, váhy odpovídajících synapsí jsou interpretovány jako souřadnice polohy uzlu a výstupní signál je tvořen podle principu „vítěz bere vše“ - tedy neuron nejblíže (ve smyslu synapsích vah) vstupnímu signálu má nenulový výstupní signálový objekt. Během procesu učení se váhy synapsí upravují tak, že uzly mřížky jsou „umístěny“ v místech lokálního zhušťování dat, tedy popisují shlukovou strukturu datového cloudu, na druhé straně spoje mezi neurony. odpovídají sousedským vztahům mezi odpovídajícími shluky v prostoru prvků.
Takové mapy je vhodné považovat za dvourozměrné sítě uzlů umístěných ve vícerozměrném prostoru. Zpočátku je samoorganizující se mapa mřížkou uzlů propojených vazbami. Kohonen zvažoval dvě možnosti připojení uzlů - v obdélníkové a šestihranné mřížce - rozdíl je v tom, že v obdélníkové mřížce je každý uzel připojen ke 4 sousedním a v šestiúhelníkové - k šesti nejbližším uzlům. U dvou takových sítí se proces konstrukce Kohonenovy sítě liší pouze v místě, kde procházejí nejbližší sousedé daného uzlu.
Počáteční vnoření mřížky do datového prostoru se volí libovolně. Autorský balíček SOM_PAK nabízí možnosti pro náhodné počáteční umístění uzlů v prostoru a variantu pro umístění uzlů v rovině. Poté se uzly začnou pohybovat v prostoru podle následujícího algoritmu:
Výpočetní systémy založené na neuronových sítích mají řadu vlastností, které u strojů s von Neumannovou architekturou chybí (ale jsou vlastní lidskému mozku):
Vstupním údajem je cena akcií za daný rok. Úkolem je určit zítřejší kurz. Provádí se následující transformace - seřadí se kurz na dnešek, včerejšek, předevčírem. Další řádek se posune podle data o jeden den a tak dále. Na výsledné množině se trénuje síť se 3 vstupy a jedním výstupem - tedy výstup: kurz k datu, vstupy: kurz k datu mínus 1 den, mínus 2 dny, mínus 3 dny. Trénovaná síť je napájena sazbou pro dnešek, včerejšek, předevčírem a dostane odpověď pro zítřek. V tomto případě síť zobrazí závislost jednoho parametru na třech předchozích. Pokud je žádoucí vzít v úvahu nějaký další parametr (například obecný index pro odvětví), pak je třeba jej přidat jako vstup (a zahrnout do příkladů), přeškolit síť a získat nové výsledky. Pro co nejpřesnější trénink se vyplatí použít metodu ORO , která je nejpředvídatelnější a nejsnáze implementovatelná.
Série prací M. G. Dorrera a spoluautorů se věnuje studiu možnosti rozvoje psychologické intuice v expertních systémech neuronových sítí [27] [28] . Získané výsledky poskytují přístup k odhalení mechanismu intuice neuronových sítí, který se projevuje při řešení psychodiagnostických problémů. Vznikl pro počítačové metody nestandardní intuitivní přístup k psychodiagnostike , který spočívá ve vyloučení konstrukce popisované reality . Umožňuje omezit a zjednodušit práci na psychodiagnostických metodách.
Neuronové sítě jsou široce používány v chemickém a biochemickém výzkumu [29] . V současnosti jsou neuronové sítě jednou z nejrozšířenějších metod chemoinformatiky pro hledání kvantitativních vztahů struktura-vlastnost [30] [31] , díky čemuž jsou aktivně využívány jak pro predikci fyzikálně-chemických vlastností a biologické aktivity chemických sloučenin, tak pro řízený návrh chemických sloučenin, sloučenin a materiálů s předem určenými vlastnostmi, včetně vývoje nových léků.
Neuronové sítě se úspěšně používají pro syntézu řídicích systémů pro dynamické objekty [32] [33] .
V oblasti řízení se neuronové systémy používají v problémech identifikace objektů, v algoritmech pro prognózování a diagnostiku a také pro syntézu optimálních ACS. Pro implementaci ACP na bázi ANN se v současné době intenzivně rozvíjí výroba neuročipů a neurokontrolérů (NC) .
V určitém smyslu je ANN mozkovým simulátorem , který má schopnost učit se a navigovat v podmínkách nejistoty. Umělá neuronová síť je podobná mozku ve dvou aspektech. Síť získává znalosti v procesu učení a k ukládání znalostí nepoužívá objekty samotné, ale jejich spojení - hodnoty koeficientů interneuronálních spojení, nazývané synaptické váhy nebo synaptické koeficienty.
Postup učení ANN spočívá v identifikaci synaptických vah, které jí poskytují potřebné transformační vlastnosti. Charakteristickým rysem ANN je jeho schopnost upravovat parametry a strukturu v procesu učení. [34]
Algoritmy neuronových sítí jsou široce používány v ekonomii [35] . Pomocí neuronových sítí je řešen problém vývoje algoritmů pro nalezení analytického popisu zákonitostí fungování ekonomických objektů (podnik, průmysl, region). Tyto algoritmy jsou aplikovány na předpovídání některých "výstupních" indikátorů objektů. Využití metod neuronových sítí umožňuje řešit některé problémy ekonomického a statistického modelování, zvyšovat přiměřenost matematických modelů a přibližovat je ekonomické realitě [36] . Vzhledem k tomu, že ekonomické, finanční a sociální systémy jsou velmi složité a jsou výsledkem lidských akcí a reakcí, je vytvoření kompletního matematického modelu , který bere v úvahu všechny možné akce a reakce, velmi obtížným (pokud řešitelným) úkolem. V systémech této složitosti je přirozené a nejúčinnější používat modely, které přímo napodobují chování společnosti a ekonomiky. Právě to může nabídnout metodika neuronových sítí [37] .
Slovníky a encyklopedie | |
---|---|
V bibliografických katalozích |
|
Typy umělých neuronových sítí | |
---|---|
|
Znalostní inženýrství | |
---|---|
Obecné pojmy | |
Pevné modely | |
Měkké metody | |
Aplikace | |
Strojové učení a dolování dat | |
---|---|
Úkoly | |
Učení s učitelem | |
shluková analýza | |
Redukce rozměrů | |
Strukturální prognózy | |
Detekce anomálií | |
Grafové pravděpodobnostní modely | |
Neuronové sítě | |
Posílení učení |
|
Teorie | |
Časopisy a konference |
|