Hlavní navigace

Biologické algoritmy (4) - Neuronové sítě

Vitalij Chalupník 25. 4. 2012

Neuronové sítě jsou modelem biologických struktur neuronů v živých organismech. Kvůli schopnosti se učit (někdy i doučovat na nových vzorcích) jsou často užívané v umělé inteligenci. Existuje celá řada modelů neuronů – jednoduché používající nespojité funkce, až složité popisující každý detail živého neuronu.

Neurony v přírodě

Na úvod se pro zajímavost seznámíme s neurony v přírodě. Neurony jsou buňky v živých organismech, které umožňují vést signály a reagovat na ně.

Neurony mají několik dendritů, které přijímají signál z okolí a jeden výběžek, tzv. axon, kterým jsou schopny samy signál vyslat. Samotný axon je na konci také rozvětven. Rychlost přenosu je v rozmezí 5 – 125 m/s.

Nervová soustava člověka obsahuje cca 1011 – 1012 neuronů. S rostoucím věkem počet neuronů ubývá. Neurony mohou mít desítky, ale některé dokonce i stovky tisíc dendritů, kterými jsou vzájemně propojeny. Odumře-li velká část neuronů, tuto ztrátu lze částečně nahradit zvětšením počtu spojů – dendritů.

Činnost neuronů se dá shrnout takto: Pomocí dendritů neurony zachycují signály. Tyto signály se šíří dovnitř buňky, kde vzniká potenciál. Je-li tento potenciál dostatečně velký, neuron je schopen sám vyslat signál dál.

Umělý neuron

Seznámíme se s modelem neuronu McCulloch-Pitts (MCP). Tento neuron má několik vstupů x1 - xn a jeden výstup.

Činnost neuronu lze popsat matematicky:

  1. Zachycení signálu a vedení dovnitř neuronu, kde vznikne potenciál P:
    P = w1*x1 + w2*x2 + ... + wn*xn
  2. Jestliže je potenciál dostatečně velký, neuron vyšle signál y:
    y = 1, jestliže P > w0, jinak  y = 0.

Podmínku že P > w0 lze přepsat pomocí aktivační funkce f(P). Celou činnost neuronu pak lze zapsat jedním matematickým vztahem, kde w0 bude záporné číslo představující práh, jejž musí potenciál překonat:

y = f(w0 + w1*x1 + w2*x2 + ... + wn*xn)

Aktivační funkce se může lišit, měla by ale být nelineární. Takovou aktivační funkcí může být např. funkce Sigmoid nebo hyperbolický tangens. Příklad funkce Sigmoid je znázorněn na grafu.

Z grafu lze vyčíst, že pokud je potenciál (po odečtení prahu w0) nízký, výstupem neuronu bude 0. Je-li ale potenciál dostatečně vysoký, výstupem neuronu bude  1.

Z matematických vztahů je vidět, že to, co ovlivňuje výsledek, jsou v konečném důsledku váhy w0 - wn. Tyto váhy představují jakousi propustnost signálu – tedy ovlivňují kolik zachyceného signálu se dostane do neuronu, kde zvýší potenciál. Naučené informace si neurony uchovávají právě v různém nastavení hodnot těchto váh.

Neuronové sítě se dají využívat v mnoha disciplinách. Dají se používat pro rozpoznávání (tváří, písmen a číslic, objektů a čehokoliv jiného). Dají se také používat pro řízení, kdy na základě vstupů neuronová sít vyhodnotí výstup a tím se dá povel k provedení činnosti. Neuronové sítě také umí hledat shodu mezi neznámými objekty – tzv. učení bez učitele, nebo aproximovat neznámou funkci na základě vzorků.

Geometrická interpretace činnosti neuronů

Nyní se podíváme na jednoduchý příklad. Chceme například rozpoznávat pohlaví neznámého člověka na základě znalosti jeho výšky a délky vlasů. Jedná se tedy o úlohu klasifikace, kdy neznámé osobě přiřadíme třídu MUŽ nebo ŽENA na základě dvou změřených parametrů: výška a délka vlasů.

Uděláme-li si anketu mezi náhodnými osobami, ve které budeme u lidí zjišťovat pohlaví, výšku a délku vlasů, lze potom snadno nakreslit graf, který bude vypadat jako ten na obrázku dole.

Z grafu je vidět, že muži jsou vysocí s krátkými vlasy, naopak ženy jsou nižší s delšími vlasy. V takovém grafu by bylo vhodné proložit přímku, která oddělí muže a ženy. Když se nyní objeví neznámá osoba a zjistíme-li u ní její výšku a délku vlasů, lze vytvořit v takovém grafu bod, který odpovídá této neznámé osobě. Padne-li tento bod před přímku – prohlásíme, že neznámá osoba je žena, avšak padne-li bod za proloženou přímku, neznámou osobu lze klasifikovat jako muže. Tento způsob klasifikace samozřejmě není stoprocentní, ale ve většině případech bude klasifikovat správně.

