• Učení neuronových sítí: kde začít. Trénink neuronové sítě. Algoritmus zpětného šíření

    V této kapitole jsme si představili pojmy jako např umělá inteligence, strojové učení a umělé neuronové sítě.

    V této kapitole podrobně popíšu model umělého neuronu, popíšu přístupy k síťovému trénování a také popíšu některé známé typy umělých neuronů. neuronové sítě které budeme studovat v následujících kapitolách.

    Zjednodušení

    V minulé kapitole jsem neustále mluvil o některých vážných zjednodušeních. Důvodem pro zjednodušení je, že ne moderní počítače nemůže rychle simulovat složité systémy, jako je náš mozek. Navíc, jak jsem řekl, náš mozek je plný různých biologických mechanismů, které se zpracováním informací nesouvisejí.

    Potřebujeme model pro převod vstupního signálu na výstup, který potřebujeme. Všechno ostatní se nás netýká. Začněme zjednodušovat.

    Biologická struktura → schéma

    V předchozí kapitole jste si uvědomili, jak složité jsou biologické neuronové sítě a biologické neurony. Místo zobrazování neuronů jako nestvůr s chapadly, pojďme si nakreslit diagramy.

    Obecně lze říci, že existuje několik způsobů grafický obrázek neuronové sítě a neurony. Zde znázorníme umělé neurony jako kruhy.

    Místo složitého prolínání vstupů a výstupů použijeme šipky označující směr pohybu signálu.

    Umělou neuronovou síť lze tedy znázornit jako soubor kruhů (umělých neuronů) spojených šipkami.

    Elektrické signály → čísla

    Ve skutečné biologické neuronové síti je elektrický signál přenášen ze vstupů sítě na výstupy. V procesu průchodu neuronovou sítí se může měnit.

    Elektrický signál bude vždy elektrickým signálem. Koncepčně se nic nemění. Ale co se potom mění? Velikost tohoto elektrického signálu se mění (silnější/slabší). A jakákoliv hodnota může být vždy vyjádřena jako číslo (větší/menší).

    V našem modelu umělé neuronové sítě absolutně nepotřebujeme implementovat chování elektrického signálu, protože na jeho implementaci stejně nebude nic záviset.

    Na síťové vstupy použijeme nějaká čísla, symbolizující velikost elektrického signálu, pokud by byla. Tato čísla se budou pohybovat sítí a nějakým způsobem se měnit. Na výstupu sítě dostaneme nějaké výsledné číslo, které je odezvou sítě.

    Pro pohodlí budeme stále volat na naše čísla kolující v signálech sítě.

    Synapse → váhy spojení

    Připomeňme si obrázek z první kapitoly, na kterém byly barevně znázorněny spojnice mezi neurony – synapse. Synapse mohou zesílit nebo zeslabit elektrický signál, který jimi prochází.

    Charakterizujme každé takové spojení určitým číslem, kterému se říká váha tohoto spojení. Signál prošel skrz toto spojení, se vynásobí hmotností odpovídajícího spojení.

    To je klíčový bod v konceptu umělých neuronových sítí, vysvětlím to podrobněji. Podívejte se na obrázek níže. Nyní každá černá šipka (odkaz) na tomto obrázku odpovídá nějakému číslu ​\(w_i \)​ (váha odkazu). A když signál prochází tímto spojením, jeho velikost se násobí váhou tohoto spojení.

    Na výše uvedeném obrázku nemá každý odkaz váhu, protože zde není místo pro popisky. Ve skutečnosti má každý ​\(i \) ​tý odkaz svou vlastní ​\(w_i \) ​tou váhu.

    umělý neuron

    Nyní přejdeme k úvahám o vnitřní struktuře umělého neuronu a o tom, jak transformuje signál přicházející na jeho vstupy.

    Níže uvedený obrázek ukazuje kompletní model umělý neuron.

    Nebojte se, není zde nic složitého. Podívejme se na vše podrobně zleva doprava.

    Vstupy, váhy a totalizér

    Každý neuron, včetně umělého, musí mít nějaké vstupy, kterými přijímá signál. Již jsme si představili koncept vah, kterými se násobí signály procházející spojením. Na obrázku výše jsou závaží znázorněna kruhy.

    Signály přijaté na vstupech se násobí jejich váhami. Signál prvního vstupu ​\(x_1 \) ​ se vynásobí odpovídající váhou ​\(w_1 \) ​. V důsledku toho dostaneme ​\(x_1w_1 \) . A tak dále až do ​\(n \) ​tého vstupu. V důsledku toho na poslední přihlášení dostaneme ​\(x_nw_n \) .

    Nyní jsou všechny produkty převedeny do sčítačky. Již podle názvu můžete pochopit, co dělá. Jednoduše sečte všechny vstupy vynásobené jejich příslušnými váhami:

    \[ x_1w_1+x_2w_2+\cdots+x_nw_n = \sum\limits^n_(i=1)x_iw_i \]

    Nápověda k matematice

    Sigma - Wikipedie.

    Když je potřeba stručně zapsat velký výraz sestávající ze součtu opakujících se / členů stejného typu, použije se znak sigma.

    Zvážit nejjednodušší varianta evidence:

    \[ \sum\limits^5_(i=1)i=1+2+3+4+5 \]

    Tedy zespodu sigma přiřadíme proměnné čítače ​\(i \)​ počáteční hodnotu, která se bude zvyšovat, dokud nedosáhne horní hranice (ve výše uvedeném příkladu je to 5).

    Horní hranice může být také variabilní. Uvedu příklad takového případu.

    Řekněme, že máme ​\(n\) obchody. Každý obchod má své vlastní číslo: od 1 do ​\(n\)​. Každý obchod má zisk. Vezměme si nějaký (nezáleží na tom který) ​\(i \) ​tý obchod. Zisk z toho je ​\(p_i \) ​.

    \[ P = p_1+p_2+\cdots+p_i+\cdots+p_n \]

    Jak vidíte, všechny členy tohoto součtu jsou stejného typu. Pak je lze stručně zapsat takto:

    \[ P=\součet\limity^n_(i=1)p_i \]

    Slovy: "Sečtěte zisky všech obchodů, počínaje prvním a konče ​\(n \) ​tým." Ve formě vzorce je to mnohem jednodušší, pohodlnější a krásnější.

    Výsledkem sčítačky je číslo zvané vážený součet.

    Vážený součet(vážený součet) (​\(netto \) ​) je součet vstupů vynásobený jejich příslušnými váhami.

    \[ net=\sum\limits^n_(i=1)x_iw_i \]

    Role sčítačky je zřejmá – agreguje všechny vstupní signály (kterých může být mnoho) do jediného čísla – váženého součtu, který charakterizuje signál přijatý neuronem jako celek. Další vážený součet může být reprezentován jako stupeň obecné excitace neuronu.

    Příklad

    Pro pochopení role poslední složky umělého neuronu – aktivační funkce – uvedu přirovnání.

    Vezměme si jeden umělý neuron. Jeho úkolem je rozhodnout, zda půjde odpočívat na moře. K tomu přivádíme na jeho vstupy různá data. Nechť má náš neuron 4 vstupy:

    1. Náklady na cestu
    2. Jaké je počasí na moři
    3. Aktuální pracovní situace
    4. Bude na pláži snack bar

    Všechny tyto parametry budou charakterizovány 0 nebo 1. Pokud je tedy počasí na moři dobré, použijeme na tento vstup 1. A tak se všemi ostatními parametry.

    Pokud má neuron čtyři vstupy, pak musí existovat čtyři váhy. V našem příkladu lze váhové faktory považovat za indikátory důležitosti každého vstupu, ovlivňujícího společné rozhodnutí neuron. Váhy vstupů rozdělujeme následovně:

    Je snadné vidět, že faktory nákladů a počasí na moři (první dva vstupy) hrají velmi důležitou roli. Budou také hrát rozhodující roli při rozhodování neuronu.

    Odešleme následující signály na vstupy našeho neuronu:

    Váhy vstupů vynásobíme signály odpovídajících vstupů:

    Vážený součet pro tuto sadu vstupů je 6:

    \[ net=\sum\limits^4_(i=1)x_iw_i = 5 + 0 + 0 + 1 =6 \]

    Zde přichází na řadu aktivační funkce.

    Aktivační funkce

    Jen dávat váženou částku do výstupu je celkem zbytečné. Neuron to musí nějak zpracovat a vytvořit adekvátní výstupní signál. K tomuto účelu slouží aktivační funkce.

    Převede vážený součet na nějaké číslo, které je výstupem neuronu (výstup neuronu označujeme proměnnou ​\(out \) ).

    Pro odlišné typy umělé neurony využívají různé aktivační funkce. Obecně se označují symbolem ​\(\phi(net) \) . Zadání váženého signálu v závorkách znamená, že aktivační funkce bere vážený součet jako parametr.

    Aktivační funkce (aktivační funkce)(​\(\phi(net) \)​) je funkce, která jako argument bere vážený součet. Hodnota této funkce je výstupem neuronu (\(out \) ).

    Funkce jednoho skoku

    Nejjednodušší druh aktivační funkce. Výstup neuronu může být pouze 0 nebo 1. Pokud je vážený součet větší než určitá prahová hodnota ​\(b \) , pak je výstup neuronu 1. Pokud je nižší, pak 0.

    Jak se dá použít? Předpokládejme, že jdeme k moři pouze tehdy, když je vážený součet větší nebo roven 5. Náš práh je tedy 5:

    V našem příkladu byl vážený součet 6, což znamená, že výstup našeho neuronu je 1. Takže jedeme k moři.

    Pokud by však počasí na moři bylo špatné a cesta byla velmi drahá, ale byl by tam občerstvení a normální pracovní prostředí (vstupy: 0011), pak by vážený součet byl 2, což znamená, že výstup neuronu by být 0. Takže nikam nepůjdeme.

    Obecně platí, že neuron se dívá na vážený součet a pokud je větší než jeho práh, pak neuron produkuje výstup rovný 1.

    Graficky lze tuto aktivační funkci znázornit následovně.

    Hodnoty váženého součtu jsou umístěny na vodorovné ose. Na svislé ose jsou hodnoty výstupního signálu. Jak je dobře vidět, jsou možné pouze dvě hodnoty výstupního signálu: 0 nebo 1. Navíc 0 bude vždy vydávána od mínus nekonečna až do nějaké hodnoty váženého součtu, nazývané práh. Pokud je vážený součet roven nebo větší než práh, pak funkce vrátí 1. Vše je extrémně jednoduché.

    Nyní tuto aktivační funkci zapišme matematicky. Téměř jistě jste se již setkali s konceptem složené funkce. To když spojíme více pravidel pod jednu funkci, podle kterých se vypočítá její hodnota. Ve formě složené funkce bude funkce unit hop vypadat takto:

    \[out(net) = \begin(cases) 0, net< b \\ 1, net \geq b \end{cases} \]

    Na tomto vstupu není nic složitého. Výstup neuronu (​\(out \)​) závisí na váženém součtu (​\(net \)​) následovně: jestliže ​\(net \)​ (vážený součet) je menší než nějaký práh (​ \(b \ ) ​), pak ​\(out \) ​ (výstup neuronu) je 0. A pokud ​\(net \) ​ je větší nebo roven prahu ​\(b \) ​, pak se ​\(out \)​ rovná 1.

    Sigmoidní funkce

    Ve skutečnosti existuje celá rodina sigmoidálních funkcí, z nichž některé se používají jako aktivační funkce v umělých neuronech.

    Všechny tyto funkce mají některé velmi užitečné vlastnosti, pro které se v neuronových sítích používají. Tyto vlastnosti se projeví poté, co uvidíte grafy těchto funkcí.

    Takže ... nejčastěji používaný sigmoid v neuronových sítích je logistická funkce.

    Graf této funkce vypadá celkem jednoduše. Když se podíváte pozorně, můžete vidět určitou podobnost anglický dopis​\(S \) ​, odkud pochází název rodiny těchto funkcí.

    A takto se to analyticky píše:

    \[ out(net)=\frac(1)(1+\exp(-a \cdot net)) \]

    Co je parametr \(a \)? Toto je nějaké číslo, které charakterizuje stupeň strmosti funkce. Níže jsou uvedeny logistické funkce s jiným parametrem ​\(a \) ​.

    Připomeňme si náš umělý neuron, který rozhoduje, zda jet k moři. V případě funkce unit jump bylo vše jasné. Buď pojedeme k moři (1), nebo ne (0).

    Zde je případ blíže realitě. Nejsme si úplně jisti (zejména pokud jste paranoidní) - má cenu jít? Potom pomocí logistické funkce jako aktivační funkce získáte číslo mezi 0 a 1. A čím větší je vážený součet, tím více se výstup bude blížit 1 (ale nikdy nebude přesně rovný). Naopak, čím menší je vážený součet, tím blíže bude výstup neuronu 0.

    Například výstup našeho neuronu je 0,8. To znamená, že věří, že stále stojí za to jet k moři. Pokud by jeho výstup byl 0,2, znamenalo by to, že by byl téměř jistě proti plavbě na moře.

    Jaké jsou pozoruhodné vlastnosti logistické funkce?

    • je to funkce "squeezing", to znamená, že bez ohledu na argument (vážený součet) bude výstupní signál vždy mezi 0 a 1
    • je flexibilnější než funkce jednotkového skoku – jejím výsledkem může být nejen 0 a 1, ale libovolné číslo mezi tím
    • ve všech bodech má derivaci a tuto derivaci lze vyjádřit stejnou funkcí

    Právě kvůli těmto vlastnostem je logistická funkce nejčastěji využívána jako aktivační funkce v umělých neuronech.

    Hyperbolická tečna

    Existuje však další sigmoid - hyperbolická tečna. Je používán jako aktivační funkce biology pro realističtější model nervové buňky.

    Taková funkce umožňuje získat hodnoty různých znamének na výstupu (například od -1 do 1), což může být užitečné pro řadu sítí.

    Funkce je napsána následovně:

    \[ out(net) = \tanh\left(\frac(net)(a)\right) \]

    Ve výše uvedeném vzorci parametr ​\(a \) ​také určuje, jak strmý je graf této funkce.

    A zde je graf této funkce.

    Jak vidíte, vypadá to jako graf logistické funkce. Hyperbolická tečna má všechny užitečné vlastnosti, které má logistická funkce.

    co jsme se naučili?

    Nyní máte úplné pochopení vnitřní struktury umělého neuronu. Přinesu znovu Stručný popis jeho díla.

    Neuron má vstupy. Jsou jim dány signály ve formě čísel. Každý vstup má svou váhu (také číslo). Vstupní signály se násobí odpovídajícími váhami. Získáme sadu „vážených“ vstupních signálů.

    Potom se převede vážený součet aktivační funkce a dostaneme výstup neuronů.

    Zformulujme nyní nejkratší popis činnosti neuronu – jeho matematický model:

    Matematický model umělého neuronu se vstupy ​\(n\)​:

    Kde
    ​\(\phi \) ​ – aktivační funkce
    \(\součet\limity^n_(i=1)x_iw_i \) je vážený součet jako součet ​\(n\)​ součinů vstupních signálů a odpovídajících vah.

    Typy INS

    Přišli jsme na strukturu umělého neuronu. Umělé neuronové sítě se skládají z kolekce umělých neuronů. Nabízí se logická otázka – jak tyto velmi umělé neurony mezi sebou uspořádat / propojit?

    Zpravidla ve většině neuronových sítí existuje tzv vstupní vrstva, která plní pouze jeden úkol – distribuci vstupních signálů do dalších neuronů. Neurony této vrstvy neprovádějí žádné výpočty.

    Jednovrstvé neuronové sítě

    V jednovrstvých neuronových sítích jsou signály ze vstupní vrstvy okamžitě přiváděny do výstupní vrstvy. Provádí potřebné výpočty, jejichž výsledky jsou okamžitě přiváděny do výstupů.

    Jednovrstvá neuronová síť vypadá takto:

    Na tomto obrázku je vstupní vrstva označena kroužky (nepovažuje se za vrstvu neuronové sítě) a vpravo je vrstva obyčejných neuronů.

    Neurony jsou vzájemně propojeny šipkami. Nad šipkami jsou váhy odpovídajících spojnic (váhové koeficienty).

    Jednovrstvá neuronová síť (jednovrstvá neuronová síť) - síť, ve které jsou signály ze vstupní vrstvy okamžitě přiváděny do výstupní vrstvy, která signál převádí a okamžitě dává odpověď.

    Vícevrstvé neuronové sítě

    Takové sítě se kromě vstupní a výstupní vrstvy neuronů vyznačují také skrytou vrstvou (vrstvami). Pochopení jejich umístění je snadné – tyto vrstvy jsou mezi vstupní a výstupní vrstvou.

    Tato struktura neuronových sítí kopíruje vícevrstvou strukturu určitých částí mozku.

    Název skryté vrstvy nebyl náhodný. Faktem je, že metody pro trénink neuronů ve skryté vrstvě byly vyvinuty teprve relativně nedávno. Předtím si vystačili pouze s jednovrstvými neuronovými sítěmi.

    Vícevrstvé neuronové sítě jsou mnohem výkonnější než jednovrstvé.

    Práci skrytých vrstev neuronů lze přirovnat k práci velké továrny. Produkt (výstupní signál) v závodě se montuje po etapách. Po každém stroji se získá nějaký mezivýsledek. Skryté vrstvy také převádějí vstupní signály na některé mezivýsledky.

    Vícevrstvá neuronová síť (vícevrstvá neuronová síť) - neuronová síť sestávající ze vstupu, výstupu a jedné (několika) skrytých vrstev neuronů umístěných mezi nimi.

    Sítě přímého šíření

    Na obrázcích neuronových sítí v příkladech výše si můžete všimnout jednoho velmi zajímavého detailu.

    Ve všech příkladech jdou šipky striktně zleva doprava, to znamená, že signál v takových sítích jde striktně ze vstupní vrstvy do výstupní vrstvy.

    Sítě přímého šíření (Dopředná neuronová síť) (feedforward networks) - umělé neuronové sítě, ve kterých se signál šíří striktně ze vstupní vrstvy na výstupní. Opačným směrem se signál nešíří.

    Takové sítě jsou široce používány a docela úspěšně řeší určitou třídu problémů: predikci, shlukování a rozpoznávání.

    Nikdo však nezakazuje, aby signál šel do protisměru.

    Zpětnovazební sítě

    V sítích tohoto typu může signál jít opačným směrem. Jaká je výhoda?

    Faktem je, že v sítích přímého šíření je výstup sítě určen vstupním signálem a váhovými koeficienty pro umělé neurony.

    A v sítích s zpětná vazba výstupy neuronů mohou být přiváděny zpět na vstupy. To znamená, že výstup neuronu je určen nejen jeho váhami a vstupním signálem, ale také předchozími výstupy (protože se opět vrátily na vstupy).

    Schopnost signálů cirkulovat v síti otevírá nové, úžasné možnosti pro neuronové sítě. Pomocí takových sítí můžete vytvářet neuronové sítě, které obnovují nebo doplňují signály. Jinými slovy, takové neuronové sítě mají vlastnosti krátkodobá paměť(jako člověk).

    Zpětnovazební sítě (Rekurentní neuronová síť) - umělé neuronové sítě, ve kterých může být výstup neuronu přiváděn zpět na jeho vstup. V obecnějším případě to znamená možnost šíření signálu z výstupů na vstupy.

    Trénink neuronové sítě

    Nyní se blíže podíváme na problematiku trénování neuronové sítě. co to je? A jak se to stane?

    Co je síťové učení?

    Umělá neuronová síť je sbírka umělých neuronů. Nyní vezmeme například 100 neuronů a spojíme je navzájem. Je jasné, že když se na vstup přivede signál, dostaneme na výstupu něco nesmyslného.

    Musíme tedy změnit některé síťové parametry, dokud se vstupní signál nepřevede na výstup, který potřebujeme.

    Co můžeme v neuronové síti změnit?

    Změna celkového počtu umělých neuronů je nesmyslná ze dvou důvodů. Za prvé, zvýšení počtu výpočetních prvků jako celku pouze činí systém těžším a nadbytečným. Za druhé, pokud nasbíráte 1000 bláznů místo 100, stále nebudou schopni správně odpovědět na otázku.

    Sčítačku nelze změnit, protože provádí jednu pevně zakódovanou funkci - přidat. Pokud ho něčím nahradíme nebo úplně odstraníme, pak to už vůbec nebude umělý neuron.

    Pokud změníme aktivační funkci pro každý neuron, získáme příliš pestrou a neřízenou neuronovou síť. Navíc ve většině případů jsou neurony v neuronových sítích stejného typu. To znamená, že všechny mají stejnou aktivační funkci.

    Zbývá jen jedna možnost - změnit váhy odkazů.

    Trénink neuronové sítě (výcvik)- hledat takovou sadu váhových koeficientů, ve které se vstupní signál po průchodu sítí převede na výstup, který potřebujeme.

    Tento přístup k pojmu „trénink neuronové sítě“ také odpovídá biologickým neuronovým sítím. Náš mozek se skládá z obrovského množství vzájemně propojených neuronových sítí. Každý z nich se jednotlivě skládá z neuronů stejného typu (aktivační funkce je stejná). Učíme se změnou synapsí, prvků, které zesilují/snižují vstupní signál.

    Je tu však ještě jeden důležitý bod. Pokud trénujete síť pouze pomocí jednoho vstupního signálu, pak si síť jednoduše „pamatuje správnou odpověď“. Zvenčí se bude zdát, že se „naučila“ velmi rychle. A jakmile dáte trochu pozměněný signál s očekáváním, že uvidíte správnou odpověď, pak síť bude chrlit nesmysly.

    Proč vlastně potřebujeme síť, která detekuje obličej pouze na jedné fotografii. Od sítě očekáváme schopnost zevšeobecnit některé znaky a rozpoznávat tváře i na jiných fotografiích.

    Právě pro tento účel jsou vytvořeny tréninkové ukázky.

    Tréninkový set (tréninkový set) je konečná množina vstupních signálů (někdy spolu se správnými výstupními signály), na kterých je síť trénována.

    Poté, co byla síť natrénována, tj. když síť produkuje správné výsledky pro všechny vstupní signály z trénovacího vzorku, může být použita v praxi.

    Než však čerstvě upečenou neuronovou síť vypustí do boje, často hodnotí kvalitu její práce na tzv. zkušební vzorek.

    testovací sada (testovací sada) - konečná množina vstupních signálů (někdy spolu se správnými výstupními signály), které slouží k hodnocení kvality sítě.

    Pochopili jsme, co je „síťové učení“ – výběr správné sady závaží. Nyní vyvstává otázka – jak lze síť trénovat? V nejobecnějším případě existují dva přístupy, které vedou k různým výsledkům: učení pod dohledem a učení bez dozoru.

    Učení s učitelem

    Podstatou tohoto přístupu je, že dáte signál na vstup, podíváte se na odezvu sítě a poté ji porovnáte s již připravenou správnou odpovědí.

    Důležitý bod. Nezaměňujte správné odpovědi a známý algoritmus řešení! Obličej na fotografii můžete vysledovat prstem (správná odpověď), ale nemůžete říct, jak to bylo provedeno (známý algoritmus). Zde je stejná situace.

    Poté pomocí speciálních algoritmů změníte váhy spojů neuronové sítě a znovu jí dáte vstupní signál. Porovnejte její odpověď se správnou a tento postup opakujte, dokud síť nezačne odpovídat s přijatelnou přesností (jak jsem řekl v kapitole 1, síť nemůže dát jednoznačně přesné odpovědi).

    Učení s učitelem (Učení pod dohledem) je typ síťového tréninku, při kterém se mění jeho váhy tak, aby se odpovědi sítě minimálně lišily od již připravených správných odpovědí.

    Kde mohu získat správné odpovědi?

    Pokud chceme, aby síť rozpoznávala obličeje, můžeme vytvořit cvičný vzorek 1000 fotek (vstupů) a nezávisle z něj extrahovat obličeje (správné odpovědi).

    Pokud chceme, aby síť předpovídala růst/pokles cen, musí být trénovací vzorek vytvořen na základě minulých dat. Jako vstupní signály můžete vzít určité dny, celkový stav trhu a další parametry. A jako správné odpovědi - vzestup a pokles ceny v těch dnech.

    Stojí za zmínku, že učitel samozřejmě nemusí být nutně osoba. Faktem je, že někdy musí být síť trénována hodiny a dny, což znamená tisíce a desetitisíce pokusů. V 99% případů tuto roli plní počítač, nebo spíše speciální počítačový program.

    Učení bez učitele

    Učení bez dozoru se používá, když nemáme správné odpovědi na vstupní signály. V tomto případě se celý tréninkový vzorek skládá ze sady vstupních signálů.

    Co se při takovém tréninku sítě děje? Ukazuje se, že při takovém „trénování“ síť začíná rozlišovat třídy signálů dodávaných na vstup. Stručně řečeno, síť se začne shlukovat.

    Můžete například předvést řetězce cukrovinek, pečiva a dortů. Síť nijak neregulujete. Jednoduše vkládáte data do jeho vstupů o daný objekt. Postupem času začne síť generovat signály tří různých typů, které jsou zodpovědné za vstupní objekty.

    Učení bez učitele (Učení bez dozoru) je typ síťového učení, ve kterém síť nezávisle klasifikuje vstupní signály. Správné (referenční) výstupní signály se nezobrazují.

    závěry

    V této kapitole jste se dozvěděli vše o struktuře umělého neuronu, stejně jako úplné pochopení toho, jak funguje (a jeho matematického modelu).

    Navíc nyní víte o různých typech umělých neuronových sítí: jednovrstvé, vícevrstvé, dopředné a zpětnovazební sítě.

    Dozvěděli jste se také o síťovém učení pod dohledem a bez dozoru.

    Potřebnou teorii už znáte. Následující kapitoly jsou diskusí o konkrétních typech neuronových sítí, konkrétních algoritmech pro jejich trénování a programování.

    Otázky a úkoly

    Materiál této kapitoly by měl být velmi dobře znám, protože obsahuje základní teoretické informace o umělých neuronových sítích. Ujistěte se, že získáte sebevědomé a správné odpovědi na všechny níže uvedené otázky a úkoly.

    Popište zjednodušení ANN ve srovnání s biologickými neuronovými sítěmi.

    1. Složitá a složitá struktura biologických neuronových sítí je zjednodušena a prezentována ve formě diagramů. Ponechte pouze model zpracování signálu.

    2. Povaha elektrických signálů v neuronových sítích je stejná. Rozdíl je pouze v jejich velikosti. Odstraňujeme elektrické signály, a místo nich používáme čísla označující velikost procházejícího signálu.

    Aktivační funkce je často označována jako \(\phi(net) \) .

    Napište matematický model umělého neuronu.

    Umělý neuron se vstupy ​\(n \)​ převádí vstupní signál (číslo) na výstupní signál (číslo) následovně:

    \[ out=\phi\left(\sum\limits^n_(i=1)x_iw_i\right) \]

    Jaký je rozdíl mezi jednovrstvými a vícevrstvými neuronovými sítěmi?

    Jednovrstvé neuronové sítě se skládají z jedné výpočetní vrstvy neuronů. Vstupní vrstva posílá signály přímo do výstupní vrstvy, která signál převádí a okamžitě dává výsledek.

    Vícevrstvé neuronové sítě mají kromě vstupní a výstupní vrstvy také skryté vrstvy. Tyto skryté vrstvy provádějí jakési vnitřní přechodné transformace, jako jsou fáze výroby produktů v továrně.

    Jaký je rozdíl mezi dopřednými sítěmi a zpětnovazebními sítěmi?

    Dopředné sítě umožňují tok signálu pouze jedním směrem – od vstupů k výstupům. Sítě se zpětnou vazbou tato omezení nemají a výstupy neuronů mohou být přiváděny zpět na vstupy.

    Co je to tréninkový vzorek? jaký je jeho význam?

    Před použitím sítě v praxi (například pro řešení aktuálních problémů, na které nemáte odpovědi) je potřeba shromáždit sbírku problémů s hotovými odpověďmi, na kterých síť trénovat. Tato kolekce se nazývá tréninková sada.

    Pokud shromažďujete příliš malou sadu vstupních a výstupních signálů, pak si síť jednoduše zapamatuje odpovědi a cíle učení nebude dosaženo.

    Co znamená síťové učení?

    Síťové učení je chápáno jako proces změny váhových koeficientů umělých neuronů v síti s cílem vybrat takovou jejich kombinaci, která převede vstupní signál na správný výstup.

    Co je učení pod dohledem a bez dozoru?

    Při trénování sítě s učitelem jsou signály předávány jejím vstupům a poté je její výstup porovnáván s dříve známým správným výstupem. Tento proces se opakuje, dokud není dosaženo požadované přesnosti odpovědí.

    Pokud sítě dodávají pouze vstupní signály, aniž by je porovnávaly s připravenými výstupy, pak síť začne tyto vstupní signály samostatně klasifikovat. Jinými slovy, provádí shlukování vstupních signálů. Takovému učení se říká učení bez dozoru.

    Neuronová síť bez zpětné vazby - perceptron

    Úlohy pro neuronové sítě

    Většinu úloh, pro které se používají neuronové sítě, lze považovat za speciální případy následujících hlavních problémů.

    Aproximace – vytvoření funkce na konečné množině hodnot (například prognóza časových řad)

    · Konstrukce vztahů na množině objektů (např. problémy rozpoznávání obrazů a zvukových signálů).

    Distribuované vyhledávání informací a asociativní paměť(například problém hledání implicitních závislostí ve velkých datových polích).

    · Filtrace (například detekce „viditelných pouhým okem“, ale obtížně popsatelné analyticky změny signálů).

    · Komprese informací (například implementace algoritmů neuronové sítě pro kompresi zvuků, statických a dynamických obrázků).

    Identifikace dynamické systémy a jejich řízení.


    Vícevrstvá neuronová síť s více výstupy znázorněná na obrázku níže je perceptron.

    Obvod lze doplnit o sčítačku, která v případě potřeby sdružuje výstupní signály neuronů do jednoho společného výstupu.

    Počet vrstev v perceptronu může být různý v závislosti na složitosti problému. Bylo matematicky dokázáno (Kolmogorovova věta), že tři úplné nervové vrstvy stačí k aproximaci jakékoli matematická funkce(za předpokladu, že je možné neomezeně zvyšovat počet neuronů ve skryté vrstvě).

    Perceptron pracuje v režimu diskrétního času - na vstup je přivedena statická sada signálů (vstupní vektor), odhaduje se agregovaný stav výstupů (výstupní vektor), poté je na vstup přiveden další vektor atd. Předpokládá se, že signál v perceptronu se šíří ze vstupu na výstup okamžitě, tj. časová zpoždění v přenosu signálu z neuronu na neuron, z vrstvy na vrstvu a s tím související dynamická přechodné jevy chybějící. Protože perceptron nemá žádnou zpětnou vazbu (ani kladnou, ani zápornou), pak v každém okamžiku jakýkoli vstupní vektor hodnot jednoznačně odpovídá určitému výstupnímu vektoru, který se nezmění, dokud vstupy neuronové sítě zůstanou nezměněny.

    Teorie perceptronů je základem pro mnoho dalších typů umělých neuronových sítí a samotné perceptrony jsou logickým výchozím bodem pro studium umělých neuronových sítí.

    Trénovat neuronovou síť znamená sdělit jí, čeho se z ní snažíme dosáhnout. Tento proces je velmi podobný učení dítěte abecedu. Ukazujeme dítěti obrázek písmene "A" a ptáme se ho: "Co je to za písmeno?" Pokud je odpověď špatná, řekneme dítěti odpověď, kterou bychom od něj rádi dostali: "Toto je písmeno A." Dítě si tento příklad pamatuje spolu se správnou odpovědí, to znamená, že v jeho paměti nastanou určité změny správným směrem. Postup předkládání písmen budeme opakovat znovu a znovu, dokud si všech 33 písmen pevně nezapamatujeme. Takový proces se nazývá "trénink s učitelem" .

    Při trénování neuronové sítě jednáme úplně stejně. Předpokládejme, že máme tabulku – databázi obsahující příklady (zakódovaná sada obrázků písmen). Při předložení obrázku písmene "A" na vstup neuronové sítě očekáváme (v ideálním případě), že úroveň signálu bude maximální (=1) na výstupu OUT1 (A je písmeno č. 1 v abecedě 33). písmena) a minimum (=0) .

    Tak se ozval stůl výuková sada , bude vypadat takto (jako příklad je vyplněn pouze první řádek):

    Dopis Vstupní vektor Požadovaný výstupní vektor
    X1 X2 X12 CÍL 1 CÍL2 CÍL33
    A
    B
    YU

    Sada vektorů pro každý příklad je volána trénovací množina (řádky tabulky). učící se pár .

    V praxi nebude netrénovaná neuronová síť fungovat tak, jak ideálně očekáváme, to znamená, že pro všechny nebo většinu příkladů budou vektory chyb obsahovat prvky výrazně odlišné od nuly.

    Tréninkový algoritmus neuronové sítě je sada matematických operací, která umožňuje pomocí chybového vektoru vypočítat takové korekce pro váhy neuronové sítě, aby se celková chyba (součet druhých mocnin pro všechny výstupy se obvykle používá pro řízení procesu učení) zmenšila. Aplikováním těchto akcí znovu a znovu se dosáhne postupného snižování chyby pro každý příklad (A, B, C atd.) trénovací sady.

    Po takovéto cyklické vícenásobné úpravě vah bude neuronová síť dávat správné (nebo téměř správné) odpovědi na všechny (nebo téměř všechny) příklady z databáze, tj. celková chyba dosáhne nuly nebo přijatelné nízké úrovně pro každý trénink. pár. V tomto případě říkají, že „neuronová síť je natrénovaná“, tj. je připravena k použití na nových, dříve neznámé , data.

    V obecný pohled Algoritmus učení pod dohledem bude vypadat takto:

    1. Inicializujte synaptické váhy s malými náhodnými hodnotami.

    2. Vyberte další tréninkový pár z tréninkové sady; přivést vstupní vektor na vstup sítě.

    3. Vypočítejte výkon sítě.

    4. Vypočítejte rozdíl mezi síťovým výkonem a požadovaným výkonem (cílový vektor trénovacího páru).

    5. Upravte váhy sítě, abyste minimalizovali chybu.

    6. Opakujte kroky 2 až 5 pro každý pár tréninkových sad, dokud chyba v celé sadě nedosáhne přijatelné úrovně.

    Konkrétní typ matematických operací provedených v kroku 5 určuje typ algoritmu učení. Například pro jednovrstvé perceptrony se používá nejjednodušší algoritmus, založený na tzv. delta pravidlo , pro perceptrony s libovolným počtem vrstev je široce používán postup zpětné propagace , je známá skupina algoritmů se zajímavými vlastnostmi, tzv stochastické algoritmy učení atd. Všechny známé algoritmy pro učení neuronových sítí jsou ve skutečnosti různé metody optimalizace gradientu, které lineární funkce mnoho proměnných. Hlavní problém, který vzniká při jejich praktické implementaci, je ten, že nikdy nelze s jistotou vědět, že výsledná kombinace synaptických vah je skutečně nejefektivnější z hlediska minimalizace celkové chyby na celé trénovací množině. Tato nejistota byla nazývána „problémem lokálních minim cílové funkce“.

    Cílová funkce je v tomto případě chápána jako zvolený integrální skalární indikátor , která charakterizuje kvalitu zpracování neuronovou sítí všech příkladů trénovací množiny - např. součet směrodatných odchylek VEN z CÍLOVÁ pro každý tréninkový pár. Čím menší je dosažená hodnota cílové funkce, tím vyšší je kvalita neuronové sítě na dané tréninkové sadě. V ideálním případě (v praxi dosažitelné pouze pro nejjednodušší problémy) je možné najít takovou sadu synaptických vah, které .

    Cíl funkce povrchu komplexní síť je silně členitý a skládá se z kopců, údolí, záhybů a roklí ve vysokorozměrném prostoru. Síť trénovaná gradientem může spadnout do místního minima (mělkého údolí), když je poblíž mnohem hlubší minimum. V bodě lokálního minima vedou všechny směry nahoru a algoritmus se z toho nedokáže dostat.

    Pokud tedy v důsledku pokusu o trénování neuronové sítě nebylo dosaženo požadované přesnosti, pak má výzkumník dvě alternativy:

    1. Předpokládejme, že proces je uvězněn v lokálním minimu a pokuste se použít nějaký jiný druh algoritmu učení pro stejnou konfiguraci sítě.

    2. Předpokládejme, že pro tuto konkrétní konfiguraci sítě bylo nalezeno globální minimum cílové funkce a zkuste síť zkomplikovat – zvyšte počet neuronů, přidejte jednu nebo více vrstev, přepněte z plně připojené sítě na neplně připojenou síť. který bere v úvahu a priori známé závislosti ve struktuře trénovací množiny atd.

    V problémech rozpoznávání a klasifikace vzorů se široce používají algoritmy, tzv učení bez učitele . V tomto případě má síť za úkol nezávisle najít skupiny vstupních vektorů „vzájemně podobných“ v prezentované sadě příkladů, generujících vysokou úroveň na jednom z výstupů (aniž by bylo předem určeno který). Ale i při takové formulaci problému se problém lokálních minim také odehrává, byť v implicitní podobě, bez striktního matematického vymezení cílové funkce (protože ze samotného pojmu cílové funkce vyplývá přítomnost dané reference síťová odezva, tj. "učitel") - "Opravdu se neuronová síť naučila alokovat shluky vstupních vektorů nejlepším možným způsobem pro tuto konkrétní konfiguraci?".

    4. Trénink neuronové sítě.

    4.1 Úvod do neuronových sítí

    Umělé neuronové sítě jsou modely založené na moderních představách o struktuře lidského mozku a procesech zpracování informací v něm probíhajících. ANN již našly široké uplatnění v úkolech: komprese informací, optimalizace, rozpoznávání vzorů, budování expertních systémů, zpracování signálu a obrazu atd.

    Komunikace mezi biologickými a umělými neurony

    Obrázek 20 - Struktura biologického neuronu

    Nervový systémčlověk se skládá z obrovského množství vzájemně propojených neuronů, asi 10 11 ; počet odkazů se vypočítá číslem 10 15 .

    Pojďme si schematicky znázornit pár biologických neuronů (obrázek 20.) Neuron má několik vstupních procesů – dendritů a jeden výstup – axon. Dendrity přijímají informace z jiných neuronů, axon - přenáší. Oblast, kde se axon připojuje k dendritu (kontaktní plocha), se nazývá synapse. Signály přijaté synapsemi jsou přiváděny do těla neuronu, kde jsou sečteny. V tomto případě je jedna část vstupních signálů budicí a druhá část je inhibiční.

    Když vstupní akce překročí určitou prahovou hodnotu, neuron se stane aktivním a vyšle signál podél axonu dalším neuronům.

    Umělý neuron je matematický model biologický neuron (obrázek 21). Vstupní signál označme x a množinu vstupních signálů vektorem X = (x1, x2, …, xN). Výstupní signál neuronu bude označen y.

    Nakreslíme funkční schéma neuronu.

    Obrázek 21 - Umělý neuron

    Pro označení excitačního nebo inhibičního účinku vstupu zavedeme koeficienty w 1 , w 1 , …, w N - pro každý vstup, tedy vektor

    W = (w 1, w 1, …, w N ), w 0 je prahová hodnota. Vstupní akce X vážené na vektoru W se vynásobí odpovídajícím koeficientem w, sečtou a vznikne signál g:

    Výstupní signál je nějakou funkcí g


    ,

    kde F je aktivační funkce. Může být různých typů:

    1) prahová hodnota kroku

    nebo

    Obecně:

    2) lineární, což je ekvivalentní absenci prahového prvku vůbec

    F(g) = g


    3) po částech lineární, získaný z lineárního omezením rozsahu jeho změny v , tzn

    4) sigmatu

    5) víceprahové

    6) hyperbolická tečna

    F(g) = tanh(g)


    Nejčastěji se vstupní hodnoty převádějí do rozsahu XÎ. Když w i = 1 (i = 1, 2,…, N), je neuron většinovým prvkem. Prahová hodnota v tomto případě nabývá hodnoty w 0 = N/2.

    Další varianta podmíněného obrazu umělého neuronu je na obrázku 22

    Obrázek 22 - Symbol umělý neuron

    Z geometrického hlediska neuron s lineární aktivační funkcí popisuje rovnici přímky, pokud je na vstupu jedna hodnota x 1

    nebo rovina, když je vstupem vektor hodnot X

    Struktura (architektura, topologie) neuronových sítí

    Existuje mnoho způsobů, jak uspořádat ANN, v závislosti na: počtu vrstev, tvaru a směru připojení.

    Ukažme si příklad organizace neuronových sítí (obrázek 23).


    Jednovrstvá struktura Dvouvrstvá struktura zpětné vazby se zpětnou vazbou

    Dvouvrstvá struktura Třívrstvá struktura s přímými spoji s přímými spoji

    Obrázek 23 - Příklady struktur neuronových sítí

    Obrázek 24 ukazuje třívrstvý NS s přímými spoji. Vrstva neuronů, která přímo přijímá informace z vnějšího prostředí, se nazývá vstupní vrstva a vrstva, která přenáší informace do vnějšího prostředí, se nazývá výstupní vrstva. Jakákoli vrstva ležící mezi nimi a bez kontaktu s vnějším prostředím se nazývá mezivrstva (skrytá). Může být více vrstev. Ve vícevrstvých sítích mají neurony jedné vrstvy zpravidla aktivační funkci jednoho typu.


    Obrázek 24 - Třívrstvá neuronová síť

    Při návrhu sítě jsou počáteční data:

    je rozměr vektoru vstupního signálu, tj. počet vstupů;

    je rozměr vektoru výstupního signálu. Počet neuronů ve výstupní vrstvě se obvykle rovná počtu tříd;

    – formulace problému, který má být řešen;

    je přesnost řešení problému.

    Například při řešení problému detekce užitečného signálu může mít neuronová síť jeden nebo dva výstupy.

    Tvorba či syntéza NS je v současnosti teoreticky neřešený úkol. Je soukromý.

    Trénink neuronových sítí

    Jednou z nejpozoruhodnějších vlastností neuronových sítí je jejich schopnost učit se. Navzdory skutečnosti, že proces učení NN se liší od školení člověka v obvyklém smyslu, na konci takového školení je dosaženo podobných výsledků. Cílem tréninku neuronové sítě je naladit ji na dané chování.

    Nejběžnějším přístupem při trénování neuronových sítí je konekcionismus. Zahrnuje trénování sítě úpravou hodnot váhových koeficientů wij odpovídajících různým spojením mezi neurony. Matice W vah wij sítě se nazývá synaptická mapa. Zde je index i sériové číslo neuron, ze kterého spojení pochází, tedy předchozí vrstva, a j je číslo neuronu následující vrstvy.

    Existují dva typy učení NN: učení pod dohledem a učení bez dozoru.

    Učení pod dohledem spočívá v tom, že se do sítě předloží posloupnost trénovatelných párů (příkladů) (Хi, Hi), i = 1, 2, …, m obrázků, což se nazývá trénovací sekvence. Současně se pro každý vstupní obraz Xi vypočítá reakce sítě Y i a porovná se s odpovídajícím cílovým obrazem Hi. Výsledný nesoulad je používán učícím algoritmem k úpravě synaptické mapy takovým způsobem, aby se snížila chyba neshody. Taková adaptace se provádí cyklickou prezentací trénovacího vzorku, dokud chyba neshody nedosáhne dostatečné úrovně nízká úroveň.

    Přestože je proces řízeného učení srozumitelný a široce používaný v mnoha aplikacích neuronových sítí, stále plně neodpovídá skutečným procesům probíhajícím v lidském mozku během procesu učení. Při učení náš mozek nepoužívá žádné obrázky, ale sám provádí zobecnění informací přicházejících zvenčí.

    V případě učení bez dozoru se sekvence učení skládá pouze ze vstupních obrázků Xi. Učící algoritmus upravuje váhy tak, aby podobné vstupní vektory odpovídaly stejným výstupním vektorům, to znamená, že ve skutečnosti rozděluje prostor vstupních obrázků do tříd. Zároveň před tréninkem nelze předvídat, které výstupní obrázky budou odpovídat třídám vstupních obrázků. Takovou korespondenci je možné navázat a podat k ní výklad až po zaškolení.

    Na učení NN lze nahlížet jako na kontinuální nebo diskrétní proces. Podle toho mohou být popsány buď algoritmy učení diferenciální rovnice nebo konečný rozdíl. V prvním případě je NS implementován na analogových, ve druhém - na digitálních prvcích. Budeme mluvit pouze o algoritmech konečných diferencí.

    Ve skutečnosti je NN specializovaný paralelní procesor nebo program, který emuluje neuronovou síť na sériovém počítači.

    Většina výukových algoritmů (AL) NN vyrostla z konceptu Hebb. Navrhl jednoduchý algoritmus bez dozoru, ve kterém se hodnota váhy w ij, odpovídající spojení mezi i-tým a j-tým neuronem, zvýší, pokud jsou oba neurony v excitovaném stavu. Jinými slovy, v procesu učení jsou spojení mezi neurony korigována v souladu s mírou korelace jejich stavů. To lze vyjádřit jako následující rovnice konečného rozdílu:

    kde w ij (t + 1) a w ij (t) jsou váhy spojení mezi neuronem i a neuronem j před laděním (v kroku t+1) a po ladění (v kroku t); v i (t) je výstup neuronu i a výstup neuronu j v kroku t; vj(t) je výstup neuronu j v kroku t; α je parametr rychlosti učení.

    Strategie školení neuronové sítě

    Spolu s algoritmem učení je stejně důležitá strategie síťového učení.

    Jedním z přístupů je sekvenční trénování sítě na sérii příkladů (Х i , H i) i = 1, 2, …, m, které tvoří trénovací vzorek. V tomto případě je síť trénována, aby správně reagovala nejprve na první snímek X 1, poté na druhý X 2 atd. V této strategii však existuje nebezpečí, že síť při učení každého dalšího příkladu ztratí dříve nabyté dovednosti, to znamená, že síť může „zapomenout“ dříve prezentované příklady. Aby k tomu nedocházelo, je nutné trénovat síť najednou se všemi příklady trénovací sady.

    X 1 \u003d (X 11, ..., X 1 N) můžete trénovat 100 c 1

    X 2 \u003d (X 21, ..., X 2 N) 100 c 2 100 c

    ……………………

    X m \u003d (X m 1, ..., X mN) 100 c 3

    Protože řešení učebního problému je spojeno s velkými obtížemi, alternativou je minimalizovat objektivní funkci formuláře:

    ,

    kde l i jsou parametry, které určují požadavky na kvalitu trénování neuronové sítě pro každý z příkladů tak, že λ 1 + λ 2 + ... + λ m = 1.

    Praktická část.

    Vytvoříme tréninkovou sadu:

    P_o=kat(1, Mt, Mf);

    Nastavme strukturu neuronové sítě pro úlohu detekce:

    net = newff (minmax(P_o), , ("logsig", "logsig"), "trainlm", "learngdm");

    net.trainParam.epochs = 100;% nastavený počet tréninkových cyklů

    net.trainParam.show = 5;% počet cyklů pro zobrazení mezivýsledků;

    net.trainParam.min_grad = 0;% cílová hodnota gradientu

    net.trainParam.max_fail = 5;% je maximální povolený násobek chyby zkušebního vzorku překračující minimální dosaženou hodnotu;

    net.trainParam.searchFcn = "srchcha";% název 1D optimalizačního algoritmu, který se má použít

    net.trainParam.goal = 0;% chyba cílového tréninku

    Funkce newff je navržena tak, aby vytvořila "klasickou" vícevrstvou neuronovou síť s tréninkem zpětného šíření. Tato funkce obsahuje více argumentů. První argument funkce je matice minima a maximální hodnoty trénovací množina P_o, která je určena pomocí výrazu minmax (P_o).

    Druhé argumenty funkce jsou uvedeny v hranaté závorky a určit počet a velikost vrstev. Výraz znamená, že neuronová síť má 2 vrstvy. V první vrstvě - npr=10 neuronů a ve druhé - 2. Počet neuronů v první vrstvě je určen rozměrem matice vstupních vlastností. V závislosti na počtu prvků v první vrstvě může být: 5, 7, 12 neuronů. Rozměr druhé vrstvy (výstupní vrstvy) je určen řešeným problémem. V úlohách detekce užitečného signálu na pozadí mikroseismu, klasifikace podle první a druhé třídy, jsou na výstupu neuronové sítě nastaveny 2 neurony.

    Třetí argumenty funkce určují typ aktivační funkce v každé vrstvě. Výraz ("logsig", "logsig") znamená, že každá vrstva používá sigmoidálně-logistickou aktivační funkci, jejíž rozsah je (0, 1).

    Čtvrtý argument specifikuje typ trénovací funkce neuronové sítě. Příklad definuje funkci učení, která používá optimalizační algoritmus Levenberg-Marquardt - "trainlm".

    První polovina vektorů matice T je inicializována hodnotami (1, 0) a následující - s (0, 1).

    net=newff (minmax(P_o), , ("logsig", "logsig"), "trainlm", "learngdm");

    net.trainParam.epochs = 1000;

    net.trainParam.show = 5;

    net.trainParam.min_grad = 0;

    net.trainParam.max_fail = 5;

    net.trainParam.searchFcn = "srchcha";

    net.trainParam.goal = 0;

    Inicializační program pro požadované výstupy neuronové sítě T:

    n1=délka (Mt(:, 1));

    n2=délka (Mf(:, 1));

    TI = nuly (2, ni);

    T2=nuly(2, n2);

    T=kat(2, TI, T2);

    Trénink neuronové sítě:

    net = vlak(net, P_o, T);

    Obrázek 25 - Plán tréninku neuronové sítě.

    Pojďme ovládat neuronovou síť:

    Y_k=sim(net, P_k);

    Příkaz sim posílá data z řídicí sady P_k na vstup neuronu síť, přičemž výsledky se zapisují do výstupní matice Y_k. Počet řádků v maticích P_k a Y_k je stejný.

    Pb=součet (kolo(Y_k (1,1:100)))/100

    Odhad pravděpodobnosti správné detekce sledovaných vozidel Pb=1 alfa = součet (round(Y_k (1,110:157)))/110

    Odhadovaná pravděpodobnost falešného poplachu alfa = 0

    Směrodatnou chybu řízení určíme pomocí požadovaných a reálných výstupů neuronové sítě Еk.

    Hodnota řídicí chyby střední hodnoty je:

    sqe_k = 2,5919e-026

    Pojďme si vyzkoušet fungování neuronové sítě. K tomu vytvoříme matici vlastností testovacího signálu:

    h3=tr_t50-mean(tr_t50);

    Mh1=MATRPRIZP(h3,500, N1, N2);

    Mhl=Mhl(1:50,:);

    Y_t=sim(net, P_t);

    Pb=součet (kolo(Y_t (1,1:100)))/100

    Odhad pravděpodobnosti správné detekce pásových vozidel Pb=1

    Najdeme rozdíl mezi požadovanými a skutečnými výstupy neuronové sítě E a určíme směrodatnou chybu testování.

    Hodnota standardní chyby testování je:

    sqe_t = 3,185e-025

    Závěr: v této části jsme postavili model detektoru seismického signálu na neuronové síti s trénováním zpětného šíření. Problém detekce je řešen s malými chybami, proto jsou znaky vhodné pro detekci.

    Tato dvouvrstvá neuronová síť může být použita při budování systému detekce objektů.


    Závěr

    Tento seminární práce bylo studium metod zpracování informací a jejich aplikace při řešení problémů detekce objektů.

    V průběhu prací, které probíhaly ve čtyřech etapách, byly získány následující výsledky:

    1) Histogramy výběrových hustot pravděpodobnosti amplitud signálu byly konstruovány jako náhodné proměnné.

    Byly odhadnuty distribuční parametry: matematické očekávání, rozptyl, směrodatná odchylka.

    Učinili jsme předpoklad o zákonu rozdělení amplitud a testovali hypotézu pomocí Kolmogorova-Smirnovova a Pearsonova kritéria na hladině významnosti 0,05. Podle Kolmogorova-Smirnovova kritéria je distribuce vybrána správně. Podle Pearsonova kritéria bylo rozdělení správně zvoleno pouze pro signál pozadí. Pro něj byla přijata hypotéza normálního rozdělení.

    Přijaté signály k implementaci náhodné funkce a vytvořil pro ně korelační funkce. Podle korelační funkce zjistil, že signály mají náhodný oscilační charakter.

    2) Vytvořené trénovací a řídicí datové sady (pro trénování a řízení neuronové sítě).

    3) Pro trénovací matici byly odhadnuty parametry rozložení znamének: matematické očekávání, rozptyl, směrodatná odchylka. Pro každý znak tréninkové matice daných tříd byla vypočtena vzdálenost a vybrán znak s maximálním rozdílem. Byl vypočten rozhodovací práh a křivky hustoty rozdělení pravděpodobnosti byly vyneseny do jednoho grafu. Formuloval orientační pravidlo.

    4) Trénovali jsme dvouvrstvou neuronovou síť pro řešení klasifikačního problému. Byla odhadnuta pravděpodobnost správné detekce a falešných poplachů. Stejné ukazatele byly hodnoceny testovacími signály.

    Nemoci vyplývající z respirační paralýzy. 4. Zápalné zbraně Významné místo v systému konvenčních zbraní mají zápalné zbraně, což je soubor zbraní založený na použití zápalných látek. Podle americké klasifikace jsou zápalné zbraně zbraně hromadného ničení. Schopnost zápalníka...

    5. Byla získána dlouhodobá nepřetržitá série pozorování intenzity proudění a azimutálního rozložení atmosféry SLW, která umožnila sledovat dynamiku bouřkové aktivity ve světových centrech bouřek. 5.1. Mořské monitorování ukázalo, že kontinentální a ostrovní centra bouřek mají hlavní příspěvek ke globální aktivitě bouřek. Kolísání intenzity pulzního proudu dobře...


    Signál pro koherenci, eliminuje náhodné, vedlejší výsledky měření bez ztráty citlivosti frekvenčního měřiče. Spektrální analyzátory Tento již poměrně vyvinutý, ale stále slibný typ rádiového monitorování je určen frekvenční spektra modulované signály v různých frekvenčních pásmech a zobrazení těchto spekter na obrazovce displeje/osciloskopu. Když, ...

    Nejdůležitější vlastností neuronových sítí je jejich schopnost učit se z environmentálních dat a zlepšovat svůj výkon jako výsledek učení. Ke zlepšení výkonu dochází v průběhu času podle určitých pravidel. Trénink neuronové sítě probíhá prostřednictvím interaktivního procesu úpravy synaptických vah a prahů. V ideálním případě neuronová síť získává znalosti o prostředí při každé iteraci procesu učení.

    S pojmem učení je spojeno poměrně hodně činností, proto je těžké dát tomuto procesu jednoznačnou definici. Proces učení navíc závisí na úhlu pohledu na něj. To je to, co prakticky pro kohokoli znemožňuje přesnou definici tento koncept. Například proces učení z pohledu psychologa se zásadně liší od učení z pohledu učitele školy. Z hlediska neuronové sítě lze pravděpodobně použít následující definici:

    Učení je proces, ve kterém jsou volné parametry neuronové sítě laděny simulací prostředí, ve kterém je síť zabudována. Typ učení je určen tím, jak jsou tyto parametry upraveny.

    Tato definice procesu učení neuronové sítě předpokládá následující sled událostí:

    1. Neuronová síť přijímá podněty z vnějšího prostředí.
    2. V důsledku prvního odstavce se mění volné parametry neuronové sítě.
    3. Po změně vnitřní struktury reaguje neuronová síť na excitace jiným způsobem.

    Výše uvedený seznam jasných pravidel pro řešení problému učení neuronové sítě se nazývá algoritmus učení. Je snadné uhodnout, že neexistuje žádný univerzální algoritmus učení vhodný pro všechny architektury neuronových sítí. Existuje pouze soubor nástrojů, reprezentovaných řadou výukových algoritmů, z nichž každý má své vlastní výhody. Učební algoritmy se od sebe liší ve způsobu, jakým upravují synaptické váhy neuronů. Dalším rozlišovacím znakem je způsob, jakým trénovaná neuronová síť komunikuje s vnějším světem. V této souvislosti se hovoří o paradigmatu učení spojeném s modelem prostředí, ve kterém daná neuronová síť funguje.

    Existují dva koncepční přístupy k trénování neuronových sítí: učení pod dohledem a učení bez dozoru.

    Řízené trénování neuronové sítě předpokládá, že pro každý vstupní vektor z trénovací množiny existuje požadovaná hodnota výstupního vektoru, nazývaná cíl. Tyto vektory tvoří tréninkový pár. Váhy sítě se mění, dokud není pro každý vstupní vektor získána přijatelná úroveň odchylky výstupního vektoru od cílového.

    Trénink neuronové sítě bez dozoru je mnohem věrohodnějším modelem učení z hlediska biologických kořenů umělých neuronových sítí. Tréninková množina se skládá pouze ze vstupních vektorů. Tréninkový algoritmus neuronové sítě upravuje váhy sítě tak, aby byly získány konzistentní výstupní vektory, tzn. takže prezentace dostatečně blízkých vstupních vektorů dává stejné výstupy.

    Tento článek obsahuje materiály - převážně ruskojazyčné - pro základní studium umělých neuronových sítí.

    Umělá neuronová síť neboli ANN je matematický model, stejně jako jeho softwarová či hardwarová implementace, postavená na principu organizace a fungování biologických neuronových sítí – sítí nervových buněk živého organismu. Věda o neuronových sítích existuje již dlouhou dobu, ale je to právě v souvislosti s nejnovějšími výsledky vědeckého a technologického pokroku. dané oblasti začíná získávat na popularitě.

    knihy

    Výběr začněme klasickým způsobem studia – pomocí knih. Vybrali jsme ruskojazyčné knihy z velké množství příklady:

    • F. Wasserman, Neurocomputer Engineering: Theory and Practice. 1992
      Kniha ve veřejné podobě nastiňuje základy stavby neuropočítačů. Je popsána struktura neuronových sítí a různé algoritmy pro jejich ladění. Samostatné kapitoly jsou věnovány implementaci neuronových sítí.
    • S. Khaikin, Neuronové sítě: Kompletní kurz. 2006
      Zde jsou zvažována hlavní paradigmata umělých neuronových sítí. Předkládaný materiál obsahuje rigorózní matematické zdůvodnění všech paradigmat neuronových sítí, je ilustrován příklady, popisy počítačových experimentů, obsahuje mnoho praktických problémů a také rozsáhlou bibliografii.
    • D. Forsyth, Počítačové vidění. Moderní přístup. 2004
      počítačové vidění je v této fázi vývoje globálního digitálu jednou z nejvyhledávanějších oblastí počítačová technologie. Je vyžadován ve výrobě, řízení robotů, automatizaci procesů, lékařských a vojenských aplikacích, satelitním sledování a osobní počítače zejména vyhledávání digitálních obrázků.

    Video

    Není nic přístupnějšího a srozumitelnějšího než vizuální učení pomocí videa:

    • Chcete-li pochopit, co je strojové učení obecně, podívejte se sem. tyto dvě přednášky od ShaD Yandex.
    • Úvod k základním principům návrhu neuronové sítě - skvělé pro pokračování ve zkoumání neuronových sítí.
    • Přednáškový kurz na téma "Počítačové vidění" od VMK MSU. Počítačové vidění je teorie a technologie pro vytváření umělých systémů, které detekují a klasifikují objekty v obrazech a videích. Tyto přednášky lze připsat úvodu do této zajímavé a složité vědy.

    Vzdělávací zdroje a užitečné odkazy

    • Portál umělé inteligence.
    • Laboratoř "Já jsem intelekt".
    • Neuronové sítě v Matlabu.
    • Neuronové sítě v Pythonu (anglicky):
      • Klasifikace textu pomocí ;
      • Jednoduché .
    • Neuronová síť zapnutá.

    Série našich publikací na toto téma

    Kurz jsme již zveřejnili #[e-mail chráněný] pomocí neuronových sítí. V tomto seznamu jsou pro vaše pohodlí publikace uspořádány v pořadí studia.