Boom neurónových sietí: Kto vyrába neurónové siete, prečo sú potrebné a koľko peňazí môžu priniesť. Siete spätnej väzby. Čo je to vytesňovací neurón a na čo slúži?

  • 23.06.2019

Ďalšou oblasťou výskumu umelej inteligencie sú neurónové siete. Boli navrhnuté tak, aby pripomínali prirodzené neurónové siete v ľudskom nervovom systéme.

Umelé neurónové siete

Vynálezca prvého neuropočítača, Dr. Robert Hecht-Nielsen, uviedol nasledujúci koncept neurónovej siete: „Neurónová sieť je výpočtový systém pozostávajúci z množstva jednoduchých, vysoko prepojených procesných prvkov, ktoré spracúvajú informácie dynamickou odpoveďou na vonkajšie vplyvy“.

Základná štruktúra umelých neurónových sietí (ANN)

Myšlienka ANN je založená na presvedčení, že je možné napodobniť prácu ľudského mozgu vytvorením potrebných spojení pomocou kremíka a drôtov, ako napríklad v živých neurónoch a dendritoch.

Ľudský mozog sa skladá zo 100 miliárd nervových buniek nazývaných neuróny. Sú spojené s tisíckami ďalších buniek pomocou axónov. Dendrity prijímajú dráždivé látky z vonkajšieho prostredia alebo signály zo zmyslov. Tieto vstupy vytvárajú elektrické impulzy, ktoré sa rýchlo šíria cez neurónovú sieť. Neurón potom môže posielať správy iným neurónom, ktoré môžu poslať túto správu ďalej alebo ju nemusia poslať vôbec.


Umelé neurónové siete sú tvorené viacerými uzlami, ktoré napodobňujú biologické neuróny ľudského mozgu. Neuróny sú navzájom prepojené a navzájom sa ovplyvňujú. Uzly môžu prijímať vstup a vykonávať základné operácie s údajmi. V dôsledku týchto operácií sa dáta prenášajú do iných neurónov. Výstup pre každý uzol sa nazýva jeho aktivácia.

Každý odkaz je spojený s hmotnosťou. ANN sú schopné učenia, ktoré sa vykonáva zmenou hodnoty hmotnosti. Nasledujúci obrázok ukazuje jednoduchú ANN:

Typy umelých neurónových sietí

Existujú dva typy topológií umelých neurónových sietí – dopredná a spätná väzba.

Tok informácií je jednosmerný. Blok prenáša informácie do iných jednotiek, od ktorých nedostáva žiadne informácie. Žiadna spätná väzba. Majú pevné vstupy a výstupy.


Slučky spätnej väzby sú tu povolené.

Ako fungujú umelé neurónové siete

Diagramy sú znázornené v topológii, každá šípka predstavuje spojenie medzi dvoma neurónmi a označuje cestu toku informácií. Každé spojenie má váhu, celé číslo, ktoré riadi signál medzi dvoma neurónmi.

Ak sieť vytvára „dobrý“ a „požadovaný“ výstup, potom nie je potrebné upravovať hmotnosť. Ak však sieť generuje „zlé“ alebo „nechcené“ závery alebo chyby, potom systém upraví svoje váhy, aby zlepšil následné výsledky.

Strojové učenie v umelých neurónových sieťach

ANN sú schopní učiť sa a musia byť vyškolení. Existuje niekoľko stratégií učenia

Školenie – zahŕňa učiteľa, ktorý do siete dodáva vzorku školenia, na ktorú učiteľ pozná odpovede. Sieť porovnáva svoje výsledky s odpoveďami učiteľa a upravuje svoje váhy.

Učenie bez dozoru je nevyhnutné, keď neexistuje žiadna vzorka školenia so známymi odpoveďami. Napríklad pri úlohách zhlukovania, t.j. rozdelenie súboru prvkov do skupín podľa určitých kritérií.

Posilňovacie učenie je stratégia pozorovania. Sieť robí rozhodnutia pozorovaním svojho okolia. Ak je pozorovanie negatívne, sieť upraví svoje váhy tak, aby mohla robiť rôzne potrebné rozhodnutia.

Algoritmus spätného šírenia

Bayesovské siete (BS)

Tieto grafické štruktúry sa používajú na znázornenie pravdepodobnostných vzťahov medzi súborom náhodných premenných.

V týchto sieťach je každý uzol náhodnou premennou so špecifickými vetami. Napríklad v lekárskej diagnóze rakovinový uzol naznačuje, že pacient má rakovinu.

Hrany spájajúce uzly predstavujú pravdepodobnostný vzťah medzi týmito náhodnými premennými. Ak jeden z dvoch uzlov ovplyvňuje druhý uzol, musia byť pripojené priamo. Sila vzťahu medzi premennými je kvantifikovaná pravdepodobnosťou, ktorá je spojená s každým uzlom.

Existuje len obmedzenie na oblúky v BN, nemôžete sa vrátiť späť do uzla len sledovaním smeru oblúka. Preto sa BNS nazýva acyklický graf.

Štruktúra BN je ideálna na spojenie vedomostí a pozorovateľných údajov. BN možno použiť na učenie sa kauzálnych vzťahov a pochopenie rôznych problémov a predpovedanie budúcnosti, a to aj pri absencii údajov.

Kde sa používajú neurónové siete

    Sú schopné vykonávať úlohy, ktoré sú jednoduché pre ľudí, ale náročné pre stroje:

    Letectvo - autopilot lietadla;

    Automobilový priemysel - Automobilové navádzacie systémy;

    Vojenské - sledovanie cieľa, autopilot, rozpoznávanie signálu / obrazu;

    Elektronika - predpovedanie, analýza porúch, strojové videnie, syntéza hlasu;

    Finančné - oceňovanie nehnuteľností, úveroví poradcovia, hypotéky, portfólio obchodných spoločností a pod.

    Spracovanie signálu – Neurónové siete možno natrénovať na spracovanie zvukového signálu.

Umelá inteligencia a neurónové siete sú teraz obľúbenejšie ako kedykoľvek predtým. Množstvo používateľov sa čoraz častejšie pýta na to, ako neurónové siete fungujú, čo to je a na čom je založený princíp ich činnosti?

Tieto otázky spolu s ich popularitou sú tiež značne zložité, pretože procesy sú zložité algoritmy strojového učenia navrhnuté na rôzne účely, od analýzy zmien až po modelovanie rizík spojených s určitými akciami.

Čo sú neurónové siete a ich typy?

