• Neuronové sítě jsou matematický aparát. Neuronové sítě: co to je a jak je značky používají

    V první polovině roku 2016 se svět doslechl o mnoha novinkách v oblasti neuronových sítí - předvedl Google (síťový přehrávač v AlphaGo), Microsoft (řada služeb pro identifikaci obrázků), startupy MSQRD, Prisma a další jejich algoritmy.

    Do záložek

    Redaktoři webu říkají, co jsou neuronové sítě, k čemu jsou, proč zajali planetu právě teď, a ne roky dříve nebo později, kolik na nich můžete vydělat a kdo jsou hlavní hráči na trhu. Své názory sdíleli i odborníci z Moskevského institutu fyziky a technologie, Yandex, Mail.Ru Group a Microsoft.

    Co jsou neuronové sítě a jaké úlohy mohou řešit

    Neuronové sítě jsou jedním ze směrů ve vývoji systémů umělé inteligence. Cílem je co nejvěrněji modelovat, jak funguje lidský nervový systém – konkrétně jeho schopnost učit se a opravovat chyby. To je hlavní rys každé neuronové sítě – je schopna se samostatně učit a jednat na základě předchozích zkušeností, pokaždé dělá méně a méně chyb.

    Neuronová síť napodobuje nejen činnost, ale i strukturu lidského nervového systému. Taková síť se skládá z velkého počtu jednotlivých výpočetních prvků („neuronů“). Ve většině případů každý „neuron“ odkazuje na určitou vrstvu sítě. Vstupní data jsou postupně zpracovávána na všech vrstvách sítě. Parametry každého „neuronu“ se mohou měnit v závislosti na výsledcích získaných na předchozích sadách vstupních dat a tím se mění pořadí činnosti celého systému.

    Andrey Kalinin, vedoucí Mail.ru Search v Mail.Ru Group, poznamenává, že neuronové sítě jsou schopny řešit stejné úkoly jako jiné algoritmy strojového učení, rozdíl spočívá pouze v přístupu k učení.

    Všechny úlohy, které neuronové sítě dokážou vyřešit, nějak souvisí s učením. Mezi hlavní oblasti použití neuronových sítí patří prognózování, rozhodování, rozpoznávání vzorů, optimalizace, analýza dat.

    Ředitel programů technologické spolupráce společnosti Microsoft v Rusku Vlad Shershulsky poznamenává, že neuronové sítě se nyní používají všude: „Mnoho velkých internetových stránek je například používá k tomu, aby reakce na chování uživatelů byla pro jejich publikum přirozenější a užitečnější. Neuronové sítě jsou základem většiny moderních systémů rozpoznávání a syntézy řeči, stejně jako rozpoznávání a zpracování obrazu. Používají se v některých navigačních systémech, ať už jde o průmyslové roboty nebo bezpilotní prostředky. Algoritmy založené na neuronových sítích chrání informační systémy před útoky vetřelců a pomáhají identifikovat nelegální obsah v síti.“

    Shershulsky věří, že v krátkodobém horizontu (5-10 let) budou neuronové sítě využívány ještě více:

    Představte si zemědělský kombajn s několika videokamerami v ovladačích. Za minutu pořídí pět tisíc snímků každé rostliny v pruhu její trajektorie a pomocí neuronové sítě analyzuje, zda se jedná o plevel, zda není napadena chorobou nebo škůdci. A zachází s každou rostlinou individuálně. Fantastický? Už opravdu ne. A za pět let se to může stát normou. - Vlad Shershulsky, Microsoft

    Michail Burtsev, vedoucí laboratoře neuronových systémů a hlubokého učení v MIPT Center for Living Systems, uvádí předběžnou mapu vývoje neuronových sítí pro období 2016-2018:

    • systémy pro rozpoznávání a klasifikaci objektů v obrazech;
    • rozhraní hlasové interakce pro internet věcí;
    • systémy pro sledování kvality služeb v call centrech;
    • systémy pro detekci problémů (včetně predikce doby údržby), anomálií, kybernetických fyzických hrozeb;
    • intelektuální bezpečnostní a monitorovací systémy;
    • nahrazení části funkcí operátorů call center roboty;
    • systémy pro analýzu videa;
    • samoučící se systémy, které optimalizují řízení materiálových toků nebo umístění objektů (ve skladech, dopravě);
    • inteligentní, samoučící se řídicí systémy pro výrobní procesy a zařízení (včetně robotických);
    • vznik univerzálních překladatelských systémů „za běhu“ pro konference a osobní použití;
    • vznik botů-poradců technické podpory nebo osobních asistentů, pokud jde o funkce blízké osobě.

    Grigory Bakunov, ředitel pro šíření technologií ve společnosti Yandex, věří, že schopnost takových systémů činit různá rozhodnutí se v příštích pěti letech stane základem pro šíření neuronových sítí: „Hlavní věc, kterou neuronové sítě pro člověka nyní dělají, je aby ho uchránil před přílišným rozhodováním. Lze je tedy použít téměř všude, kde ne příliš inteligentní rozhodnutí činí živý člověk. V příštích pěti letech bude využita právě tato dovednost, která nahradí lidské rozhodování jednoduchým strojem.“

    Proč se neuronové sítě staly tak populární právě teď

    Vědci vyvíjejí umělé neuronové sítě již více než 70 let. První pokus o formalizaci neuronové sítě se datuje do roku 1943, kdy dva američtí vědci (Warren McCulloch a Walter Pitts) představili článek o logickém počtu lidských nápadů a nervové aktivity.

    Nicméně až donedávna, říká Andrey Kalinin z Mail.Ru Group, byla rychlost neuronových sítí příliš nízká na to, aby mohly být široce používány, a proto se takové systémy používaly hlavně ve vývoji souvisejícím s počítačovým viděním a jiné algoritmy byly používány v jiných strojové učení.

    Pracnou a časově náročnou součástí procesu vývoje neuronové sítě je její trénování. Aby neuronová síť mohla správně řešit zadané úlohy, je potřeba „proběhnout“ svou práci na desítkách milionů vstupních datových sad. Právě s příchodem různých technologií zrychleného učení spojují Andrey Kalinin a Grigory Bakunov šíření neuronových sítí.

    Hlavní věc, která se nyní stala, je to, že se objevily různé triky, které vám umožňují vytvářet neuronové sítě, které jsou mnohem méně náchylné k nadměrnému vybavení. - Grigory Bakunov, Yandex

    „Za prvé se objevila velká a veřejně dostupná řada označených obrázků (ImageNet), na kterých se můžete učit. Za druhé, moderní grafické karty umožňují trénovat a používat neuronové sítě stokrát rychleji. Do třetice se objevily hotové, předtrénované neuronové sítě, rozpoznávající obrázky, na jejichž základě lze vytvářet vlastní aplikace bez dlouhodobé přípravy neuronové sítě na práci. To vše poskytuje velmi silný rozvoj neuronových sítí v oblasti rozpoznávání vzorů,“ poznamenává Kalinin.

    Jaké jsou tržní velikosti neuronových sítí

    „Velmi snadné spočítat. Můžete vzít jakoukoli oblast, která využívá málo kvalifikovanou pracovní sílu – například operátory call centra – a jednoduše odečíst všechny lidské zdroje. Řekl bych, že se bavíme o mnohamiliardovém trhu, a to i v rámci jedné země. To, kolik lidí na světě se podílí na práci s nízkou kvalifikací, lze snadno pochopit. Takže i velmi abstraktně si myslím, že mluvíme o trhu za sto miliard dolarů po celém světě,“ říká Grigory Bakunov, ředitel distribuce technologií ve společnosti Yandex.

    Podle některých odhadů bude více než polovina profesí automatizována – to je maximální částka, o kterou lze zvýšit trh s algoritmy strojového učení (a zejména neuronovými sítěmi) – Andrey Kalinin, Mail.Ru Group

    „Algoritmy strojového učení jsou dalším krokem v automatizaci jakýchkoli procesů, ve vývoji jakéhokoli softwaru. Trh se proto přinejmenším shoduje s celým softwarovým trhem, ale spíše jej předčí, protože je možné vytvářet nová inteligentní řešení, která jsou pro starý software nepřístupná, “pokračuje Andrey Kalinin, vedoucí Mail.ru Search ve skupině Mail.Ru Group. .

    Proč vývojáři neuronových sítí vytvářejí mobilní aplikace pro masový trh

    V posledních měsících se na trhu objevilo několik vysoce profilovaných zábavních projektů využívajících neuronové sítě najednou - jde o populární video službu, kterou je sociální síť Facebook, a ruské aplikace pro zpracování obrazu (v červnu investice od Mail .Ru Group) a další.

    Schopnosti vlastních neuronových sítí předvedl také Google (technologie AlphaGo vyhrála v Go šampiona; v březnu 2016 korporace prodala v aukci 29 obrazů nakreslených neuronovými sítěmi a tak dále) a Microsoft (projekt CaptionBot, který uznává obrázky v obrázcích a automaticky k nim generuje popisky; projekt WhatDog, který z fotografie určuje plemeno psa; služba HowOld, která určuje věk člověka na obrázku atd.), a Yandex (v červnu , tým zabudoval do aplikace Avto.ru službu pro rozpoznávání aut na obrázcích, představil hudební album, v květnu vytvořil projekt LikeMo.net pro kreslení ve stylu slavných umělců).

    Takové zábavní služby jsou vytvářeny spíše než k řešení globálních problémů, na které jsou neuronové sítě zaměřeny, ale k demonstraci schopností neuronové sítě a provádění jejího tréninku.

    „Hry jsou charakteristickým rysem našeho chování jako biologického druhu. Na jedné straně lze téměř všechny typické scénáře lidského chování modelovat na herních situacích, na druhé straně mohou mít tvůrci her a především hráči z tohoto procesu velkou radost. Nechybí ani čistě utilitární aspekt. Dobře navržená hra přináší nejen uspokojení hráčům: při hře trénují algoritmus neuronové sítě. Neuronové sítě jsou totiž založeny na učení na příkladech, “říká Vlad Shershulsky z Microsoftu.

    „Především se to děje proto, abychom ukázali možnosti technologie. Jiný důvod opravdu není. Pokud se bavíme o Prismě, tak je jasné, proč to udělali. Kluci postavili nějaké potrubí, které jim umožňuje pracovat s obrázky. Aby to demonstrovali, zvolili celkem jednoduchý způsob vytváření stylizací. Proč ne? Toto je jen ukázka toho, jak algoritmy fungují,“ říká Grigory Bakunov z Yandexu.

    Andrey Kalinin z Mail.Ru Group má jiný názor: „Samozřejmě, z pohledu veřejnosti je to velkolepé. Na druhou stranu bych neřekl, že zábavní produkty nelze aplikovat do užitečnějších oblastí. Například úkol stylizace obrázků je mimořádně relevantní pro řadu odvětví (design, počítačové hry, animace - jen několik příkladů) a plné využití neuronových sítí může výrazně optimalizovat náklady a způsoby vytváření obsahu pro ně.

    Hlavní hráči na trhu neuronových sítí

    Jak poznamenává Andrei Kalinin, většina neuronových sítí na trhu se od sebe příliš neliší. „Technologie je pro všechny přibližně stejná. Ale použití neuronových sítí je potěšením, které si nemůže dovolit každý. Chcete-li trénovat neuronovou síť sami a provádět na ní spoustu experimentů, potřebujete velké tréninkové sady a flotilu strojů s drahými grafickými kartami. Je zřejmé, že velké společnosti takové možnosti mají,“ říká.

    Mezi hlavními hráči na trhu Kalinin zmiňuje Google a jeho divizi Google DeepMind, která vytvořila síť AlphaGo, a Google Brain. Microsoft má v této oblasti vlastní vývoj – zabývá se jimi laboratoř Microsoft Research. Neuronové sítě vznikají u IBM, Facebooku (divize Facebook AI Research), Baidu (Baidu Institute of Deep Learning) a dalších. Mnoho vývojů se provádí na technických univerzitách po celém světě.

    Grigory Bakunov, ředitel pro šíření technologií ve společnosti Yandex, poznamenává, že zajímavý vývoj v oblasti neuronových sítí lze nalézt také mezi startupy. „Vzpomněl bych si například na ClarifAI. Jedná se o malý startup, který kdysi vytvořili lidé z Googlu. Nyní jsou pravděpodobně nejlepší na světě v identifikaci obsahu obrázku.“ Mezi tyto startupy patří MSQRD, Prisma a další.

    V Rusku vývoj v oblasti neuronových sítí provádějí nejen startupy, ale také velké technologické společnosti – například holding Mail.Ru Group využívá neuronové sítě pro zpracování a klasifikaci textů ve „Vyhledávání“, analýzu obrazu . Společnost také provádí experimentální vývoj související s roboty a konverzačními systémy.

    Yandex také vytváří vlastní neuronové sítě: „V zásadě se takové sítě již používají při práci s obrázky, se zvukem, ale zkoumáme jejich možnosti v jiných oblastech. Nyní děláme spoustu experimentů s využitím neuronových sítí při práci s textem.“ Vývoj se provádí na univerzitách: na Skoltech, Moskevském fyzikálním a technologickém institutu, Moskevské státní univerzitě, Vysoké škole ekonomické a dalších.

    Neuronové sítě jsou třídou analytických metod postavených na (hypotetických) principech učení myslících bytostí a fungování mozku, které umožňují předpovídat hodnoty některých posunů v nových pozorováních na základě výsledků jiných pozorování (pro stejné resp. další směny) po projití etapou tzv. učení na stávajících.data.

        1. Základní pojmy o neuronových sítích

    Nejčastěji se neuronové sítě používají k řešení následujících problémů:

      klasifikace obrázků - označení příslušnosti vstupního obrázku, reprezentovaného příznakovým vektorem, k jedné nebo více předdefinovaným třídám;

      shlukování - klasifikace obrázků při absenci trénovacího vzorku s popisky tříd;

      prognózování - poskytnutí hodnoty y(tn+1) se známou posloupností y(t1), y(t2) ... y(tn);

      optimalizace - nalezení řešení, které vyhovuje systému omezení a maximalizuje nebo minimalizuje účelovou funkci. Paměť, která je adresována významem (asociativní paměť) - paměť, která je k dispozici při specifikaci daného obsahu;

      řízení - výpočet takového vstupního vlivu na systém, pro který systém pracuje po požadované trajektorii.

    Strukturálním základem neuronové sítě je formální neuron. Neuronové sítě vznikly z pokusů obnovit schopnost biologických systémů učit se modelováním nízkokořenové struktury mozku. K tomu je model neuronové sítě založen na prvku, který v první aproximaci napodobuje vlastnosti biologického neuronu - formálního neuronu (dále jen neuron). V lidském těle jsou neurony speciální buňky schopné šířit elektrochemické signály.

    Neuron má rozvětvenou strukturu pro vstup informace (dendrity), jádro a výstup, který se větví (axon). Jsou-li neurony propojeny určitým způsobem, tvoří neuronovou síť. Každý neuron je charakterizován určitým aktuálním stavem a má skupinu synapsí - jednosměrných vstupních spojení připojených k výstupům jiných neuronů a také má axon - počáteční spojení tohoto neuronu, po kterém signál (narušení nebo inhibice) jde do synapsí následujících neuronů (obr. 8.1).

    Rýže. 8.1. Struktura formálního neuronu.

    Každá synapse je charakterizována hodnotou synaptického spojení nebo jeho hmotností wi, která je fyzikálním obsahem ekvivalentní elektrické vodivosti.

    Aktuální stav (úroveň aktivace) neuronu je určen, pokud je vážený součet jeho vstupů:

    (1)

    kde na vstup neuronu vstupuje množina signálů označená x1, x2,..., xn, každý signál je zvýšen o odpovídající váhu w1, w2,...,wn a tvoří jeho aktivační úroveň - S. Výstup neuronu je funkcí jeho úrovní aktivací:

    Y=f(S) (2)

    Při fungování neuronových sítí je naplněn princip paralelního zpracování signálů. Dosahuje se toho spojením velkého počtu neuronů do tzv. vrstev a propojením neuronů různých vrstev určitým způsobem, stejně jako v některých konfiguracích neuronů stejné vrstvy mezi sebou a zpracováním interakce všech neurony se uskutečňují ve vrstvách.

    R
    je. 8.2. Architektura neuronové sítě s n neurony na vstupu a třemi neurony ve zdrojové vrstvě (jednovrstvý perceptron).

    Jako příklad nejjednodušší neuronové sítě uvažujme jednovrstvý perceptron s n neurony ve vstupní vrstvě a třemi neurony ve zdrojové vrstvě (obr. 8.2). Když některé signály dorazí na n vstupů, projdou synapsemi ke 3 původním neuronům. Tento systém tvoří jednu vrstvu neuronové sítě a produkuje tři počáteční signály:

    Je zřejmé, že všechny váhové koeficienty synapsí jedné vrstvy neuronů lze redukovat na matici wj, jejíž každý prvek wij nastavuje hodnotu synaptického spojení i-tého neuronu vstupu a j-tého neuronu. počáteční vrstvy (3).

    (3)

    Proces, který se vyskytuje v neuronové síti, lze tedy zapsat ve formě matice:

    kde x a y jsou vstupní a zdrojové vektory, f(v) je aktivační funkce, která je aplikována prvek po prvku na složky vektoru v.

    Volba struktury neuronové sítě se provádí podle vlastností a složitosti úlohy. Pro řešení některých konkrétních typů problémů již existují optimální konfigurace. Pokud nelze úlohu redukovat na žádný ze známých typů, musí vývojář vyřešit obtížný problém syntézy nové konfigurace.

    Možná taková klasifikace existujících neuronových sítí:

    Podle typu vstupních informací:

      sítě, které analyzují binární informace;

      sítě, které fungují na reálných číslech.

    Podle způsobu výuky:

      sítě, které je třeba před použitím naučit;

      sítě, které nepotřebují předchozí školení, jsou schopny se samy při práci učit.

    Podle povahy šíření informací:

      jednosměrný, ve kterém jsou informace distribuovány pouze v jednom směru z jedné vrstvy do druhé;

      rekurentní sítě, ve kterých může být původní signál prvku opět přiváděn na tento prvek a další prvky sítě této nebo předchozí vrstvy jako vstupní signál.

    Podle způsobu transformace vstupní informace:

      autoasociativní;

      heteroasociativní.

    Při dalším rozvíjení otázky možné klasifikace neuronových sítí je důležité poznamenat existenci binárních a analogových sítí. První z nich pracují s binárními signály a výstup každého neuronu může nabývat pouze dvou hodnot: logická nula ("suspendovaný" stav) a logická jednička ("excitovaný" stav). Další klasifikace rozděluje neuronové sítě na synchronní a asynchronní. V prvním případě mění svůj stav vždy pouze jeden neuron. Ve druhém se stav okamžitě změní v celé skupině neuronů, zpravidla v celé vrstvě.

    Sítě lze také klasifikovat podle počtu vrstev. Na Obr. 8.3 ukazuje dvouvrstvý perceptron získaný z perceptronu na Obr. 8.2 přidáním druhé vrstvy, která se skládá ze dvou neuronů.

    R
    je. 8.3. Architektura neuronové sítě s jednosměrným šířením signálu je dvouvrstvý perceptron.

    Pokud vezmeme v úvahu práci neuronových sítí, které řeší problém klasifikace obrázků, pak obecně jejich práce sestává z klasifikace (zobecnění) vstupních signálů, které patří do n-rozměrného hyperprostoru, podle určitého počtu tříd. Z matematického hlediska se to děje rozbitím hyperprostoru nadrovinami (zápis pro případ jednovrstvého perceptronu)

    , (5),

    Kde k=1...m- číslo třídy.

    Každý výsledný obor je oborem samostatné třídy. Počet takových tříd pro jednu neuronovou síť typu perceptron nepřesahuje 2m, kde m je počet síťových výstupů. Ne všechny však může daná neuronová síť distribuovat.

    Dobré odpoledne, jmenuji se Natalia Efremová a jsem výzkumný pracovník v NtechLab. Dnes budu hovořit o typech neuronových sítí a jejich aplikaci.

    Nejprve mi dovolte říci pár slov o naší společnosti. Společnost je nová, možná mnoho z vás neví, co děláme. Minulý rok jsme vyhráli výzvu MegaFace. Jedná se o mezinárodní soutěž v rozpoznávání tváří. V témže roce byla otevřena i naše firma, to znamená, že jsme na trhu asi rok, i o něco více. V souladu s tím jsme jednou z předních společností v oblasti rozpoznávání obličeje a zpracování biometrických snímků.

    První část mé zprávy bude zaměřena na ty, kteří neznají neuronové sítě. Přímo se věnuji hlubokému učení. V této oblasti pracuji více než 10 let. Ačkoli se objevil o něco méně než před deseti lety, dříve existovaly určité základy neuronových sítí, které vypadaly jako systém hlubokého učení.

    Za posledních 10 let se hluboké učení a počítačové vidění vyvíjely neuvěřitelným tempem. Vše, co se v této oblasti významného udělalo, se stalo za posledních 6 let.

    Budu mluvit o praktických aspektech: kde, kdy, co uplatnit v rámci hlubokého učení pro zpracování obrazu a videa, pro rozpoznávání obrazu a obličeje, protože pracuji pro společnost, která to dělá. Budu mluvit trochu o rozpoznávání emocí, jaké přístupy se používají ve hrách a robotice. Budu také mluvit o nestandardní aplikaci hlubokého učení, o něčem, co teprve vychází z vědeckých institucí a v praxi se stále málo využívá, jak se dá aplikovat a proč je těžké aplikovat.

    Zpráva se bude skládat ze dvou částí. Protože většina lidí zná neuronové sítě, nejprve rychle vysvětlím, jak neuronové sítě fungují, co jsou biologické neuronové sítě, proč je pro nás důležité vědět, jak fungují, co jsou umělé neuronové sítě a jaké architektury se používají ve kterých oblasti.

    Okamžitě se omlouvám, skočím trochu do anglické terminologie, protože většinu z toho, jak se tomu říká rusky, ani nevím. Možná i vy.

    První část zprávy bude tedy věnována konvolučním neuronovým sítím. Vysvětlím, jak funguje rozpoznávání obrazu konvoluční neuronovou sítí (CNN) na příkladu z rozpoznávání obličeje. Budu mluvit trochu o rekurentních neuronových sítích (RNN) a posílení učení na příkladu systémů hlubokého učení.

    Jako nestandardní aplikaci neuronových sítí budu mluvit o tom, jak CNN funguje v medicíně pro rozpoznávání voxelových obrazů, jak se používají neuronové sítě k rozpoznání chudoby v Africe.

    Co jsou to neuronové sítě

    Kupodivu biologické neuronové sítě sloužily jako prototyp pro vytváření neuronových sítí. Možná mnozí z vás ví, jak naprogramovat neuronovou síť, ale myslím, že odkud se vzala, někteří ne. Dvě třetiny všech smyslových informací, které k nám přicházejí, pochází ze zrakových orgánů vnímání. Přes jednu třetinu povrchu našeho mozku zabírají dvě nejdůležitější zrakové oblasti – dorzální zraková dráha a ventrální zraková dráha.

    Dorzální zraková dráha začíná v primární zrakové zóně, v naší temeni hlavy, a pokračuje vzhůru, zatímco ventrální dráha začíná v zadní části naší hlavy a končí zhruba za našimi ušima. Veškeré důležité rozpoznávání vzorů, které máme, veškerý význam, kterého si uvědomujeme, se odehrává přímo tam, za ušima.

    Proč je to důležité? Protože je často nutné porozumět neuronovým sítím. Za prvé o tom všichni mluví a už jsem si zvykl, že se to děje, za druhé je fakt, že všechny oblasti, které se v neuronových sítích používají pro rozpoznávání vzorů, k nám přišly právě z ventrální zrakové dráhy, kde každá malá zóna je zodpovědná za její přesně definovanou funkci.

    Obraz k nám přichází ze sítnice, prochází řadou zrakových zón a končí v časové zóně.

    Ve vzdálených 60. letech minulého století, kdy studium vizuálních oblastí mozku teprve začínalo, byly první experimenty prováděny na zvířatech, protože neexistovala žádná fMRI. Mozek byl vyšetřen pomocí elektrod implantovaných do různých zrakových zón.

    První vizuální zónu prozkoumali David Hubel a Thorsten Wiesel v roce 1962. Dělali pokusy na kočkách. Kočkám byly ukázány různé pohyblivé předměty. Na co mozkové buňky reagovaly, byl podnět, který zvíře rozpoznalo. I nyní se těmito drakonickými způsoby provádí mnoho experimentů. Ale přesto je to nejúčinnější způsob, jak zjistit, co dělá každá malinká buňka v našem mozku.

    Stejně tak bylo objeveno mnohem více důležitých vlastností vizuálních zón, které nyní používáme v hlubokém učení. Jednou z nejdůležitějších vlastností je zvětšení receptivních polí našich buněk při přechodu z primárních zrakových oblastí do temporálních laloků, tedy pozdějších zrakových oblastí. Receptivní pole je ta část obrazu, kterou zpracovává každá buňka našeho mozku. Každá buňka má své vlastní receptivní pole. Tato stejná vlastnost je zachována v neuronových sítích, jak asi všichni víte.

    S nárůstem receptivních polí také přibývají komplexní podněty, které neuronové sítě obvykle rozpoznávají.

    Zde vidíte příklady složitosti podnětů, různých dvourozměrných tvarů, které jsou rozpoznány v oblastech V2, V4 a různých částech časových polí u makaků. Provádí se také řada MRI experimentů.

    Zde se můžete podívat, jak takové experimenty probíhají. Jedná se o 1 nanometrovou část IT kortexu „zóny opice při rozpoznávání různých objektů. Zvýrazněné tam, kde je rozpoznáno.

    Pojďme si to shrnout. Důležitou vlastností, kterou chceme převzít z vizuálních oblastí, je to, že se zvětšují velikosti receptivních polí a zvyšuje se složitost objektů, které rozpoznáváme.

    počítačové vidění

    Než jsme se naučili, jak to aplikovat na počítačové vidění - obecně jako takové neexistovalo. Každopádně to nefungovalo tak dobře jako teď.

    Všechny tyto vlastnosti přeneseme do neuronové sítě a nyní to funguje, pokud nezahrnete malou odbočku k datovým sadám, o kterých budu mluvit později.

    Nejprve ale něco málo o nejjednodušším perceptronu. Tvoří se také podle obrazu a podoby našeho mozku. Nejjednodušším prvkem připomínajícím mozkovou buňku je neuron. Obsahuje vstupní prvky, které jsou ve výchozím nastavení zleva doprava, občas zdola nahoru. Vlevo jsou vstupní části neuronu, vpravo výstupní části neuronu.

    Nejjednodušší perceptron je schopen provádět pouze ty nejzákladnější operace. Abychom mohli provádět složitější výpočty, potřebujeme strukturu s více skrytými vrstvami.

    V případě počítačového vidění potřebujeme ještě více skrytých vrstev. A teprve potom systém smysluplně rozpozná, co vidí.

    Co se tedy stane při rozpoznávání obrázku, vám řeknu na příkladu tváří.

    Abychom se podívali na tento obrázek a řekli, že zobrazuje tvář sochy, je docela jednoduché. Do roku 2010 to však byl pro počítačové vidění neuvěřitelně obtížný úkol. Kdo se touto problematikou zabýval před touto dobou, asi ví, jak těžké bylo beze slov popsat předmět, který chceme na obrázku najít.

    Museli jsme to udělat nějakým geometrickým způsobem, popsat předmět, popsat vztah předmětu, jak spolu tyto části mohou souviset, pak najít tento obrázek na předmětu, porovnat je a získat to, co jsme špatně poznali. Obvykle to bylo o něco lepší než hod mincí. O něco lepší než úroveň šance.

    Nyní tomu tak není. Náš obrázek rozdělíme buď na pixely, nebo na nějaké záplaty: 2x2, 3x3, 5x5, 11x11 pixelů - jak je vhodné pro tvůrce systému, ve kterém slouží jako vstupní vrstva do neuronové sítě.

    Signály z těchto vstupních vrstev jsou přenášeny z vrstvy do vrstvy pomocí synapsí, každá z vrstev má své specifické koeficienty. Takže přecházíme z vrstvy do vrstvy, z vrstvy do vrstvy, dokud nedosáhneme, že jsme poznali obličej.

    Obvykle lze všechny tyto části rozdělit do tří tříd, budeme je označovat jako X, W a Y, kde X je náš vstupní obrázek, Y je sada štítků a potřebujeme získat naše váhy. Jak vypočítáme W?

    Vzhledem k našim X a Y se to zdá být snadné. To, co je však označeno hvězdičkou, je velmi složitá nelineární operace, která bohužel nemá inverzní. I se 2 danými složkami rovnice je velmi obtížné ji vypočítat. Proto musíme postupně, metodou pokus-omyl, volbou váhy W, zajistit, aby se chyba co nejvíce zmenšila, je žádoucí, aby se rovnala nule.

    Tento proces probíhá iterativně, neustále klesáme, dokud nenajdeme hodnotu váhy W, která nás dostatečně uspokojí.

    Mimochodem ani jedna neuronová síť, se kterou jsem pracoval, nedosáhla chyby rovné nule, ale fungovalo to docela dobře.

    Zde je první síť, která zvítězila v mezinárodní soutěži ImageNet v roce 2012. Jedná se o tzv. AlexNet. Toto je síť, která jako první oznámila, že existují konvoluční neuronové sítě, a od té doby ve všech mezinárodních soutěžích konvoluční neuronové sítě nikdy neztratily své pozice.

    Navzdory tomu, že tato síť je poměrně malá (má pouze 7 skrytých vrstev), obsahuje 650 000 neuronů s 60 miliony parametrů. Abychom se iterativně naučili najít správné váhy, potřebujeme spoustu příkladů.

    Neuronová síť se učí na příkladu obrázku a štítku. Jak nás v dětství učili „toto je kočka a toto je pes“, neuronové sítě jsou trénovány na velkém množství obrázků. Faktem ale je, že před rokem 2010 neexistoval dostatečně velký soubor dat, který by dokázal naučit tolik parametrů rozpoznávat obrázky.

    Největší databáze, které do té doby existovaly, byly PASCAL VOC, který měl pouze 20 kategorií objektů, a Caltech 101, který byl vyvinut na California Institute of Technology. Ta poslední měla 101 kategorií a to bylo hodně. Ti, kteří nemohli najít své objekty v žádné z těchto databází, museli stát své databáze, což, řeknu, je strašně bolestivé.

    V roce 2010 se však objevila databáze ImageNet, ve které bylo 15 milionů obrázků rozdělených do 22 000 kategorií. To vyřešilo náš problém s tréninkem neuronové sítě. Nyní může každý, kdo má jakoukoli akademickou adresu, snadno přejít na stránky základny, požádat o přístup a získat tuto základnu pro trénování svých neuronových sítí. Reagují poměrně rychle, podle mého názoru, druhý den.

    Ve srovnání s předchozími datovými soubory se jedná o velmi rozsáhlou databázi.

    Příklad ukazuje, jak bezvýznamné bylo všechno, co bylo předtím. Současně se základnou ImageNet se objevila soutěž ImageNet, mezinárodní výzva, které se mohou zúčastnit všechny týmy, které chtějí soutěžit.

    Letos zvítězila síť vytvořená v Číně, měla 269 vrstev. Nevím, kolik parametrů, mám podezření, že je příliš mnoho.

    Architektura hluboké neuronové sítě

    Obvykle se dá rozdělit na 2 části: ty, které studují, a ty, které nestudují.

    Černá označuje ty části, které se neučí, všechny ostatní vrstvy jsou schopny se učit. Existuje mnoho definic toho, co je uvnitř každé konvoluční vrstvy. Jedním z přijatých označení je, že jedna vrstva se třemi složkami je rozdělena na konvoluční fázi, detektorovou fázi a sdružovací fázi.

    Nebudu zabíhat do podrobností, bude mnohem více zpráv, které budou podrobně popisovat, jak to funguje. Řeknu vám to na příkladu.

    Jelikož mě pořadatelé požádali, abych mnoho vzorců nezmiňoval, vyhodil jsem je úplně.

    Vstupní obraz tedy spadá do sítě vrstev, které lze nazvat filtry různých velikostí a různé složitosti prvků, které rozpoznávají. Tyto filtry tvoří svůj vlastní index nebo sadu funkcí, které se pak dostanou do klasifikátoru. Obvykle se jedná o SVM nebo MLP - vícevrstvý perceptron, který je vhodný pro každého.

    Na obrázku a podobnosti s biologickou neuronovou sítí jsou rozpoznány objekty různé složitosti. Jak se zvýšil počet vrstev, toto vše ztratilo kontakt s kůrou, protože v neuronové síti je omezený počet zón. 269 ​​nebo mnoho, mnoho zón abstrakce, takže je ušetřeno pouze zvýšení složitosti, počtu prvků a receptivních polí.

    Když se podíváme na příklad rozpoznávání obličeje, tak naše vnímavé pole první vrstvy bude malé, pak trochu víc, víc a tak dále, až nakonec dokážeme rozpoznat celý obličej.

    Pokud jde o to, co máme uvnitř filtrů, nejprve tam budou šikmé tyčinky plus nějaká barva, pak části obličejů a pak bude celý obličej rozpoznán každou buňkou vrstvy.

    Jsou lidé, kteří tvrdí, že člověk vždy pozná lépe než síť. Je to tak?

    V roce 2014 se vědci rozhodli otestovat, jak dobře rozpoznáváme ve srovnání s neuronovými sítěmi. Vzali 2 nejlepší sítě v tuto chvíli - to jsou AlexNet a síť Matthewa Zillera a Ferguse a porovnali je s odezvou různých oblastí mozku makaka, který se také naučil rozpoznávat některé objekty. Předměty byly ze zvířecí říše, aby se opice nespletla, a prováděly se pokusy, kdo lépe pozná.

    Protože je zjevně nemožné získat odpověď od opice, byly do ní implantovány elektrody a reakce každého neuronu byla přímo měřena.

    Ukázalo se, že za normálních podmínek reagovaly mozkové buňky stejně jako tehdejší nejmodernější model, tedy síť Matthewa Zillera.

    S nárůstem rychlosti zobrazování objektů, nárůstem počtu ruchů a objektů v obraze však prudce klesá rychlost rozpoznávání a jeho kvalita v našem mozku i mozku primátů. I ta nejjednodušší konvoluční neuronová síť rozpoznává objekty lépe. To znamená, že oficiálně fungují neuronové sítě lépe než náš mozek.

    Klasické problémy konvolučních neuronových sítí

    Vlastně jich není tolik, patří do tří tříd. Patří mezi ně takové úkoly, jako je identifikace objektů, sémantická segmentace, rozpoznávání obličeje, rozpoznávání částí lidského těla, detekce sémantických hranic, výběr objektů pozornosti v obraze a výběr normál k povrchu. Mohou být podmíněně rozděleny do 3 úrovní: od úkolů nejnižší úrovně po úkoly nejvyšší úrovně.

    Pomocí tohoto obrázku jako příkladu se podívejme, co každý z úkolů dělá.

    • Definice hranic- jde o úlohu nejnižší úrovně, pro kterou se již klasicky používají konvoluční neuronové sítě.
    • Definice vektoru k normále nám umožňuje rekonstruovat 3D obraz z 2D.
    • Výraznost, definice objektů pozornosti- to je to, na co by člověk dával pozor, když uvažuje o tomto obrázku.
    • Sémantická segmentace umožňuje rozdělit objekty do tříd podle jejich struktury, aniž byste o těchto objektech cokoliv věděli, tedy ještě dříve, než jsou rozpoznány.
    • Zvýraznění sémantických hranic- to je výběr hranic, rozdělených do tříd.
    • Izolace částí lidského těla.
    • A úkol nejvyšší úrovně - rozpoznávání samotných předmětů, kterou nyní zvážíme na příkladu rozpoznávání obličeje.

    Rozpoznávání obličejů

    První věc, kterou uděláme, je přejet detektorem obličeje přes obrázek, abychom našli obličej. Poté obličej normalizujeme, vycentrujeme a spustíme pro zpracování do neuronové sítě. Poté získáme sadu nebo vektor prvků, které jedinečně popisuje rysy této tváře.

    Poté můžeme tento příznakový vektor porovnat se všemi příznakovými vektory, které jsou uloženy v naší databázi, a získat tak referenci na konkrétní osobu, na její jméno, na její profil – vše, co můžeme do databáze uložit.

    Takto funguje náš produkt FindFace – je to bezplatná služba, která vám pomůže vyhledat profily lidí v databázi VKontakte.

    Navíc máme API pro firmy, které chtějí naše produkty vyzkoušet. Poskytujeme služby detekce obličeje, ověřování a identifikace uživatelů.

    Nyní jsme vytvořili 2 scénáře. První je identifikace, vyhledání osoby v databázi. Druhým je ověření, jedná se o porovnání dvou obrázků s určitou pravděpodobností, že se jedná o stejnou osobu. Kromě toho v současné době vyvíjíme rozpoznávání emocí, rozpoznávání obrazu videa a detekci živosti – to je pochopení toho, zda je člověk před kamerou nebo fotografií naživu.

    Nějaká statistika. Při identifikaci při vyhledávání 10 tisíc fotek máme přesnost cca 95% dle kvality databáze, 99% přesnost ověření. A kromě toho je tento algoritmus velmi odolný vůči změnám - nemusíme se dívat do kamery, můžeme mít nějaké blokující předměty: brýle, sluneční brýle, vousy, lékařskou masku. V některých případech dokážeme překonat i tak neuvěřitelné obtíže pro počítačové vidění, jako jsou brýle a maska.

    Velmi rychlé vyhledávání, zpracování 1 miliardy fotografií trvá 0,5 sekundy. Vyvinuli jsme unikátní index rychlého vyhledávání. Umíme pracovat i s nekvalitním obrazem z CCTV kamer. To vše dokážeme zpracovat v reálném čase. Fotografie můžete nahrávat přes webové rozhraní, přes Android, iOS a prohledávat 100 milionů uživatelů a jejich 250 milionů fotografií.

    Jak jsem řekl, obsadili jsme první místo v soutěži MegaFace - analogie pro ImageNet, ale pro rozpoznávání obličeje. Funguje to už několik let, loni jsme byli nejlepší mezi 100 týmy z celého světa včetně Googlu.

    Rekurentní neuronové sítě

    Rekurentní neuronové sítě používáme tehdy, když nám nestačí rozpoznat pouze obraz. V případech, kdy je pro nás důležité dodržet posloupnost, potřebujeme pořadí, co se s námi děje, používáme běžné rekurentní neuronové sítě.

    Aplikuje se na rozpoznávání přirozeného jazyka, zpracování videa, dokonce i rozpoznávání obrazu.

    Nebudu hovořit o rozpoznávání přirozeného jazyka – po mé zprávě budou další dvě, které budou zaměřeny na rozpoznávání přirozeného jazyka. Proto budu mluvit o práci rekurentních sítí na příkladu rozpoznávání emocí.

    Co jsou rekurentní neuronové sítě? To je přibližně stejné jako u běžných neuronových sítí, ale se zpětnou vazbou. Pro přenos předchozího stavu systému na vstup neuronové sítě nebo do jedné z jejích vrstev potřebujeme zpětnou vazbu.

    Předpokládejme, že zpracováváme emoce. I v úsměvu – jedné z nejjednodušších emocí – je několik okamžiků, od neutrálního výrazu obličeje až po chvíle, kdy máme plný úsměv. Následují za sebou v pořadí. Abychom tomu dobře porozuměli, musíme být schopni pozorovat, jak se to děje, přenést to, co bylo na předchozím snímku, do dalšího kroku systému.

    V roce 2005 na soutěži Emotion Recognition in the Wild speciálně pro rozpoznávání emocí představil tým z Montrealu opakující se systém, který vypadal velmi jednoduše. Měla jen pár konvolučních vrstev a pracovala výhradně s videem. Letos přidali také rozpoznávání zvuku a agregovaná data snímek po snímku, která jsou získávána z konvolučních neuronových sítí, data audio signálu s rekurentním provozem neuronové sítě (stavová) a vyhráli první místo v soutěži.

    Posílení učení

    Dalším typem neuronových sítí, který je v poslední době velmi často používán, ale nedostal tak širokou publicitu jako předchozí 2 typy, je hluboké učení, posílení učení.

    Faktem je, že v předchozích dvou případech používáme databáze. Buď máme data z tváří, nebo data z obrázků, nebo data s emocemi z videí. Když to nemáme, když to nemůžeme natočit, jak můžeme naučit robota sbírat předměty? Děláme to automaticky – nevíme, jak to funguje. Další příklad: kompilace rozsáhlých databází v počítačových hrách je obtížná a není nutná, lze to udělat mnohem jednodušeji.

    Každý pravděpodobně slyšel o úspěchu učení hlubokého posílení v Atari a Go.

    Kdo slyšel o Atari? Někdo to slyšel, dobře. Myslím, že každý slyšel o AlphaGo, takže vám ani neřeknu, co se tam přesně děje.

    Co se děje v Atari? Architektura této neuronové sítě je právě zobrazena vlevo. Učí se hraním sama se sebou, aby získala maximální odměnu. Maximální odměnou je nejrychlejší výsledek hry s nejvyšším možným skóre.

    Vpravo nahoře - poslední vrstva neuronové sítě, která zobrazuje celý počet stavů systému, který proti sobě hrál pouhé dvě hodiny. Červená ukazuje požadované výsledky hry s maximální odměnou a modrá - nežádoucí. Síť si buduje určité pole a přes své natrénované vrstvy se posouvá do stavu, kterého chce dosáhnout.

    V robotice je situace trochu jiná. Proč? Zde máme několik komplikací. Za prvé, nemáme mnoho databází. Zadruhé potřebujeme koordinovat tři systémy najednou: vnímání robota, jeho akce pomocí manipulátorů a jeho paměť – co bylo provedeno v předchozím kroku a jak to bylo provedeno. Obecně je to všechno velmi obtížné.

    Faktem je, že žádná neuronová síť, dokonce ani hloubkové učení v tuto chvíli, nedokáže zvládnout tento úkol dostatečně efektivně, takže hluboké učení je pouze část toho, co roboti potřebují. Například Sergey Levin nedávno poskytl systém, který učí robota chytat předměty.

    Zde jsou experimenty, které provedl na svých 14 robotických pažích.

    Co se tam děje? V těchto mísách, které vidíte před sebou, jsou různé předměty: pera, gumy, menší a větší hrnky, hadry, různé textury, různé tvrdosti. Není jasné, jak vycvičit robota, aby je zachytil. Po mnoho hodin a dokonce i týdnů, kdy byli roboti trénovaní, aby byli schopni tyto objekty zachytit, byly při této příležitosti sestavovány databáze.

    Databáze jsou jakousi reakcí prostředí, kterou potřebujeme nashromáždit, abychom mohli robota vycvičit, aby v budoucnu něco dělal. V budoucnu budou roboti trénováni na tuto sadu stavů systému.

    Nestandardní aplikace neuronových sítí

    To je bohužel konec, nemám moc času. Budu hovořit o těch nestandardních řešeních, která nyní existují a která podle mnoha prognóz budou mít v budoucnu nějaké uplatnění.

    Stanfordští vědci tedy nedávno přišli s velmi neobvyklou aplikací neuronové sítě CNN pro předpověď chudoby. Co dělali?

    Ve skutečnosti je koncept velmi jednoduchý. Faktem je, že v Africe míra chudoby přesahuje všechny myslitelné a nepředstavitelné meze. Nemají ani možnost sbírat sociálně demografická data. Od roku 2005 proto nemáme vůbec žádná data o tom, co se tam děje.

    Vědci sbírali denní a noční mapy ze satelitů a v průběhu času je přiváděli do neuronové sítě.

    Neuronová síť byla předkonfigurována na ImageNet "e. To znamená, že první vrstvy filtrů byly nakonfigurovány tak, aby dokázala rozpoznat některé velmi jednoduché věci, například střechy domů, pro vyhledávání osady na denních mapách. Poté byly denní mapy ve srovnání s nočními mapami osvětlení stejné plochy povrchu, aby bylo možné říci, kolik peněz má obyvatelstvo na osvětlení svých domovů alespoň v noci.

    Zde vidíte výsledky predikce vytvořené neuronovou sítí. Předpověď byla vytvořena s různými rozlišeními. A vidíte – úplně poslední snímek – skutečná data shromážděná vládou Ugandy v roce 2005.

    Je vidět, že neuronová síť provedla poměrně přesnou předpověď, a to i s mírným posunem od roku 2005.

    Byly samozřejmě vedlejší účinky. Vědci, kteří se zabývají hlubokým učením, jsou vždy překvapeni, když najdou různé vedlejší účinky. Například jako ty, které se síť naučila rozpoznávat vodu, lesy, velká staveniště, silnice – to vše bez učitelů, bez předem vybudovaných databází. Obecně zcela nezávislý. Byly tam určité vrstvy, které reagovaly například na silnice.

    A poslední aplikací, o které bych chtěl mluvit, je sémantická segmentace 3D obrazů v medicíně. Obecně platí, že lékařské zobrazování je složitá oblast, se kterou je velmi obtížné pracovat.

    Důvodů je několik.

    • Máme velmi málo databází. Najít snímek mozku kromě poškozeného není tak snadné a také jej nelze odkudkoli vzít.
    • I když máme takový obrázek, musíme vzít medika a donutit ho, aby ručně umístil všechny vícevrstvé obrázky, což je časově velmi náročné a extrémně neefektivní. Ne všichni lékaři na to mají prostředky.
    • Vyžaduje se velmi vysoká přesnost. Lékařský systém se nemůže mýlit. Při poznávání např. tuleňů nepoznali – je to v pořádku. A pokud nádor nepoznáme, tak to není moc dobré. Na spolehlivost systému jsou kladeny obzvláště tvrdé požadavky.
    • Obrazy v trojrozměrných prvcích – voxely, nikoli pixely, což přináší návrhářům systému další složitost.
    Ale jak jste tento problém v tomto případě obešli? CNN byla dual-stream. Jedna část zpracovávala normálnější rozlišení, druhá o něco horší rozlišení, aby se snížil počet vrstev, které potřebujeme trénovat. Díky tomu se mírně zkrátil čas na trénování sítě.

    Kde se používá: k určení poškození po úderu, k hledání nádoru v mozku, v kardiologii k určení, jak funguje srdce.

    Zde je příklad pro stanovení objemu placenty.

    Automaticky to funguje dobře, ale ne natolik, aby to bylo uvolněno do výroby, takže se to teprve rozjíždí. Existuje několik startupů, které takové systémy lékařského vidění vytvářejí. Obecně platí, že v blízké budoucnosti je v hlubokém učení spousta startupů. Říkají, že investoři rizikového kapitálu vyčlenili za posledních šest měsíců více rozpočtu na startupy s hlubokým učením než za posledních 5 let.

    Tato oblast se aktivně rozvíjí, existuje mnoho zajímavých směrů. Žijeme v zajímavé době. Pokud se zabýváte hlubokým učením, pak je pravděpodobně čas, abyste si otevřeli svůj vlastní startup.

    No, asi s tím skončím. Děkuji mnohokrát.

    Problematika umělé inteligence a neuronových sítí je nyní populárnější než kdykoli předtím. Mnoho uživatelů si stále častěji klade otázky, jak neuronové sítě fungují, co to je a na čem je založen princip jejich činnosti?

    Tyto otázky, spolu s jejich popularitou, jsou také značně složité, protože procesy jsou složité algoritmy strojového učení navržené pro různé účely, od analýzy změn po modelování rizik spojených s určitými akcemi.

    Co jsou neuronové sítě a jejich typy?

    První otázka, která mezi zájemci vyvstává, je, co je to neuronová síť? V klasické definici se jedná o určitou sekvenci neuronů, které jsou vzájemně propojeny synapsemi. Neuronové sítě jsou zjednodušeným modelem biologických analogů.

    Program, který má strukturu neuronové sítě, umožňuje stroji analyzovat vstupní data a zapamatovat si výsledek získaný z určitých zdrojů. Následně tento přístup umožňuje načíst z paměti výsledek odpovídající aktuálnímu souboru dat, pokud již existoval při zkušenostech se síťovými cykly.

    Mnozí vnímají neuronovou síť jako analog lidského mozku. Na jednu stranu lze tento úsudek považovat za blízký pravdě, ale na druhou stranu je lidský mozek příliš složitým mechanismem na to, aby jej dokázal znovu vytvořit pomocí stroje byť jen na zlomek procenta. Neuronová síť je primárně program založený na principu mozku, ale ne jeho analog.

    Neuronová síť je shluk neuronů, z nichž každý přijímá informace, zpracovává je a předává dalšímu neuronu. Každý neuron zpracovává signál přesně stejným způsobem.

    V čem je pak výsledek jiný? Je to všechno o synapsích, které spojují neurony mezi sebou. Jeden neuron může mít obrovské množství synapsí, které zesilují nebo zeslabují signál, přičemž mají schopnost v průběhu času měnit své vlastnosti.

    Jsou to právě správně zvolené parametry synapse, které umožňují získat správný výsledek transformace vstupních dat na výstupu.

    Po obecné definici toho, co neuronová síť je, můžeme rozlišit hlavní typy jejich klasifikace. Před pokračováním v klasifikaci je třeba uvést jedno upřesnění. Každá síť má první vrstvu neuronů, která se nazývá vstup.

    Neprovádí žádné výpočty a transformace, jeho úkol je jediný: přijímat a distribuovat vstupní signály dalším neuronům. Toto je jediná vrstva, která je společná všem typům neuronových sítí a jejich další struktura je kritériem pro hlavní rozdělení.

    • Jednovrstvá neuronová síť. Jedná se o strukturu interakce mezi neurony, ve které se po vstupu vstupních dat do první vstupní vrstvy okamžitě přenášejí na výstupní vrstvu konečného výsledku. V tomto případě se nebere v úvahu první vstupní vrstva, protože neprovádí žádné jiné akce než přijímání a distribuci, to již bylo zmíněno výše. A druhá vrstva provádí všechny potřebné výpočty a zpracování a okamžitě dává konečný výsledek. Vstupní neurony jsou spojeny s hlavní vrstvou synapsemi, které mají různé váhové koeficienty, které zajišťují kvalitu spojení.
    • Vícevrstvá neuronová síť. Jak je zřejmé z definice, tento typ neuronových sítí má kromě vstupní a výstupní vrstvy také mezivrstvy. Jejich počet závisí na stupni složitosti samotné sítě. Je to spíše struktura biologické neuronové sítě. Tyto typy sítí byly vyvinuty poměrně nedávno, předtím byly všechny procesy implementovány pomocí jednovrstvých sítí. V souladu s tím má takové řešení mnohem více možností než jeho předchůdce. V procesu zpracování informací představuje každá mezivrstva mezistupeň ve zpracování a distribuci informací.

    V závislosti na směru distribuce informací přes synapse z jednoho neuronu do druhého lze sítě také rozdělit do dvou kategorií.

    • Sítě přímého šíření nebo jednosměrné, to znamená struktura, ve které se signál pohybuje striktně ze vstupní vrstvy do výstupní vrstvy. Pohyb signálu v opačném směru není možný. Takový vývoj je poměrně rozšířený a v současné době úspěšně řeší problémy, jako je rozpoznávání, předpovědi nebo shlukování.
    • Sítě se zpětnou vazbou nebo opakující se. Takové sítě umožňují pohyb signálu nejen vpřed, ale i v opačném směru. co to dává? V takových sítích lze na základě toho vrátit výsledek výstupu na vstup, výstup neuronu je určen váhami a vstupními signály a je doplněn o předchozí výstupy, které se opět vrátily na vstup. Takové sítě se vyznačují funkcí krátkodobé paměti, na jejímž základě se při zpracování obnovují a doplňují signály.

    Toto nejsou jediné možnosti klasifikace sítí.

    Lze je rozdělit na homogenní a hybridní na základě typů neuronů, které tvoří síť. A také na heteroasociativní nebo autoasociativní, v závislosti na metodě síťového tréninku, s učitelem nebo bez něj. Sítě můžete také klasifikovat podle jejich účelu.

    Kde se používají neuronové sítě?

    Neuronové sítě se používají k řešení různých problémů. Uvažujeme-li úlohy podle stupně složitosti, pak je pro řešení nejjednodušších úloh vhodný běžný počítačový program, více
    složité úlohy, které vyžadují jednoduché předpovídání nebo přibližné řešení rovnic, používají se programy využívající statistické metody.

    Úkoly ještě složitější úrovně ale vyžadují zcela jiný přístup. Týká se to zejména rozpoznávání vzorů, řeči nebo komplexní predikce. V hlavě člověka k takovým procesům dochází nevědomě, to znamená, že při rozpoznávání a zapamatování obrazů si člověk neuvědomuje, jak k tomuto procesu dochází, a proto jej nemůže ovládat.

    Právě tyto úlohy pomáhají neuronové sítě řešit, to znamená, že jsou určeny k provádění procesů, jejichž algoritmy jsou neznámé.

    Neuronové sítě jsou tedy široce používány v následujících oblastech:

    • uznání a tento směr je v současnosti nejširší;
    • predikce dalšího kroku, tato funkce je použitelná při obchodování a akciových trzích;
    • klasifikace vstupních dat podle parametrů, tuto funkci vykonávají úvěroví roboti, kteří jsou schopni rozhodovat při schvalování půjčky osobě na základě vstupní sady různých parametrů.

    Díky schopnostem neuronových sítí jsou velmi oblíbené. Lze je naučit mnoho věcí, například hraní her, rozpoznání určitého hlasu a podobně. Na základě toho, že umělé sítě jsou postaveny na principu biologických sítí, lze je trénovat ve všech procesech, které člověk nevědomě provádí.

    Co je to neuron a synapse?

    Co je tedy neuron v kontextu umělých neuronových sítí? Tento koncept se týká jednotky, která provádí výpočty. Přijímá informace ze vstupní vrstvy sítě, provádí s nimi jednoduché výpočty a požírá je dalšímu neuronu.

    V síti jsou tři typy neuronů: vstupní, skryté a výstupní. Navíc, pokud je síť jednovrstvá, pak neobsahuje skryté neurony. Kromě toho existuje řada jednotek nazývaných zkreslený neuron a kontextový neuron.

    Každý neuron má dva typy dat: vstupní a výstupní. V tomto případě jsou vstupní data první vrstvy rovna výstupním datům. V jiných případech vstup neuronu přijímá celkové informace z předchozích vrstev, poté prochází procesem normalizace, to znamená, že všechny hodnoty, které spadají mimo požadovaný rozsah, jsou převedeny aktivační funkcí.

    Jak bylo uvedeno výše, synapse je spojení mezi neurony, z nichž každý má svůj vlastní stupeň hmotnosti. Je to díky této vlastnosti, že vstupní informace se během procesu přenosu mění. Při zpracování budou převládat informace přenášené synapsí s velkým indikátorem váhy.

    Ukazuje se, že výsledek neovlivňují neurony, ale synapse, které dávají určitou sadu vah vstupních dat, protože samotné neurony provádějí pokaždé úplně stejné výpočty.

    Váhy jsou nastaveny náhodně.

    Schéma neuronové sítě

    Představit princip fungování neuronové sítě nevyžaduje speciální dovednosti. Určité informace vstupují do vstupní vrstvy neuronů. Přenáší se přes synapse do další vrstvy, přičemž každá synapse má svůj váhový koeficient a každý následující neuron může mít několik příchozích synapsí.

    Výsledkem je, že informace přijaté dalším neuronem jsou součtem všech dat, každý vynásobený svým vlastním váhovým koeficientem. Výsledná hodnota se dosadí do aktivační funkce a získá se výstupní informace, která se přenáší dále, dokud nedosáhne konečného výstupu. První spuštění sítě nedává správné výsledky, protože síť ještě není natrénována.

    Aktivační funkce slouží k normalizaci vstupních dat. Existuje mnoho takových funkcí, ale existuje několik hlavních, které jsou nejpoužívanější. Jejich hlavním rozdílem je rozsah hodnot, ve kterých působí.

    • Lineární funkce f(x) = x, nejjednodušší ze všech možných, slouží pouze k testování vytvořené neuronové sítě nebo k přenosu dat v původní podobě.
    • Sigmoid je považován za nejběžnější aktivační funkci a má tvar f(x) = 1 / 1+e-×; přičemž rozsah jeho hodnot je od 0 do 1. Nazývá se také logistická funkce.
    • Hyperbolická tečna se používá také k pokrytí záporných hodnot. F(x) = e²× - 1 / e²× + 1 - tato funkce má takový tvar a rozsah, který má, je od -1 do 1. Pokud neuronová síť neumožňuje použití záporných hodnot, pak by to nemělo používat.

    Aby bylo možné nastavit data pro provoz sítě, jsou zapotřebí trénovací sady.

    Integrace je počítadlo, které se zvyšuje s každou tréninkovou sadou.

    Epocha je měřítkem toho, jak dobře je neuronová síť trénována, a zvyšuje se pokaždé, když síť prochází celou sadou trénovacích sad.

    V souladu s tím, abyste správně trénovali síť, musíte provádět sady a neustále zvyšovat indikátor epochy.

    Během školení budou zjištěny chyby. Toto je procentuální rozdíl mezi získaným výsledkem a požadovaným výsledkem. Tento ukazatel by se měl v procesu zvyšování ukazatele epochy snižovat, jinak je někde chyba vývojáře.

    Co je zkreslený neuron a k čemu slouží?

    V neuronových sítích existuje další typ neuronu – zkreslený neuron. Od hlavního typu neuronů se liší tím, že jeho vstup a výstup je v každém případě roven jedné. Zároveň takové neurony nemají vstupní synapse.

    Uspořádání takových neuronů se vyskytuje jeden na vrstvu a ne více a nemohou být navzájem spojeny synapsemi. Takové neurony není vhodné umisťovat na výstupní vrstvu.

    K čemu jsou potřeba? Jsou situace, kdy neuronová síť prostě nemůže najít správné řešení kvůli tomu, že požadovaný bod bude mimo dosah. Právě k tomu jsou takové neurony potřeba, aby bylo možné posunout doménu definice.

    To znamená, že váha synapse mění křivku grafu funkce, zatímco posunový neuron umožňuje posun podél souřadnicové osy X, takže neuronová síť může bez posunu zachytit oblast, která je pro ni nepřístupná. V tomto případě lze řazení provést jak doprava, tak doleva. Schematicky se neurony posuvu většinou neoznačují, jejich váha se standardně zohledňuje při výpočtu vstupní hodnoty.

    Neurony zkreslení vám také umožní získat výsledek v případě, že všechny ostatní neurony dávají jako výstupní parametr 0. V tomto případě, bez ohledu na váhu synapse, bude tato hodnota přenášena do každé další vrstvy.

    Přítomnost zaujatého neuronu napraví situaci a získá jiný výsledek. Proveditelnost použití zkreslených neuronů je určena testováním sítě s nimi a bez nich a porovnáním výsledků.

    Je ale důležité si uvědomit, že k dosažení výsledků nestačí vytvořit neuronovou síť. Musí být také vyškolen, což také vyžaduje speciální přístupy a má své vlastní algoritmy. Tento proces lze stěží nazvat jednoduchým, protože jeho implementace vyžaduje určité znalosti a úsilí.

    Úvahu o materiálu začněme představením a definicí samotného pojmu umělý nervový systém.

    Lze jej považovat za analogový výpočetní komplex, který využívá jednoduché prvky pro zpracování dat, převážně paralelně propojené mezi sebou. Prvky pro zpracování dat provádějí se svými vstupními daty velmi jednoduché logické nebo aritmetické operace. Základem fungování umělého nervového systému je, že s každým prvkem takového systému jsou spojeny váhové koeficienty. Tyto váhy představují informace uložené v systému.

    Schéma typického umělého neuronu

    Neuron může mít mnoho vstupů, ale pouze jeden výstup. Lidský mozek obsahuje přibližně neuronů a každý neuron může mít tisíce spojení s ostatními. Vstupní signály neuronu se vynásobí váhovými koeficienty a sečtou, aby se získal celkový vstup neuronu − :

    Rýže. 1.Typický umělý neuron

    Funkce, která spojuje výstup neuronu s jeho vstupy, se nazývá aktivační funkce. Má podobu sigmoidní funkce θ . Formalizace reakce neuronu spočívá v tom, že původní signál je vyslán na jednu z hranic při příjmu velmi malých a velmi velkých vstupních signálů. Navíc je s každým neuronem spojena prahová hodnota − θ , který se ve vzorci pro výpočet výstupního signálu odečte od celkového vstupního signálu. Výsledkem je, že výstup neuronu, O, je často popsán takto:

    Struktura sítě s backpropagation " alt="Backpropagation síťová struktura" width="450" height="370">!}

    Rýže. 2. Síť s backpropagation

    Backpropagation síť se zpravidla dělí na tři segmenty, i když mohou být vytvořeny i další segmenty. Segmenty (segmenty) umístěné mezi vstupními a výstupními segmenty se nazývají skryté segmenty, protože vnější svět vnímá vizuálně pouze vstupní a výstupní segmenty. Síť, která vyhodnocuje hodnotu logické operace XOR, vytváří na výstupu skutečnou hodnotu pouze v případech, kdy ne všechny její vstupy jsou pravdivé hodnoty nebo ne všechny její vstupy jsou chybné hodnoty. Počet uzlů ve skrytém sektoru se může lišit v závislosti na účelu projektu.

    Charakteristika neuronových sítí

    Nutno podotknout, že neuronové sítě nevyžadují programování v obvyklém slova smyslu. K trénování neuronových sítí se používají speciální trénovací algoritmy neuronových sítí, jako je backpropagation a backpropagation. Programátor "programuje" síť tím, že dává vstupy a odpovídající výstupy. Síť se učí automatickým nastavováním vah pro synaptická spojení mezi neurony.

    Váhové koeficienty spolu s prahovými hodnotami neuronů určují povahu distribuce dat po síti a tím nastavují správnou reakci na data použitá v tréninkovém procesu. Trénink sítě pro získání správných odpovědí může trvat dlouho. Kolik závisí na tom, kolik obrázků by se mělo během síťového tréninku naučit, a také na možnostech použitého hardwaru a pomocného softwaru. Po dokončení školení je však síť schopna reagovat vysokou rychlostí.

    Svým způsobem architektura umělého nervového systému liší od ostatních počítačových systémů. V klasickém informačním systému je realizována možnost propojení diskrétních informací s paměťovými prvky. Informační systém například typicky ukládá data o konkrétním objektu do skupiny souvislých paměťových prvků. Schopnosti přístupu k datům a manipulaci s nimi je tedy dosaženo vytvořením vztahu jedna ku jedné mezi atributy objektu a adresami paměťových buněk, ve kterých jsou zaznamenány.

    Na rozdíl od takových systémů jsou modely umělých nervových systémů vyvíjeny na základě moderních teorií fungování mozku, podle kterých jsou informace v mozku reprezentovány pomocí váhových koeficientů. Přitom neexistuje přímá korelace mezi konkrétní hodnotou váhového koeficientu a konkrétním prvkem uložené informace.

    Taková distribuovaná prezentace informací je podobná technologii pro ukládání a prezentaci obrázků, která se používá v hologramech. Podle této technologie působí linie hologramu jako difrakční mřížky. S jejich pomocí je při průchodu laserovým paprskem reprodukován uložený obraz, samotná data však nejsou podrobena přímé interpretaci.


    Neuronová síť jako prostředek řešení problému

    Nervová síť funguje jako přijatelný prostředek řešení problému, když existuje velké množství empirických dat, ale neexistuje žádný algoritmus, který by byl schopen poskytnout dostatečně přesné řešení s požadovanou rychlostí. V této souvislosti má technologie prezentace dat umělého nervového systému významné výhody oproti jiným informačním technologiím. Tyto výhody lze formulovat následovně:

    1. Paměť neuronové sítě je odolná proti chybám. Při odstraňování jednotlivých částí neuronové sítě dochází pouze ke snížení kvality informace, ta je zachována, ale ne zcela zaniká. Je to proto, že informace jsou uloženy v distribuované podobě.
    2. Kvalita informací v neuronové síti, která podléhá redukci, klesá postupně, úměrně té části sítě, která byla odstraněna. Nedochází k žádné katastrofální ztrátě informací.
    3. Data v neuronové síti jsou přirozeně ukládána pomocí asociativní paměti. Asociativní paměť je paměť, ve které stačí vyhledat částečně reprezentovaná data, aby se všechny informace úplně obnovily. To je rozdíl mezi asociativní pamětí a konvenční pamětí, ve které se data získávají zadáním přesné adresy odpovídajících paměťových prvků.
    4. umožňují provádět extrapolaci a interpolaci na základě informací v nich uložených. To znamená, že školení umožňuje dát síti možnost vyhledávat důležité funkce nebo vztahy v datech. Síť je pak schopna extrapolovat a identifikovat vztahy v nových datech, která obdrží. Například v jednom experimentu byla na hypotetickém příkladu trénována neuronová síť. Po dokončení školení síť získala schopnost správně odpovídat na otázky, které nebyly vyškoleny.
    5. Neuronové sítě jsou plastické. I po odstranění určitého počtu neuronů lze síť přeškolit na její primární úroveň (samozřejmě pokud v ní zbude dostatek neuronů). Tato vlastnost je charakteristická i pro lidský mozek, u kterého může dojít k poškození jednotlivých částí, ale postupem času se pomocí tréninku dosáhne primární úrovně dovedností a znalostí.

    Díky těmto vlastnostem se umělé nervové systémy stávají velmi atraktivními pro použití v robotické kosmické lodě, zařízení pro ropný průmysl, ponorky, řízení procesů a další technická zařízení, který musí fungovat dlouhodobě bez opravy v nepříznivém prostředí. Umělé neuronové systémy řeší nejen problém spolehlivosti, ale díky své plasticitě poskytují i ​​možnost snížit provozní náklady.

    Obecně však platí, že umělé neuronové systémy nejsou příliš vhodné pro budování aplikací, které vyžadují složité matematické výpočty nebo hledání optimálního řešení. Navíc použití umělého nervového systému nebude tou nejlepší volbou, pokud existuje algoritmické řešení, které již přineslo pozitivní výsledek díky praktické aplikaci k řešení podobných problémů.