Tento příklad jsme si uvedli pro lepší pochopení toho, co jsou neuronové sítě. Každý neuron totiž je schopen rozpoznávat úplně stejným způsobem, který jsme si popsali. Učení neuronu není nic jiného, než určení pozice a natočení této myšlené přímky, která rozděluje prostor na dva podprostory.

Možná si ze střední školy vzpomenete na rovnici přímky v rovině: ax+by+c=0, popř. rovnici roviny v prostoru: ax+by+cz+d=0. Připomíná vám to něco? Je to analogický vztah jako uvedený potenciál neuronu: P = w0 + w1*x1 + w2*x2 + ... + wn*xn. Je-li tento potenciál dostatečně velký, bod leží v jednom podprostoru, je-li však potenciál malý, bod leží v druhém podprostoru.

Často je parametrů, na základě kterých klasifikujeme, více. Pokud bychom chtěli určovat pohlaví přesněji, mohli bychom měřit více údajů než pouze výšku a délku vlasů. V takovém případě bude prostor mít více než dvě dimenze, obecně N dimenzí. Každý neuron, který má N vstupů, rozděluje N-dimenzionální prostor na dva podprostory. Výstup neuronu (hodnota 0 nebo 1) tak určuje, ve kterém z těchto dvou podprostoru bod leží.

Učení neuronu probíhá tak, že se aktualizují váhy (propustnosti) w0wN a tím se uvedená přímka (obecně podprostor prostoru) přizpůsobuje vzorkům, na kterých se neuron učí.

Neuronové sítě kombinují funkce jednotlivých neuronů v ní. Celá síť pak je schopna rozpoznávat nejenom dvě třídy, ale libovolný počet tříd a je schopna řešit složitější problémy, ve kterých nestačí prostor rozdělit na dva podprostory.

Neuronové sítě lze obdobně využít i pro složitější úlohy – např. rozpoznávání tváří. Místo výšky a délky vlasů lze jako vstupní parametry použít délky mezi detekovanými body na tváři – viz obrázek níže.

Příště

V příštím dílu se seznámíme s celými sítěmi neuronů. Zjistíme, jak se neurony zapojují a jak jsou schopny rozlišovat mezi více než dvěma třídami.

Našli jste v článku chybu?

25. 4. 2012 14:24

Backpropagation je na toto pouzitie absolutne nevhodna. Na taketo veci sa skor pouzivaju rozne "SOM" siete. Napriklad Kohonenova.

25. 4. 2012 1:50

A já bych chtěl zase nějaký do kódu zapsaný praktický příklad ... :)
Jinak, díky za pěkně podanou teorii.


Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Vitalia.cz: Pečete cukroví a zbyl vám bílek?

Pečete cukroví a zbyl vám bílek?

Lupa.cz: Proč firmy málo chrání data? Chovají se logicky

Proč firmy málo chrání data? Chovají se logicky

Vitalia.cz: To není kašel! Správná diagnóza zachrání život

To není kašel! Správná diagnóza zachrání život

Podnikatel.cz: Babiše přesvědčila 89letá podnikatelka?!

Babiše přesvědčila 89letá podnikatelka?!

Lupa.cz: Babiš: E-shopů se EET možná nebude týkat

Babiš: E-shopů se EET možná nebude týkat

Měšec.cz: Finančním poradcům hrozí vracení provizí

Finančním poradcům hrozí vracení provizí

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Měšec.cz: Jak vymáhat výživné zadarmo?

Jak vymáhat výživné zadarmo?

Root.cz: Certifikáty zadarmo jsou horší než za peníze?

Certifikáty zadarmo jsou horší než za peníze?

DigiZone.cz: Rádio Šlágr má licenci pro digi vysílání

Rádio Šlágr má licenci pro digi vysílání

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

120na80.cz: Boreliózu nelze žádným testem prokázat

Boreliózu nelze žádným testem prokázat

120na80.cz: Horní cesty dýchací. Zkuste fytofarmaka

Horní cesty dýchací. Zkuste fytofarmaka

DigiZone.cz: Sony KD-55XD8005 s Android 6.0

Sony KD-55XD8005 s Android 6.0

Lupa.cz: Teletext je „internetem hipsterů“

Teletext je „internetem hipsterů“

Podnikatel.cz: EET: Totálně nezvládli metodologii projektu

EET: Totálně nezvládli metodologii projektu