Prvá otázka, ktorá vyvstáva od záujemcov, je, čo je to neurónová sieť? V klasickej definícii ide o určitú sekvenciu neurónov, ktoré sú spojené synapsiami. Neurónové siete sú zjednodušeným modelom biologických analógov.

Program, ktorý má štruktúru neurónovej siete, umožňuje stroju analyzovať vstupné dáta a zapamätať si výsledok získaný z určitých zdrojov. Následne podobný prístup umožňuje získať z pamäte výsledok zodpovedajúci aktuálnemu súboru údajov, ak už bol dostupný pri skúsenostiach so sieťovými cyklami.

Mnoho ľudí vníma neurónovú sieť ako analógiu ľudského mozgu. Na jednej strane možno tento úsudok považovať za blízky pravde, no na druhej strane je ľudský mozog príliš zložitý mechanizmus na to, aby ho dokázal strojom obnoviť aspoň na zlomok percenta. Neurónová sieť je predovšetkým program založený na princípe fungovania mozgu, ale v žiadnom prípade nie je jeho analógom.

Neurónová sieť je zhluk neurónov, z ktorých každý prijíma informácie, spracováva ich a prenáša na iný neurón. Každý neurón spracováva signál presne rovnako.

Ako potom dosiahnete iný výsledok? Všetko je to o synapsiách, ktoré spájajú neuróny medzi sebou. Jeden neurón môže mať obrovské množstvo synapsií, ktoré zosilňujú alebo zoslabujú signál, a tie majú schopnosť časom meniť svoje charakteristiky.

Sú to práve správne zvolené parametre synapsie, ktoré umožňujú získať správny výsledok prevodu vstupných údajov na výstupe.

Po všeobecnom definovaní toho, čo je neurónová sieť, môžeme rozlíšiť hlavné typy ich klasifikácie. Pred pristúpením k klasifikácii je potrebné uviesť jedno upresnenie. Každá sieť má prvú vrstvu neurónov nazývanú vstupná vrstva.

Nevykonáva žiadne výpočty a transformácie, jeho úlohou je len jedna vec: prijímať a distribuovať vstupné signály zvyšku neurónov. Toto je jediná vrstva, ktorá je spoločná pre všetky typy neurónových sietí, ich ďalšia štruktúra je kritériom pre hlavné rozdelenie.

  • Jednovrstvová neurónová sieť. Ide o štruktúru interakcie neurónov, pri ktorej sa vstupné dáta po vstupe do prvej vstupnej vrstvy okamžite prenesú do výstupnej vrstvy konečného výsledku. V tomto prípade sa prvá vstupná vrstva neberie do úvahy, pretože nevykonáva žiadne akcie, okrem príjmu a distribúcie, ako už bolo uvedené vyššie. A druhá vrstva vykoná všetky potrebné výpočty a spracovanie a okamžite vytvorí konečný výsledok. Vstupné neuróny sú s hlavnou vrstvou spojené synapsiami, ktoré majú rôznu váhu zabezpečujúcu kvalitu spojení.
  • Viacvrstvová neurónová sieť. Ako je zrejmé z definície, tento typ neurónovej siete má okrem vstupnej a výstupnej vrstvy aj medzivrstvy. Ich počet závisí od stupňa zložitosti samotnej siete. Pripomína to skôr štruktúru biologickej neurónovej siete. Tieto typy sietí boli vyvinuté pomerne nedávno, predtým boli všetky procesy implementované pomocou jednovrstvových sietí. V súlade s tým má takéto riešenie oveľa viac možností ako jeho predchodca. V procese spracovania informácií je každá medzivrstva medzistupňom spracovania a distribúcie informácií.

V závislosti od smeru distribúcie informácií cez synapsie z jedného neurónu do druhého možno siete tiež rozdeliť do dvoch kategórií.

  • Dopredné siete alebo jednosmerné, to znamená štruktúra, v ktorej sa signál pohybuje striktne zo vstupnej vrstvy na výstup. Pohyb signálu v opačnom smere nie je možný. Takýto vývoj je pomerne rozšírený av súčasnosti úspešne rieši problémy ako rozpoznávanie, predpovede alebo zhlukovanie.
  • Siete so spätnou väzbou alebo opakujúce sa siete. Takéto siete umožňujú pohyb signálu nielen v smere dopredu, ale aj v opačnom smere. Čo to robí? V takýchto sieťach je možné na základe toho vrátiť výsledok výstupu na vstup, výstup neurónu je určený váhami a vstupnými signálmi a je doplnený o predchádzajúce výstupy, ktoré sa opäť vracajú na vstup. Takéto siete sa vyznačujú funkciou krátkodobej pamäte, na základe ktorej sa pri spracovaní obnovujú a dopĺňajú signály.

Toto nie sú jediné možnosti klasifikácie sietí.

Možno ich rozdeliť na homogénne a hybridné na základe typov neurónov, ktoré tvoria sieť. A tiež na heteroasociatívnu alebo autoasociatívnu, v závislosti od spôsobu výučby siete, s učiteľom alebo bez neho. Siete môžete klasifikovať aj podľa ich účelu.

Kde sa používajú neurónové siete?

Neurónové siete sa používajú na riešenie rôznych problémov. Ak úlohy uvažujeme podľa stupňa zložitosti, tak na riešenie najjednoduchších úloh je vhodný bežný počítačový program, viac
komplikované úlohy vyžadujúce jednoduché predpovedanie alebo približné riešenie rovníc, využívajú sa programy využívajúce štatistické metódy.

No úlohy ešte zložitejšej úrovne si vyžadujú úplne iný prístup. Týka sa to najmä rozpoznávania vzorov, reči alebo komplexnej predikcie. V hlave človeka sa takéto procesy dejú nevedome, to znamená, že rozpoznáva a zapamätáva si obrazy, človek si neuvedomuje, ako tento proces prebieha, a preto ho nemôže ovládať.

Toto sú úlohy, ktoré neurónové siete pomáhajú riešiť, to znamená, že sú vytvorené na vykonávanie procesov, ktorých algoritmy sú neznáme.

Neurónové siete sú teda široko používané v nasledujúcich oblastiach:

  • uznanie, pričom tento smer je v súčasnosti najširší;
  • pri predpovedaní ďalšieho kroku je táto funkcia použiteľná pri obchodovaní a akciových trhoch;
  • klasifikácia vstupných údajov podľa parametrov, takúto funkciu vykonávajú úverové roboty, ktoré sú schopné rozhodovať sa pri schvaľovaní pôžičky osobe, pričom sa spoliehajú na vstupnú sadu rôznych parametrov.

