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.

Ohodnoťte jako ve škole:

Průměrná známka 1,65

Našli jste v článku chybu?
Zasílat nově přidané příspěvky e-mailem
Vitalia.cz: 30 falšovaných vín roku 2015

30 falšovaných vín roku 2015

Vitalia.cz: Italové v Praze: Sýry vyrábějí z našeho mléka

Italové v Praze: Sýry vyrábějí z našeho mléka

Podnikatel.cz: Daň z příjmů: online formulář

Daň z příjmů: online formulář

Lupa.cz: Osmý plán na stavbu rychlých sítí je nedodělek

Osmý plán na stavbu rychlých sítí je nedodělek

Měšec.cz: Vše o dani z nemovitých věcí

Vše o dani z nemovitých věcí

Lupa.cz: Oracle končí s Java pluginem v prohlížečích

Oracle končí s Java pluginem v prohlížečích

Vitalia.cz: Inspekce kontrolovala pesticidy a vodní dýmky

Inspekce kontrolovala pesticidy a vodní dýmky

120na80.cz: Domácí homeopatická lékárnička

Domácí homeopatická lékárnička

Lupa.cz: Lepší než Google: proč používat DuckDuckGo?

Lepší než Google: proč používat DuckDuckGo?

Podnikatel.cz: Sick day ve hře. Ale s přísnými pravidly

Sick day ve hře. Ale s přísnými pravidly

Lupa.cz: Stream koupil Červeného trpaslíka a další seriály

Stream koupil Červeného trpaslíka a další seriály

Vitalia.cz: Ministerstvo: Palmový olej nezakážeme, není důvod

Ministerstvo: Palmový olej nezakážeme, není důvod

Podnikatel.cz: Není jim to, tak to vrátí. Víme, jak na ně

Není jim to, tak to vrátí. Víme, jak na ně

Lupa.cz: Google navádí, jak krást fotky, stěžuje si ČTK

Google navádí, jak krást fotky, stěžuje si ČTK

Podnikatel.cz: Podal přiznání, má přeplatek. Nevrátí mu ho

Podal přiznání, má přeplatek. Nevrátí mu ho

Lupa.cz: Tip: tucet užitečných shieldů pro Arduino

Tip: tucet užitečných shieldů pro Arduino

Lupa.cz: Jak hackovat banky? Útočníci mají nový trik

Jak hackovat banky? Útočníci mají nový trik

Lupa.cz: Většině vašich přátel z Facebooku jste ukradení

Většině vašich přátel z Facebooku jste ukradení

Vitalia.cz: Pro otrlé: 42 obrázků, které budou na cigaretách

Pro otrlé: 42 obrázků, které budou na cigaretách

Podnikatel.cz: Hlasovat o EET se bude 10. února

Hlasovat o EET se bude 10. února

Ušetřete