Umělé neuronové sítě , nebo umělé neuronové sítě , je systém, jehož design byl původně schematicky inspirovat fungování biologických neuronů , a která následně přiblížila statistických metod.
Neuronové sítě jsou obecně optimalizovány metodami učení pravděpodobnostního typu, zejména Bayesovského . Jsou umístěny na jedné straně do rodiny statistických aplikací , kterou obohacují o soubor paradigmat umožňujících vytvářet rychlé klasifikace ( zejména sítě Kohonen ), a na druhé straně do rodiny metod umělé inteligence ke kterému poskytují percepční mechanismus nezávislý na vlastních představ realizátora a vstupní informace pro formální logické uvažování (viz hluboká učení ).
Při modelování biologických obvodů umožňují otestovat některé funkční hypotézy z neurofyziologie nebo dokonce důsledky těchto hypotéz za účelem jejich porovnání s realitou.
Neuronové sítě jsou postaveny na biologickém paradigmatu , formálním neuronu ( genetické algoritmy jsou na přirozeném výběru ). Tyto typy biologických metafor se staly běžnými u myšlenek kybernetiky a biocybernetiky . Podle vzorce Yanna Le Cuna netvrdí, že by popisoval mozek víc než křídlo letadla, například kopíruje mozek ptáka . Zejména není simulována role gliových buněk .
Neurologové Warren McCulloch a Walter Pitts publikovali první práci o neuronových sítích na konci 50. let se zásadním článkem: Co žabí oko řekne mozku žáby ). Poté vytvořili zjednodušený model biologického neuronu, který se běžně označuje jako formální neuron . Ukázali, že jednoduché formální neuronové sítě mohou teoreticky vykonávat složité logické , aritmetické a symbolické funkce.
Formální neuron je koncipován jako automat vybavený přenosovou funkcí, která transformuje jeho vstupy na výstupy podle přesných pravidel. Například neuron sčítá své vstupy, porovnává výsledný součet s prahovou hodnotou a reaguje vydáním signálu, pokud je tento součet větší nebo roven této prahové hodnotě (ultra-zjednodušený model fungování biologického neuronu). Tyto neurony jsou také přidruženy v sítích, jejichž topologie připojení je variabilní: proaktivní, opakující se sítě atd. A konečně, účinnost přenosu signálu z jednoho neuronu do druhého se může lišit: mluvíme o „synaptické hmotnosti“ a tyto váhy lze modulovat pravidly učení (což napodobuje synaptickou plasticitu sítí. Biologických).
Funkcí formálních neuronových sítí, jako je živý model, je rychle vytvářet klasifikace a naučit se je vylepšovat. Na rozdíl od tradičních metod počítačového řešení by člověk neměl vytvářet program krok za krokem na základě jeho porozumění. Důležitými parametry tohoto modelu jsou synaptické koeficienty a prahová hodnota každého neuronu a způsob jejich úpravy. Jsou to ti, kdo určují vývoj sítě podle jejích vstupních informací. Je nutné zvolit mechanismus umožňující je vypočítat a podle možnosti je sblížit k hodnotě zajišťující klasifikaci co nejblíže optimální. Tomu se říká fáze učení sítě. V modelu formálních neuronových sítí se tedy učení rovná stanovení synaptických koeficientů, které jsou nejvhodnější pro klasifikaci předložených příkladů.
Práce McCullocha a Pittsa neposkytla žádné údaje o metodě přizpůsobení synaptických koeficientů. Tato otázka v srdci úvah o učení byla poprvé zodpovězena díky práci kanadského fyziologa Donalda Hebba o učení v roce 1949 popsané v jeho knize Organizace chování . Hebb navrhl jednoduché pravidlo, které umožňuje upravit hodnotu synaptických koeficientů podle aktivity jednotek, které spojují. Toto pravidlo nyní známé jako „ Hebbovo pravidlo “ je v současných modelech přítomno téměř všude, dokonce i v těch nejsofistikovanějších.
Z tohoto článku se myšlenka postupem času ujala v myslích a v roce 1957 vyklíčila v mysli Franka Rosenblatta s modelem perceptronu . Je to první umělý systém schopný učit se ze zkušenosti, i když jeho instruktor udělá nějaké chyby (což se jasně liší od formálního logického systému učení).
V roce 1969 byla zasažena vážná rána vědecké komunitě, která se točila kolem neuronových sítí: Marvin Lee Minsky a Seymour Papert publikovali práci zdůrazňující některá teoretická omezení perceptronu a obecněji lineární klasifikátory , zejména nemožnost léčby nelineárních problémů nebo problémů s propojením . Implicitně rozšířili tato omezení na všechny modely umělých neuronových sítí. Zdálo se, že je ve slepé uličce, že výzkum neuronových sítí ztratil velkou část svého veřejného financování a také se od něj odvrátil průmyslový sektor . Prostředky určené pro umělou inteligenci byly spíše přesměrovány na formální logiku . Silné vlastnosti určitých neuronových sítí v adaptivních záležitostech (např. Adaline ), které jim umožňují evolučním způsobem modelovat jevy, které se samy vyvíjejí, však povedou k tomu, aby byly integrovány ve více či méně explicitních formách do korpusu adaptivních systémů. ; používá se v telekomunikacích nebo řízení průmyslových procesů.
V roce 1982 , John Joseph Hopfield poznal fyzik, dal nový život do neurální publikováním článek zavádí nový model neuronové sítě (zcela rekurentní). Tento článek byl úspěšný z několika důvodů, z nichž hlavní bylo zabarvení teorie neuronových sítí s přísností vlastní fyzikům. Nervová soustava se opět stala přijatelným předmětem studia, ačkoli Hopfieldův model trpěl hlavními omezeními modelů 60. let , zejména neschopností vypořádat se s nelineárními problémy.
Ve stejný den byly algoritmické přístupy k umělé inteligenci předmětem deziluze a jejich aplikace nesplňovaly očekávání. Tato deziluze motivovala k přeorientování výzkumu umělé inteligence směrem k neuronovým sítím (i když se tyto sítě týkají spíše umělého vnímání než přísně vzato umělé inteligence ). Výzkum byl znovu zahájen a průmysl znovu získal určitý neuronální zájem (zejména pro aplikace, jako je navádění řízených střel ). V roce 1984 (?) Byl systém přechodu zpětné propagace nejdiskutovanějším subjektem v této oblasti.
V oblasti umělých neuronových sítí pak nastává revoluce: nová generace neuronových sítí, schopná úspěšně zpracovat nelineární jevy: vícevrstvý perceptron nemá defekty zvýrazněné Marvinem Minskym . Poprvé navržený Paulem Werbosem se v roce 1986 objevil vícevrstvý perceptron, který představil David Rumelhart a současně pod podobným názvem v Yann Le Cun . Tyto systémy jsou založeny na zpětném šíření chybového gradientu v systémech s několika vrstvami, z nichž každá je typu Bernard Widrow Adaline, blízká Rumelhartovu perceptronu.
Neuronové sítě následně zaznamenaly značný rozmach, a byl jedním z prvních systémů prospěch z pochopení teorie „statistické regularizace“ zavedené Vladimir Vapnik v Sovětském svazu a popularizoval na západě po pádu Spojených států. Stěny . Tato teorie, jedna z nejdůležitějších v oblasti statistiky , umožňuje předvídat, studovat a regulovat jevy spojené s overfittingem . Můžeme tedy regulovat systém učení tak, aby rozhodoval v nejlepším případě mezi špatným modelováním (příklad: průměr ) a příliš bohatým modelováním, které by bylo iluzorně optimalizováno na příliš malém počtu příkladů a bylo by nefunkční na příkladech, které se dosud nenaučily, dokonce blízké naučeným příkladům. Overfitting je obtíž, se kterou se potýkají všechny příkladové systémy učení, ať už používají metody přímé optimalizace (např. Lineární regrese ), iterativní (např. Algoritmus gradientu ), nebo iterativní polopřímý ( konjugovaný gradient , očekávání-maximalizace ...) a to aplikují se na klasické statistické modely, na skryté Markovovy modely nebo na formální neuronové sítě.
Neuronové sítě se vyvíjejí s novým typem sítě, který není zcela propojen, aby odlehčil modely z hlediska počtu parametrů a zlepšil výkon a jejich kapacitu pro generalizaci. Jednou z prvních aplikací bylo automatické rozpoznávání amerických poštovních směrovacích čísel se sítí LeNet-5. Ve strojovém učení je konvoluční neurální síť nebo konvoluční neurální síť (CNN nebo ConvNet pro konvoluční neurální sítě) typ acyklické (dopředné) umělé neurální sítě, ve které je vzor spojení mezi neurony inspirován vizuální kůrou zvířat . Neurony v této oblasti mozku jsou uspořádány tak, aby odpovídaly překrývajícím se oblastem při skládání zorného pole. Jejich provoz je inspirován biologickými procesy, skládají se z vícevrstvé sady perceptronů, jejichž účelem je předzpracování malého množství informací. Konvoluční neuronové sítě mají široké uplatnění v rozpoznávání obrazu a videa, doporučovacích systémech a zpracování přirozeného jazyka.
Neuronové sítě, jako systémy schopné učení, implementují princip indukce, tj. Učení zkušeností. Ve srovnání s konkrétními situacemi odvozují integrovaný rozhodovací systém, jehož obecný charakter závisí na počtu zjištěných případů učení a jejich složitosti ve vztahu ke složitosti řešeného problému. Naproti tomu symbolické systémy schopné učení, pokud také implementují indukci, to dělají na základě algoritmické logiky tím, že komplikují sadu deduktivních pravidel ( například Prolog ).
Díky své schopnosti klasifikovat a zobecňovat se neuronové sítě obvykle používají při problémech statistické povahy, jako je automatická klasifikace poštovních směrovacích čísel nebo rozhodování o nákupu akcií na základě cenových pohybů. Dalším příkladem je, že banka může vytvořit soubor údajů o zákaznících, kteří si vzali půjčku, skládající se z: jejich příjmu, věku, počtu nezaopatřených dětí… a zda jsou dobrými zákazníky. Pokud je tato datová sada dostatečně velká, lze ji použít k trénování neuronové sítě. Banka poté bude schopna představit vlastnosti potenciálního nového zákazníka a síť zareaguje, ať už bude dobrým zákazníkem, či nikoli, zobecněním na základě případů, které zná.
Pokud neurální síť pracuje se skutečnými čísly, odpověď odráží pravděpodobnost jistoty. Například: 1 pro „jistý, že bude dobrým zákazníkem“, -1 pro „jistý, že bude špatným zákazníkem“, 0 pro „bez nápadu“, 0,9 pro „téměř jistý, že bude dobrým zákazníkem“.
Neuronová síť ne vždy poskytuje pravidlo, které může člověk použít. Síť často zůstává černou skříní, která poskytuje odpověď, když je předložena s datem, ale síť neposkytuje snadno interpretovatelné odůvodnění.
Neuronové sítě se skutečně používají, například:
Umělé neuronové sítě potřebují skutečné případy, které slouží jako příklady pro jejich učení (tomu se říká učící základna ). Tyto případy musí být o to početnější, že problém je složitý a jeho topologie je nestrukturovaná. Systém čtení neurálních znaků lze tedy optimalizovat pomocí ručního rozdělení velkého počtu slov psaných ručně mnoha lidmi. Každý znak pak může být prezentován ve formě surového obrazu, který má dvourozměrnou prostorovou topologii nebo řadu téměř všech propojených segmentů. Zachovaná topologie, složitost modelovaného jevu a počet příkladů musí souviset. Z praktického hlediska to není vždy snadné, protože příklady mohou být buď v absolutně omezeném množství, nebo příliš nákladné na to, aby byly shromážděny v dostatečném počtu.
Existují problémy, které dobře fungují s neuronovými sítěmi, zejména s klasifikací do konvexních domén (tj. Takové, že pokud jsou body A a B součástí domény, pak je součástí i celý segment AB v). Problémy jako „ Je počet záznamů na 1 (nebo nula) lichý nebo sudý?“ Jsou velmi špatně vyřešeny: prosadit takové věci na 2 silových N bodech, pokud jsme spokojeni s naivním, ale homogenním přístupem, potřebujeme přesně N-1 vrstev mezilehlých neuronů, což je škodlivé pro obecnost procesu.
Karikaturou, ale významným příkladem je následující: síť, která má jako vstup pouze váhu osoby, musí určit, zda je tato osoba žena nebo muž. Vzhledem k tomu, že ženy jsou statisticky o něco lehčí než muži, bude síť vždy fungovat o něco lépe než jednoduché náhodné losování: tento ořezaný příklad ukazuje jednoduchost a omezení těchto modelů, ale také ukazuje, jak je rozšířit: „nošení informace o sukni, pokud ji přidáme, bude mít zjevně větší synaptický koeficient než jednoduchá informace o hmotnosti.
Složité umělé neuronové sítě obvykle nemohou samy vysvětlit svůj způsob „myšlení“. Výpočty vedoucí k výsledku nejsou viditelné pro programátory, kteří vytvořili neuronovou síť. „Umělá inteligence neuroscience“ Proto byl vytvořen s cílem studovat černou skříňku tvořenou neuronových sítí, věda, která by umožnily zvýšit důvěru v dosažené výsledky těchto sítí či umělé inteligence, které je používají.
Neuronová síť je obvykle tvořena řadou vrstev, z nichž každá bere své vstupy z výstupů předchozí. Každá vrstva (i) je tvořena N i neurony, přičemž jejich vstupy jsou z N i-1 neuronů předchozí vrstvy. Každá synapse má s sebou spojenou synaptickou váhu, takže N i-1 se vynásobí touto váhou, poté se přidá neurony úrovně i, což je ekvivalent násobení vstupního vektoru transformační maticí. Pokud by byly různé vrstvy neuronové sítě umístěny jedna za druhou, znamenalo by to kaskádování několika transformačních matic a mohlo by být redukováno na jednu matici, produkt ostatních, pokud by nebyly v každé vrstvě, výstupní funkce, která zavádí nelinearitu na každém kroku. To ukazuje důležitost uvážlivého výběru dobré výstupní funkce: neurální síť, jejíž výstupy by byly lineární, by neměla žádný zájem.
Kromě této jednoduché struktury může neurální síť obsahovat také smyčky, které radikálně mění možnosti, ale také složitost. Stejně jako smyčky mohou transformovat kombinatorickou logiku na sekvenční logiku , smyčky v neurální síti transformují jednoduché zařízení pro rozpoznávání vstupu na složitý stroj schopný všech druhů chování.
Zvažte jakýkoli neuron.
Přijímá řadu hodnot z upstream neuronů prostřednictvím svých synaptických spojení a produkuje určitou hodnotu pomocí kombinační funkce . Tato funkce může být tedy formován jako bytí -to- skalární vektor funkce , a to zejména:
Aktivační funkce (nebo funkce prahování , nebo dokonce přenosová funkce ) se používá k zavedení nelinearity do fungování neuronu.
Prahové funkce mají obecně tři intervaly:
Typickými příklady aktivačních funkcí jsou:
Bayesovská logika, jejíž Cox-Jaynesova věta formalizuje otázky učení, zahrnuje také funkci v S, která se objevuje opakovaně:
Jakmile je tento výpočet proveden, šíří neuron svůj nový vnitřní stav na svém axonu. V jednoduchém modelu je neurální funkce jednoduše prahovou funkcí: rovná se 1, pokud vážený součet překročí určitou prahovou hodnotu; 0 jinak. V bohatším modelu pracuje neuron se skutečnými čísly (často v rozsahu [0,1] nebo [-1,1]). Říkáme, že neuronová síť přechází z jednoho stavu do druhého, když všechny její neurony přepočítávají paralelně svůj vnitřní stav podle svých vstupů.
Pojem učení , i když je již známý od Sumera , nelze modelovat v rámci deduktivní logiky : toto ve skutečnosti vychází z již zavedených znalostí, z nichž se čerpají odvozené znalosti. Jedná se však o obrácený proces: omezeným pozorováním, vyvozováním věrohodných zobecnění: jedná se o proces indukcí .
Pojem učení zahrnuje dvě reality, s nimiž se často zachází:
V případě systémů statistického učení, které se používají k optimalizaci klasických statistických modelů, neuronových sítí a Markovianových automatů, je předmětem veškeré pozornosti generalizace.
S touto představou zevšeobecňování více či méně kompletně zachází několik teoretických přístupů.
V závislosti na struktuře sítě lze díky neuronovým sítím přistupovat k různým typům funkcí:
Funkce reprezentovatelné perceptronemPerceptron (síť s jednou jednotkou) může představovat následující booleovské funkce: and, or, nand, nor ale ne xor. Protože jakoukoli booleovskou funkci lze pomocí těchto funkcí reprezentovat, je perceptronová síť schopna reprezentovat všechny booleovské funkce. Ve skutečnosti jsou funkce nand a ani o nich řečeno, že jsou univerzální: kombinací jedné z těchto funkcí můžeme reprezentovat všechny ostatní.
Funkce reprezentovatelné acyklickými vícevrstvými neuronovými sítěmiDrtivá většina neuronových sítí má „tréninkový“ algoritmus, který spočívá v úpravě synaptických vah podle sady dat prezentovaných na vstupu do sítě. Cílem tohoto tréninku je umožnit neuronové síti „učit se“ z příkladů. Pokud je výcvik proveden správně, je síť schopna poskytovat výstupní odpovědi velmi blízké původním hodnotám datové sady školení. Celý smysl neuronových sítí však spočívá v jejich schopnosti generalizovat z testovací sady. Je tedy možné použít neurální síť k vytvoření paměti; tomu se říká neuronová paměť .
Topologické pohled na učení odpovídá určení hypersurface na kterém je množina reálných čísel , a počet vstupů do sítě.
Na učení se říká, že je pod dohledem, když je síť nucena konvergovat směrem k přesnému koncovému stavu, současně s tím, jak je mu prezentován vzor.
Naopak, během učení bez dozoru je síti ponechána volnost konvergovat do jakéhokoli koncového stavu, když je jí předložen vzor.
OverfittingČasto se stává, že příklady studijní základny obsahují přibližné nebo hlučné hodnoty. Pokud donutíme síť reagovat téměř dokonale na tyto příklady, můžeme získat síť, která je ovlivněna chybnými hodnotami.
Představte si například, že představujeme síti páry, které se nacházejí na linii rovnice , ale hlučné, takže body nejsou přesně na linii. Pokud je dobré učení, síť odpovídá za jakoukoli prezentovanou hodnotu . Pokud dojde k nadměrnému vybavení , síť reaguje o něco více než nebo o něco méně, protože každý pár umístěný mimo pravou stranu ovlivní rozhodnutí: navíc se naučí hluk, což není žádoucí.
Aby nedošlo k přeplnění, existuje jednoduchá metoda: stačí rozdělit základnu příkladů na 2 podmnožiny. První je pro učení a druhá pro hodnocení učení. Dokud se chyba získaná u druhé sady sníží, můžeme pokračovat v učení, jinak se zastavíme.
Šíření zpět je rétropropager chybu synapsí a neuronů jsou k ní připojeny neuron je. U neuronových sítí obvykle používáme zpětné šíření chybového gradientu , které spočívá v opravě chyb podle důležitosti prvků, které se přesně podílely na realizaci těchto chyb: synaptické váhy, které přispívají ke generování chyby. Důležité bude upraveno významnějším způsobem než váhy, které generovaly marginální chybu.
Prořezávání ( prořezávání , angličtina) je metoda, která zabrání přetrénování při současném omezení složitosti modelu. Spočívá v odstranění spojení (nebo synapsí), vstupů nebo neuronů ze sítě, jakmile je učení dokončeno. V praxi jsou prvky, které mají nejmenší vliv na chybu síťového výstupu, potlačeny. Dva příklady algoritmů prořezávání jsou:
Sada vah synaptických vazeb určuje fungování neuronové sítě. Vzory jsou prezentovány podmnožině neurální sítě: vstupní vrstvě. Když je vzor aplikován na síť, snaží se dosáhnout stabilního stavu. Když je dosaženo, výsledkem jsou aktivační hodnoty výstupních neuronů. Neurony, které nejsou součástí vstupní vrstvy ani výstupní vrstvy, se nazývají skryté neurony .
Typy neuronové sítě se liší v několika parametrech:
V rámci tréninku těchto neuronových sítí bude pravděpodobně implementováno mnoho dalších parametrů, například:
Síť ADALINE je blízká modelu perceptronu , liší se pouze její aktivační funkce, protože používá lineární funkci. Aby se snížilo rušení přijímané na vstupu, používají sítě ADALINE metodu nejmenších čtverců .
Síť realizuje vážený součet svých vstupních hodnot a přidává k nim předdefinovanou prahovou hodnotu. Funkce lineárního přenosu se poté použije k aktivaci neuronu. Při učení se synaptické koeficienty různých položek mění pomocí zákona Widrow-Hoffa (in) . Tyto sítě se často používají při zpracování signálu, zejména pro redukci šumu.
Cauchyho strojCauchyho stroj je umělá neurální síť, která je docela podobná ve fungování Boltzmannova stroje . Použité zákony pravděpodobností však nejsou stejné.
Není podrobnýV tomto typu učení bez dozoru soupeří neurony o to, aby byly aktivní. Jsou to binární výstup a my říkáme, že jsou aktivní, když je jejich výstup roven 1. Zatímco v ostatních pravidlech může být aktivních několik výstupů neuronů současně, v případě kompetitivního učení je aktivní pouze jeden neuron v daném okamžiku. . Každý výstupní neuron se specializuje na „detekci“ řady podobných tvarů a poté se stává detektorem funkcí. V tomto případě je vstupní funkcí, kde , a jsou prahové hodnoty, synaptické váhy a vstupní vektory. Vítězný neuron je ten, pro který je h maximální, takže pokud jsou prahové hodnoty stejné, ten, jehož váhy jsou nejblíže vstupům. Neuron s maximálním výstupem bude vítězem a jeho výstup bude nastaven na 1, zatímco poražení budou mít svůj výstup nastavený na 0. Neuron se učí pohybem svých vah na hodnoty vstupů, které jej aktivují, aby zvýšily svůj šance na výhru. Pokud neuron nereaguje na vstup, nedojde k žádné úpravě hmotnosti. Pokud neuron vyhraje, část hmotností všech vstupů se přerozdělí na váhy aktivních vstupů. Použitím pravidla získáte následující výsledky (Grossberg):
Účinkem tohoto pravidla je přiblížení vektoru synaptické hmotnosti k vstupnímu tvaru .
Příklad: zvažte dva mračna bodů v rovině, které chceme rozdělit do dvou tříd. a jsou dva vstupy a jsou váhy neuronu 1, které lze považovat za souřadnice bodu „hmotnost neuronu 1“ a a jsou váhy neuronu 2. Pokud jsou prahové hodnoty nulové, hi bude vzdálenost mezi body, které mají být klasifikovány, a váhové body. Předchozí pravidlo má tendenci zmenšovat tuto vzdálenost od bodu vzorkování, když vyhraje neuron. Musí proto umožnit, aby se každý váhový bod umístil uprostřed mraku. Pokud nastavíme váhy náhodně zpočátku, může se stát, že jeden z neuronů je umístěn poblíž dvou mraků a druhý je umístěn daleko, takže nikdy nevyhraje. Jeho váhy se nikdy nebudou moci vyvinout, zatímco váhy druhého neuronu jej umístí do středu dvou mraků. Problém těchto neuronů, které považujeme za mrtvé, lze vyřešit hraním na prahových hodnotách. Opravdu stačí zvýšit práh těchto neuronů, aby mohli začít vyhrávat.
Aplikace: tento typ sítě a odpovídající metodu učení lze použít při analýze dat, aby se zvýraznily podobnosti mezi určitými daty.
Jako model se neuronové sítě obecně používají v kontextu softwarové simulace. IMSL a Matlab tedy mají knihovny věnované neuronovým sítím. Existuje však několik hardwarových implementací jednodušších modelů, jako je například čip ZISC .