Vďaka schopnostiam neurónových sietí sú veľmi obľúbené. Môžu sa toho veľa naučiť, napríklad hrať hry, rozpoznávať určitý hlas atď. Vychádzajúc zo skutočnosti, že umelé siete sú postavené na princípe biologických sietí, možno ich trénovať vo všetkých procesoch, ktoré človek nevedome vykonáva.

Čo sú neuróny a synapsia?

Čo je teda neurón z hľadiska umelých neurónových sietí? Tento výraz sa vzťahuje na jednotku, ktorá vykonáva výpočty. Prijíma informácie zo vstupnej vrstvy siete, vykonáva s nimi jednoduché výpočty a požiera ich na ďalší neurón.

Sieť obsahuje tri typy neurónov: vstupné, skryté a výstupné. Navyše, ak je sieť jednovrstvová, potom neobsahuje skryté neuróny. Okrem toho existuje množstvo jednotiek nazývaných displacement neurón a kontextový neurón.

Každý neurón má dva typy údajov: vstupné a výstupné. V tomto prípade sa vstupné dáta pre prvú vrstvu rovnajú výstupným dátam. V iných prípadoch sa celkové informácie predchádzajúcich vrstiev dostanú na vstup neurónu, potom prechádzajú procesom normalizácie, to znamená, že všetky hodnoty, ktoré spadajú mimo požadovaný rozsah, sú konvertované aktivačnou funkciou.

Ako bolo uvedené vyššie, synapsia je spojenie medzi neurónmi, z ktorých každý má svoj vlastný stupeň hmotnosti. Práve vďaka tejto vlastnosti sa pri prenose upravujú vstupné informácie. V procese spracovania budú prevládať informácie prenášané synapsiou s veľkým indikátorom hmotnosti.

Ukazuje sa, že výsledok nie je ovplyvnený neurónmi, ale synapsiami, ktoré dávajú určitý súbor váh vstupných údajov, keďže samotné neuróny vykonávajú zakaždým presne tie isté výpočty.

V tomto prípade sú váhy nastavené v náhodnom poradí.

Schéma neurónovej siete

Na pochopenie fungovania neurónovej siete nie sú potrebné žiadne špeciálne zručnosti. Určité informácie prichádzajú na vstupnú vrstvu neurónov. Prenáša sa cez synapsie do ďalšej vrstvy, pričom každá synapsia má svoj váhový koeficient a každý ďalší neurón môže mať niekoľko prichádzajúcich synapsií.

Výsledkom je, že informácie prijaté nasledujúcim neurónom sú súčtom všetkých údajov, z ktorých každý sa vynásobí vlastným váhovým koeficientom. Výsledná hodnota sa dosadí do aktivačnej funkcie a získa sa výstupná informácia, ktorá sa odovzdáva ďalej, kým nedosiahne konečný výstup. Prvé spustenie siete neposkytuje správne výsledky, pretože sieť ešte nebola natrénovaná.

Aktivačná funkcia sa používa na normalizáciu vstupných údajov. Existuje veľa takýchto funkcií, ale existuje niekoľko hlavných, ktoré sú najrozšírenejšie. Ich hlavným rozdielom je rozsah hodnôt, v ktorých fungujú.

  • Lineárna funkcia f (x) = x, najjednoduchšia zo všetkých možných, slúži len na testovanie vytvorenej neurónovej siete alebo prenos dát v pôvodnej podobe.
  • Sigmoid je považovaný za najbežnejšiu aktivačnú funkciu a má tvar f (x) = 1/1 + e- ×; rozsah jej hodnôt je od 0 do 1. Nazýva sa aj logistická funkcia.
  • Hyperbolický tangens sa používa aj na pokrytie záporných hodnôt. F (x) = e² × - 1 / e² × + 1 - táto funkcia má tento tvar a rozsah, ktorý má od -1 do 1. Ak neurónová sieť neumožňuje použitie záporných hodnôt, nemali by ste použi to.

Na nastavenie dát do siete, s ktorou bude fungovať, sú potrebné tréningové sady.

Integrácia je počítadlo, ktoré sa zvyšuje s každou tréningovou sadou.

Epocha je indikátorom úrovne tréningu neurónovej siete, tento indikátor sa zvyšuje zakaždým, keď sieť prechádza cyklom celej sady tréningových sád.

Preto, aby ste správne trénovali sieť, musíte vykonávať sady a neustále zvyšovať indikátor epochy.

V priebehu tréningu budú odhalené chyby. Je to percento nezrovnalosti medzi získaným výsledkom a požadovaným výsledkom. Tento ukazovateľ by sa mal znižovať v procese zvyšovania ukazovateľa epochy, inak je niekde chyba vývojára.

Čo je to vytesňovací neurón a na čo slúži?

V neurónových sieťach existuje ešte jeden typ neurónu – vytesňovací neurón. Od hlavného typu neurónov sa líši tým, že jeho vstup a výstup sú v každom prípade rovné jednej. Okrem toho takéto neuróny nemajú vstupné synapsie.

Usporiadanie takýchto neurónov sa vyskytuje jeden na vrstvu a nie viac; tiež sa nemôžu navzájom spájať synapsiami. Nie je vhodné umiestňovať takéto neuróny na výstupnú vrstvu.

Na čo sú potrebné? Sú situácie, v ktorých neurónová sieť jednoducho nemôže nájsť správne riešenie z dôvodu, že požadovaný bod bude mimo dosahu. Práve na to sú potrebné takéto neuróny, aby bolo možné posunúť oblasť definície.

To znamená, že váha synapsie mení ohyb funkčného grafu, zatiaľ čo posunový neurón umožňuje posun pozdĺž osi súradníc X, takže neurónová sieť môže bez posunu zachytiť oblasť pre ňu neprístupnú. V tomto prípade je možné posun vykonať vpravo aj vľavo. Schematicky sa neuróny posunu zvyčajne neuvádzajú, ich váha sa štandardne zohľadňuje pri výpočte vstupnej hodnoty.

Neuróny skreslenia vám tiež umožnia získať výsledok v prípade, že všetky ostatné neuróny dávajú ako výstupný parameter 0. V tomto prípade, bez ohľadu na váhu synapsie, sa táto hodnota prenesie do každej ďalšej vrstvy.

Prítomnosť zaujatého neurónu napraví situáciu a získa iný výsledok. Uskutočniteľnosť použitia zaujatých neurónov sa určuje testovaním siete s nimi a bez nich a porovnaním výsledkov.

Je však dôležité si uvedomiť, že vytvorenie neurónovej siete na dosiahnutie výsledkov nestačí. Je tiež potrebné trénovať, čo si tiež vyžaduje špeciálne prístupy a má svoje vlastné algoritmy. Tento proces možno len ťažko nazvať jednoduchým, pretože jeho implementácia si vyžaduje určité znalosti a úsilie.

Dnes začíname na našej stránke študovať jednu veľmi zaujímavú tému, a to neurálne siete... Aké sú, prečo sú potrebné, ako s nimi pracovať – to všetko si ešte musíme vymyslieť) Teória bude prepletená s praktickými úlohami a príkladmi, aby sa zjednodušilo pochopenie a aby ste jasne videli, ako neurónové siete fungujú. Tradične bude prvý článok trochu úvodný, ale dnes už budeme diskutovať o niektorých dôležitých bodoch, ktoré sa nám budú hodiť v budúcnosti. Tak poďme na to!

Štúdium a používanie umelých neurónových sietí v princípe začalo už dávno - začiatkom 20. storočia, no skutočne sa rozšírili až o niečo neskôr. Je to spôsobené predovšetkým tým, že sa začali objavovať vyspelé (na tú dobu) výpočtové zariadenia, ktorých výkon bol dostatočne veľký na prácu s umelými neurónovými sieťami. V skutočnosti môžete v súčasnosti ľahko simulovať neurónovú sieť strednej zložitosti na akomkoľvek osobnom počítači. A o toto sa určite postaráme 😉

Aké to je neurónová sieť? A to je jasné už z názvu – sieť je súbor neurónov, ktoré sú navzájom prepojené určitým spôsobom. Zvážte jeden neurón:

Je to prvok, ktorý vypočítava výstupný signál (podľa určitého pravidla) z množiny vstupných signálov. To znamená, že hlavná postupnosť akcií jedného neurónu je nasledovná:

  • Prijímanie signálov z predchádzajúcich prvkov siete
  • Výpočet výstupného signálu
  • Odovzdávanie výstupného signálu ďalším prvkom neurónovej siete

Neuróny môžu byť navzájom spojené absolútne odlišnými spôsobmi, čo je určené štruktúrou konkrétnej siete. Ale podstata neurónovej siete je vždy rovnaká. Súbor signálov prichádzajúcich na vstup siete generuje výstupný signál (alebo niekoľko výstupných signálov) na výstupe. To znamená, že neurónová sieť môže byť zjednodušená ako čierna skrinka so vstupmi a výstupmi. A vo vnútri tejto krabice sedí obrovské množstvo neurónov 😉

Uviedli sme hlavné fázy siete, teraz sa budeme venovať každej z nich samostatne.

Kombinácia vstupných signálov

Keďže ku každému neurónu môže prichádzať viacero vstupných signálov, pri modelovaní neurónovej siete je potrebné nastaviť určité pravidlo pre kombinovanie všetkých týchto signálov. A pomerne často sa používa pravidlo sčítania vážených hodnôt odkazov. Čo znamená vážený? Poďme na to teraz...

Každé spojenie v sieti neurónov možno plne charakterizovať pomocou troch faktorov:

  • prvým je prvok, z ktorého odkaz pochádza
  • druhý je prvok, na ktorý smeruje odkaz
  • tretia je hmotnosť väzby.

Teraz nás viac zaujíma tretí faktor. Váha linky určuje, či je signál prenášaný cez linku zosilnený alebo zoslabený. Aby sme to vysvetlili jednoducho, „na prstoch“, uvažujme o tomto príklade:

Výstupný signál neurónu 1 je 5. Váha spojenia medzi neurónmi je 2. Na určenie vstupného signálu neurónu 2 pochádzajúceho z neurónu 1 je teda potrebné vynásobiť hodnotu tohto signálu váhou pripojenie (5 * 2). Ako vidíte, všetko je veľmi jednoduché)

A ak existuje veľa signálov? Správny! Všetky sa sčítajú. Výsledkom je, že na vstupe neurónu dostaneme nasledovné:

V tomto vzorci je to výsledok spojenia všetkých vstupov do neurónu (kombinovaný vstup z neurónu). - počet prvkov, ktoré prenášajú svoje výstupné signály na vstup signálu. A je hmotnosť spojenia spájajúceho neurón s neurónom. Sčítaním všetkých vážených vstupov dostaneme kombinovaný vstup sieťového prvku.

Štruktúra spojení medzi neurónmi je najčastejšie reprezentovaná vo forme matice, ktorá sa nazýva váhová matica. Prvok matice, ako vo vzorci, určuje váhu odkazu prechádzajúceho od prvku k prvku. Aby sme pochopili, ako sa skladajú matice váh, uvažujme o jednoduchej neurónovej sieti:

Takáto neurónová sieť bude vyzerať takto:

Napríklad od druhého prvku k tretiemu je spojenie, ktorého váha je 3. Pozrieme sa na maticu, druhý riadok, tretí stĺpec je číslo 3, všetko je správne 😉

Zistili sme váhové koeficienty a kombinovaný vstup, poďme ďalej.

Funkcia aktivity prvku.

Zistili sme vstupné signály, je čas na víkend. Pre každý prvok siete existuje určité pravidlo, podľa ktorého sa jeho výstupná hodnota vypočítava z hodnoty kombinovaného vstupu prvku. Toto pravidlo sa nazýva funkcia aktivity. A samotná výstupná hodnota sa nazýva aktivita neurónu. Absolútne akékoľvek matematické funkcie môžu pôsobiť ako funkcie aktivity, ako príklad uvediem niekoľko najčastejšie používaných:

  • prahová funkcia - ak je hodnota združeného vstupu pod určitou hodnotou (prah), potom je aktivita nulová, ak je vyššia, je jedna.
  • logistická funkcia.

Pozrime sa na ďalší malý príklad, ktorý sa v literatúre veľmi často používa na vysvetlenie podstaty práce neurónových sietí. Úlohou príkladu je vypočítať pomer XOR pomocou neurónovej siete. To znamená, že na vstup pošleme rôzne varianty signálov a na výstupe by sme mali dostať výsledok operácie XOR pre hodnoty dodané na vstup:

Prvky 1 a 2 sú vstupné a prvok 7 je výstup. Neuróny 5 a 6 sa nazývajú skryté, pretože nie sú spojené s vonkajším prostredím. Získali sme teda tri vrstvy – vstupnú, skrytú a výstupnú. Položky 3 a 4 sa nazývajú offsetové položky. Ich výstupný signál (aktivita) sa vždy rovná 1. Na výpočet kombinovaného vstupu v tejto sieti použijeme pravidlo sčítania vážených spojení a ako funkcia aktivity bude fungovať prahová funkcia. Ak je kombinovaný vstup prvku menší ako 0, potom je aktivita 0, ak je vstup väčší ako 0, potom je aktivita 1.

Nakŕmime vstup neurónu 1 - jedna a vstup neurónu 2 - nula. V tomto prípade by sme na výstupe mali dostať 1 (0 XOR 1 = 1). Vypočítajme výstupnú hodnotu manuálne, aby sme demonštrovali prevádzku siete.

Kombinovaný vstup prvku 5: = 1 * (-1) + 0 * (-1) + 1 * 1,5 = 0,5.

Aktivita prvku je 5:1 (0,5> 0).

Kombinovaný vstup položky 6: = 1 * (-1) + 0 * (-1) + 1 * 0,5 = -0,5.

Aktivita prvku 6:0.

Kombinovaný vstup prvku 7: = 1 * (1) + 0 * (-1) + 1 * (-0,5) = 0,5.

Aktivita prvku 7 a zároveň výstupná hodnota siete je 1. Čo bolo potrebné dokázať =)

Ako vstupné signály môžete skúsiť použiť všetky možné hodnoty (0 a 0, 1 a 0, 0 a 1, 1 a 1), na výstupe vždy uvidíme hodnotu zodpovedajúcu pravdivostnej tabuľke operácie XOR. Ako vidíte, sieť funguje!

V tomto prípade sme všetky hodnoty váhových koeficientov poznali vopred, ale hlavnou črtou neurónových sietí je, že samy dokážu korigovať hodnoty váh všetkých spojení v procese trénovania siete. Ale o trénovaní neurónových sietí si povieme v ďalšom článku a samozrejme pouvažujeme o praktickom príklade na upevnenie materiálu. Takže do skorého videnia!

Podľa toho berie neurónová sieť dve čísla ako vstup a na výstupe musí dať ďalšie číslo – odpoveď. Teraz o samotných neurónových sieťach.

Čo je to neurónová sieť?


Neurónová sieť je sekvencia neurónov spojených synapsiami. Štruktúra neurónovej siete prišla do programovacieho sveta priamo z biológie. Vďaka tejto štruktúre stroj získava schopnosť analyzovať a dokonca si zapamätať rôzne informácie. Neurónové siete sú tiež schopné prichádzajúce informácie nielen analyzovať, ale aj reprodukovať zo svojej pamäte. Pre záujemcov si určite pozrite 2 videá z TED Talks: Video 1 , Video 2). Inými slovami, neurónová sieť je strojová interpretácia ľudského mozgu, ktorá obsahuje milióny neurónov, ktoré prenášajú informácie vo forme elektrických impulzov.

Čo sú neurónové siete?

Zatiaľ budeme uvažovať o príkladoch na najzákladnejšom type neurónových sietí – ide o doprednú sieť (ďalej len FNS). Aj v nasledujúcich článkoch predstavím viac pojmov a poviem vám o rekurentných neurónových sieťach. DSS, ako už názov napovedá, je sieť so sériovým spojením neurónových vrstiev, v ktorej informácie idú vždy len jedným smerom.

Na čo slúžia neurónové siete?

Neurónové siete sa používajú na riešenie zložitých problémov, ktoré si vyžadujú analytické výpočty podobné tým, ktoré má ľudský mozog. Najbežnejšie použitie pre neurónové siete je:

Klasifikácia- rozdelenie údajov podľa parametrov. Napríklad pri vchode sa dáva množina ľudí a je potrebné rozhodnúť, komu z nich požičať a komu nie. Túto prácu môže vykonávať neurónová sieť analyzujúca informácie, ako je vek, solventnosť, úverová história atď.

Predpoveď- schopnosť predvídať ďalší krok. Napríklad vzostup alebo pád akcie na základe situácie na akciovom trhu.

Uznanie- v súčasnosti najrozšírenejšie využitie neurónových sietí. Používa sa na Googli, keď hľadáte fotku, alebo vo fotoaparátoch telefónov, keď rozpozná polohu vašej tváre a nechá ju vyniknúť a oveľa viac.

Aby sme teraz pochopili, ako neurónové siete fungujú, pozrime sa na ich komponenty a ich parametre.

Čo je to neurón?


Neurón je výpočtová jednotka, ktorá prijíma informácie, vykonáva na nich jednoduché výpočty a prenáša ich ďalej. Sú rozdelené do troch hlavných typov: vstup (modrý), skrytý (červený) a výstup (zelený). Existuje aj bias neurón a kontextový neurón, o ktorých si povieme v ďalšom článku. V prípade, že neurónová sieť pozostáva z veľkého počtu neurónov, zavádza sa pojem vrstva. Podľa toho existuje vstupná vrstva, ktorá prijíma informácie, n skrytých vrstiev (zvyčajne nie viac ako 3), ktoré ich spracúvajú, a výstupná vrstva, ktorá vydáva výsledok. Každý z neurónov má 2 hlavné parametre: vstupné dáta a výstupné dáta. V prípade vstupného neurónu: vstup = výstup. Vo zvyšku sa celková informácia všetkých neurónov z predchádzajúcej vrstvy dostane do vstupného poľa, potom sa normalizuje pomocou aktivačnej funkcie (zatiaľ ju len znázorni f (x)) a dostane sa do výstupného poľa.


Dôležité mať na pamätiže neuróny operujú s číslami v rozsahu alebo [-1,1]. Ale pýtate sa, čo potom zvládnuť čísla, ktoré idú mimo tento rozsah? V tejto fáze je najjednoduchšou odpoveďou vydeliť 1 týmto číslom. Tento proces sa nazýva normalizácia a veľmi často sa používa v neurónových sieťach. Viac o tom neskôr.

Čo je synapsia?


Synapsia je spojenie medzi dvoma neurónmi. Synapsie majú 1 parameter – hmotnosť. Vďaka nemu sa vstupné informácie menia pri prenose z jedného neurónu na druhý. Povedzme, že existujú 3 neuróny, ktoré prenášajú informácie na ďalší. Potom máme 3 váhy zodpovedajúce každému z týchto neurónov. Pre neurón s väčšou váhou bude táto informácia dominantná v nasledujúcom neuróne (napríklad miešanie farieb). V skutočnosti je súbor váh neurónovej siete alebo matica váh akýmsi mozgom celého systému. Práve vďaka týmto váham sú vstupné informácie spracované a prevedené na výsledok.

Dôležité mať na pamätiže pri inicializácii neurónovej siete sa váhy prideľujú náhodne.

Ako funguje neurónová sieť?


V tomto príklade je znázornená časť neurónovej siete, kde písmená I označujú vstupné neuróny, písmeno H označuje skrytý neurón a písmeno w označuje váhy. Zo vzorca je vidieť, že vstupná informácia je súčet všetkých vstupných údajov vynásobený príslušnými váhami. Potom dáme vstup 1 a 0. Nech w1 = 0,4 a w2 = 0,7 Vstupné údaje neurónu H1 budú nasledovné: 1 * 0,4 + 0 * 0,7 = 0,4. Teraz, keď máme vstup, môžeme získať výstup zapojením vstupu do aktivačnej funkcie (viac o tom neskôr). Teraz, keď máme výstup, podáme ho ďalej. A tak opakujeme pre všetky vrstvy, kým sa nedostaneme k výstupnému neurónu. Pri prvom spustení takejto siete uvidíme, že odpoveď nie je ani zďaleka správna, pretože sieť nie je natrénovaná. Budeme ju trénovať, aby sa jej výsledky zlepšili. Predtým, ako sa však naučíme, ako na to, predstavme si niekoľko pojmov a vlastností neurónovej siete.

Aktivačná funkcia

Aktivačná funkcia je spôsob normalizácie vstupných údajov (hovorili sme o tom skôr). To znamená, že ak máte na vstupe veľké číslo, po jeho prechode cez aktivačnú funkciu získate výstup v rozsahu, ktorý potrebujete. Aktivačných funkcií je veľa, preto zvážime tie najzákladnejšie: Lineárne, Sigmoidné (Logistické) a Hyperbolické tangenty. Ich hlavným rozdielom je rozsah hodnôt.

Lineárna funkcia


Táto funkcia sa takmer nepoužíva, okrem prípadov, keď potrebujete otestovať neurónovú sieť alebo preniesť hodnotu bez transformácií.

Sigmoid


Toto je najbežnejšia aktivačná funkcia a jej rozsah hodnôt. Práve na ňom je zobrazená väčšina príkladov na webe, niekedy sa mu hovorí aj logistická funkcia. Ak teda vo vašom prípade existujú záporné hodnoty (napríklad akcie môžu ísť nielen hore, ale aj dole), budete potrebovať funkciu, ktorá zachytáva aj záporné hodnoty.

Hyperbolická dotyčnica


Hyperbolický tangens má zmysel používať iba vtedy, keď vaše hodnoty môžu byť záporné aj kladné, pretože rozsah funkcie je [-1,1]. Túto funkciu je nevhodné používať len s kladnými hodnotami, nakoľko výrazne zhorší výsledky vašej neurónovej siete.

Tréningová súprava

Tréningová množina je sekvencia údajov, na ktorých pracuje neurónová sieť. V našom prípade exkluzívny alebo (xor) máme len 4 rôzne výsledky, to znamená, že budeme mať 4 tréningové sady: 0xor0 = 0, 0xor1 = 1, 1xor0 = 1,1xor1 = 0.

Iterácia

Ide o akési počítadlo, ktoré sa zvyšuje zakaždým, keď neurónová sieť prejde jednou tréningovou sadou. Inými slovami, toto je celkový počet tréningových sád, ktoré prejde neurónová sieť.

Epocha

Pri inicializácii neurónovej siete je táto hodnota nastavená na 0 a má manuálne nastavený strop. Čím väčšia je epocha, tým lepšie je natrénovaná sieť a podľa toho aj jej výsledok. Epocha sa zvyšuje zakaždým, keď prejdeme celým súborom tréningových sérií, v našom prípade 4 sérií alebo 4 iterácií.


Dôležité nezamieňajte si iteráciu s epochou a pochopte postupnosť ich prírastku. Prvý n
raz sa zvýši iterácia a potom epocha a nie naopak. Inými slovami, neurónovú sieť nemôžete najskôr trénovať iba na jednej zostave, potom na druhej atď. Každú sériu musíte trénovať raz za éru. Týmto spôsobom sa môžete vyhnúť chybám vo výpočtoch.

Chyba

Chyba je percento, ktoré predstavuje nesúlad medzi očakávanými a prijatými odpoveďami. Chyba sa tvorí v každej epoche a mala by klesať. Ak sa tak nestane, potom robíte niečo zle. Chybu je možné vypočítať rôznymi spôsobmi, ale zvážime iba tri hlavné spôsoby: Stredná štvorcová chyba (ďalej len MSE), Root MSE a Arctan. Neexistuje žiadne obmedzenie používania ako pri aktivačnej funkcii a vy si môžete slobodne vybrať spôsob, ktorý vám poskytne najlepšie výsledky. Stačí vziať do úvahy, že každá metóda počíta chyby rôznymi spôsobmi. V Arctane bude chyba takmer vždy väčšia, pretože funguje podľa princípu: čím väčší rozdiel, tým väčšia chyba. Root MSE bude mať najmenšiu chybu, preto sa najčastejšie používa MSE, ktorý udržuje rovnováhu vo výpočte chyby.

Riešenie klasifikačného problému je jednou z najdôležitejších aplikácií neurónových sietí.

Klasifikačným problémom je problém priradenia vzorky k jednej z niekoľkých párových disjunktných množín. Príkladom takýchto problémov môže byť napríklad problém stanovenia bonity klienta banky, zdravotné problémy, pri ktorých je potrebné určiť napríklad výsledok choroby, riešenie problémov správy portfólia cenných papierov ( predať, kúpiť alebo „držať“ akcie v závislosti od situácie na trhu), problém identifikovať životaschopné firmy náchylné na bankrot.

Účel klasifikácie

Pri riešení klasifikačných problémov je potrebné zahrnúť existujúce statické vzorky(charakteristiky situácie na trhu, údaje z lekárskej prehliadky, informácie o zákazníkoch) do určité triedy. Existuje niekoľko spôsobov prezentácie údajov. Najbežnejším spôsobom je, že vzorka je reprezentovaná ako vektor. Komponenty tohto vektora predstavujú rôzne charakteristiky vzorky, ktoré ovplyvňujú rozhodnutie, do ktorej triedy má byť daná vzorka zaradená. Napríklad pri zdravotných problémoch môžu byť komponentmi tohto vektora údaje zo zdravotného záznamu pacienta. Na základe niektorých informácií o príklade je teda potrebné určiť, do ktorej triedy ho možno priradiť. Klasifikátor teda klasifikuje objekt do niektorej z tried v súlade s určitým rozdelením N-rozmerného priestoru, ktorý je tzv. priestory vchodov, a rozmer tohto priestoru je počet zložiek vektora.

Najprv musíte určiť úroveň zložitosti systému. Pri reálnych problémoch často nastáva situácia, kedy je počet vzoriek obmedzený, čo sťažuje určenie zložitosti problému. Je možné rozlíšiť tri hlavné stupne náročnosti. Prvý (najjednoduchší) je, keď triedy môžu byť oddelené priamkami (alebo nadrovinami, ak má vstupný priestor rozmer väčší ako dva) – tzv. lineárna oddeliteľnosť... V druhom prípade triedy nemožno oddeliť čiarami (rovinami), ale je možné ich oddeliť pomocou zložitejšieho delenia - nelineárna oddeliteľnosť... V treťom prípade sa triedy prekrývajú a môžeme sa len baviť pravdepodobnostná oddeliteľnosť.

V ideálnom prípade by sme po predspracovaní mali dostať lineárne separovateľný problém, pretože potom je konštrukcia klasifikátora značne zjednodušená. Žiaľ, pri riešení reálnych problémov máme obmedzený počet vzoriek, na základe ktorých je klasifikátor zostavený. Zároveň nemôžeme vykonať také predspracovanie dát, pri ktorom sa dosiahne lineárna separovateľnosť vzoriek.

Použitie neurónových sietí ako klasifikátora

Dopredné siete sú univerzálnym nástrojom na aproximáciu funkcií, čo umožňuje ich využitie pri riešení klasifikačných problémov. Neurónové siete sa spravidla ukazujú ako najefektívnejšia metóda klasifikácie, pretože v skutočnosti generujú veľké množstvo regresných modelov (ktoré sa používajú pri riešení klasifikačných problémov pomocou štatistických metód).

Žiaľ, pri aplikácii neurónových sietí v praktických úlohách vzniká množstvo problémov. Po prvé, nie je vopred známe, akú zložitosť (veľkosť) môže sieť potrebovať na dostatočne presné implementovanie mapovania. Táto zložitosť môže byť neúmerná a vyžaduje si zložitú sieťovú architektúru. Takže Minsky vo svojej práci "Perceptróny" dokázal, že najjednoduchšie jednovrstvové neurónové siete sú schopné riešiť iba lineárne separovateľné problémy. Toto obmedzenie je možné prekonať použitím viacvrstvových neurónových sietí. Vo všeobecnosti môžeme povedať, že v sieti s jednou skrytou vrstvou sa vektor zodpovedajúci vstupnému vzoru transformuje skrytou vrstvou do nejakého nového priestoru, ktorý môže mať inú dimenziu, a potom nadroviny zodpovedajúce neurónom výstupná vrstva rozdeliť do tried. Sieť teda rozpoznáva nielen charakteristiky pôvodných dát, ale aj „charakteristiky charakteristík“ tvorené skrytou vrstvou.

Príprava počiatočných údajov

Na zostavenie klasifikátora je potrebné určiť, ktoré parametre ovplyvňujú rozhodnutie o tom, do ktorej triedy vzorka patrí. To môže spôsobiť dva problémy. Po prvé, ak je počet parametrov malý, potom môže nastať situácia, v ktorej rovnaký súbor počiatočných údajov zodpovedá príkladom v rôznych triedach. Potom nie je možné trénovať neurónovú sieť a systém nebude fungovať správne (nie je možné nájsť minimum, ktoré by zodpovedalo takémuto súboru počiatočných údajov). Počiatočné údaje musia byť konzistentné... Na vyriešenie tohto problému je potrebné zväčšiť rozmer priestoru znakov (počet komponentov vstupného vektora zodpovedajúci vzorke). So zväčšovaním rozmeru priestoru funkcií však môže nastať situácia, že počet príkladov môže byť na trénovanie siete nedostatočný a namiesto zovšeobecňovania si jednoducho zapamätá príklady z trénovacej množiny a nebude môcť správne fungovať. . Pri identifikácii znakov je teda potrebné nájsť kompromis s ich počtom.

Ďalej je potrebné určiť spôsob reprezentácie vstupných údajov pre neurónovú sieť, t.j. určiť spôsob prídelu. Normalizácia je nevyhnutná, keďže neurónové siete pracujú s údajmi reprezentovanými číslami v rozsahu 0..1 a počiatočné údaje môžu mať ľubovoľný rozsah alebo môžu byť dokonca nenumerickými údajmi. V tomto prípade sú možné rôzne metódy, od jednoduchej lineárnej transformácie do požadovaného rozsahu až po mnohorozmernú analýzu parametrov a nelineárnu normalizáciu v závislosti od vzájomného vplyvu parametrov.

Výstupné kódovanie

Klasifikačný problém v prítomnosti dvoch tried možno vyriešiť na sieti s jedným neurónom vo výstupnej vrstve, ktorý môže nadobudnúť jednu z dvoch hodnôt 0 alebo 1 v závislosti od triedy, do ktorej vzorka patrí. Ak existuje viacero tried, nastáva problém s prezentáciou týchto údajov pre sieťový výstup. Najjednoduchším spôsobom reprezentácie výstupu je v tomto prípade vektor, ktorého zložky zodpovedajú rôznym číslam tried. V tomto prípade i-tá zložka vektora zodpovedá i-tej triede. V tomto prípade sú všetky ostatné komponenty nastavené na 0. Potom bude napríklad druhá trieda zodpovedať 1 na 2 sieťových výstupoch a 0 na zvyšku. Pri interpretácii výsledku sa zvyčajne predpokladá, že číslo triedy je určené číslom sieťovej zásuvky, na ktorej sa objavila maximálna hodnota. Napríklad, ak v sieti s tromi výstupmi máme vektor výstupných hodnôt (0,2, 0,6, 0,4), potom vidíme, že druhá zložka vektora má maximálnu hodnotu, čo znamená triedu, do ktorej je tento príklad zaradený patrí je 2. Pri tejto metóde kódovania niekedy aj zavádza pojem dôvera siete je, že príklad patrí do tejto triedy. Najjednoduchší spôsob, ako určiť spoľahlivosť, je určiť rozdiel medzi maximálnym výstupom a druhým výstupom, ktorý je najbližšie k maximu. Napríklad v príklade uvedenom vyššie je spoľahlivosť siete, že príklad patrí do druhej triedy, určená ako rozdiel medzi druhou a treťou zložkou vektora a rovná sa 0,6-0,4 = 0,2. V súlade s tým, čím vyššia je spoľahlivosť, tým je pravdepodobnejšie, že sieť dala správnu odpoveď. Táto metóda kódovania je najjednoduchší, ale nie vždy najlepší spôsob reprezentácie údajov.

Známe sú aj iné metódy. Napríklad výstupný vektor je číslo klastra zapísané v binárnej forme. Potom, ak existuje 8 tried, potrebujeme vektor s 3 prvkami a povedzme, trieda 3 bude zodpovedať vektoru 011. Ale v tomto prípade, ak je na jednom z výstupov prijatá nesprávna hodnota, môžeme dostať nesprávnu hodnotu klasifikácia (nesprávne číslo klastra), takže má zmysel zväčšiť vzdialenosť medzi dvoma klastrami pomocou kódovania výstupu Hammingovho kódu, čo zvýši spoľahlivosť klasifikácie.

Iný prístup je rozdeliť problém s k triedami na k * (k-1) / 2 podproblémy s dvoma triedami (kódovanie 2 x 2). V tomto prípade podúloha znamená, že sieť určuje prítomnosť jedného z vektorových komponentov. Tie. pôvodný vektor je rozdelený do skupín po dvoch komponentoch, pričom každá obsahuje všetky možné kombinácie komponentov výstupného vektora. Počet týchto skupín možno definovať ako počet neusporiadaných vzoriek dvoch z pôvodných komponentov. Z kombinatoriky

$ A_k ^ n = \ frac (k{n!\,(k\,-\,n)!} = \frac{k!}{2!\,(k\,-\,2)!} = \frac{k\,(k\,-\,1)}{2}$!}

Potom napríklad pri úlohe so štyrmi triedami máme 6 výstupov (podúloh) rozdelených takto:

N čiastkových úloh (ukončenie) ComponentsOutput
1 1-2
2 1-3
3 1-4
4 2-3
5 2-4
6 3-4

Kde 1 na výstupe označuje prítomnosť jednej zo zložiek. Potom môžeme prejsť k číslu triedy podľa výsledku výpočtu sieťou takto: určíme, ktoré kombinácie dostali jedinú (presnejšie blízku jednej) výstupnú hodnotu (t. j. ktoré podúlohy boli pre nás aktivované) a predpokladať, že číslo triedy bude to, ktoré zadalo najväčší počet aktivovaných čiastkových úloh (pozri tabuľku).

Toto kódovanie v mnohých úlohách dáva lepší výsledok ako klasická metóda kódovania.

Výber veľkosti siete

Je dôležité zvoliť správnu veľkosť siete. Často je jednoducho nemožné skonštruovať malý a kvalitný model a veľký model si jednoducho zapamätá príklady z tréningovej vzorky a neurobí aproximáciu, čo samozrejme povedie k nesprávnej práci klasifikátora. Existujú dva hlavné prístupy k budovaniu siete – konštruktívny a deštruktívny. V prvom z nich sa najprv odoberie sieť minimálnej veľkosti a postupne sa zväčšuje, kým sa nedosiahne požadovaná presnosť. Zároveň je na každom kroku preškolená. Existuje aj takzvaná metóda kaskádovej korelácie, pri ktorej sa po skončení epochy upraví architektúra siete, aby sa chyba minimalizovala. Pri deštruktívnom prístupe sa najprv vezme sieť nadhodnoteného objemu a potom sa z nej odstránia uzly a prepojenia, ktoré majú malý vplyv na riešenie. Pritom je užitočné pamätať na nasledujúce pravidlo: počet príkladov v tréningovej zostave musí byť väčší ako počet nastaviteľných závaží... V opačnom prípade si sieť namiesto zovšeobecňovania jednoducho zapamätá údaje a stratí schopnosť klasifikácie – výsledok bude nedefinovaný pre príklady, ktoré neboli zahrnuté v trénovacej sade.

Výber sieťovej architektúry

Pri výbere sieťovej architektúry sa zvyčajne skúša niekoľko konfigurácií s rôznym počtom prvkov. V tomto prípade je hlavným ukazovateľom objem tréningovej zostavy a zovšeobecňujúca schopnosť siete. Typicky sa používa učiaci algoritmus spätného šírenia s potvrdzujúcou sadou.

Algoritmus na konštrukciu klasifikátora na základe neurónových sietí

  1. Práca s údajmi
    • Vytvorte databázu príkladov typických pre túto úlohu
    • Rozdeľte celý súbor údajov do dvoch súborov: tréning a test (je možné ho rozdeliť do 3 súborov: tréning, test a potvrdenie).
  2. Predbežné spracovanie
    • Vyberte systém vlastností charakteristických pre danú úlohu a podľa toho transformujte údaje tak, aby sa privádzali na vstup siete (normalizácia, štandardizácia atď.). V dôsledku toho je žiaduce získať lineárne oddeliteľný priestor pre množstvo vzoriek.
    • Vyberte kódovací systém pre výstupné hodnoty (klasické kódovanie, kódovanie 2x2 atď.)
  3. Návrh siete, školenie a hodnotenie kvality
    • Vyberte topológiu siete: počet vrstiev, počet neurónov vo vrstvách atď.
    • Vyberte funkciu aktivácie neurónu (napríklad "sigmoid")
    • Vyberte si algoritmus sieťového učenia
    • Posúdiť kvalitu siete na základe potvrdzujúceho súboru alebo iného kritéria, optimalizovať architektúru (zníženie hmotnosti, stenčenie priestoru funkcií)
    • Zameria sa na sieťovú možnosť, ktorá poskytuje najlepšiu schopnosť zovšeobecnenia a na vyhodnotenie kvality práce na testovacej sade
  4. Použitie a diagnostika
    • Zistite mieru vplyvu rôznych faktorov na rozhodnutie (heuristický prístup).
    • Uistite sa, že sieť poskytuje požadovanú presnosť klasifikácie (počet nesprávne rozpoznaných príkladov je malý)
    • V prípade potreby sa vráťte na krok 2, zmeňte spôsob prezentácie vzoriek alebo zmeňte databázu.
    • Na vyriešenie problému prakticky použite sieť.

Na zostavenie kvalitného klasifikátora potrebujete kvalitné dáta. Žiadna z metód konštrukcie klasifikátorov, založených na neurónových sieťach alebo štatistických, nikdy neposkytne klasifikátor požadovanej kvality, ak dostupný súbor príkladov nebude dostatočne úplný a reprezentatívny pre úlohu, s ktorou bude musieť systém pracovať.