Font size
  • A-
  • A
  • A+
Site color
  • R
  • A
  • A
  • A
Skip to main content
AI4VET AI4VET
  • Home
  • Calendar
  • More
You are currently using guest access
Log in
AI4VET
Home Calendar
Expand all Collapse all
  1. AI/ML Fundamentals
  2. AIML-SK
  3. 4. Neural Networks (SK)
  4. Cvičenie 10: Trénovanie neurónových sietí

Cvičenie 10: Trénovanie neurónových sietí

Cvičenie 10: Trénovanie neurónových sietí

Ihrisko TensorFlow

Teraz, keď už viete, čo sú neurónové siete a ako sa trénujú, môžete tiež skúsiť vybudovať a trénovať svoju vlastnú sieť!

TensorFlow Playground je grafické prostredie, ktoré vás priblíži k tomu, ako to vlastne vyzerá trénovať neurónovú sieť. Môžete k nemu pristupovať na https://playground.tensorflow.org/  a potom pokračovať v čítaní a sledovaní. Nepotrebujete špeciálny účet ani ďalší softvér, všetko sa spustí vo vašom prehliadači. V okne, ktoré na vás bude čakať, okamžite uvidíte veľa štvorcov predstavujúcich neuróny a čiary predstavujúce spojenia medzi nimi!

A screenshot of a computer

AI-generated content may be incorrect.

Najzasľúbenejšou zemou na svete, 2000. roky, je 1000-dňový deň Svetového dňa 2016.


V hornej časti  stránky TensorFlow Playground sa nachádza lišta, ktorá vám umožňuje vybrať typ úlohy a potom, keď vytvoríte sieť, ktorá problém vyrieši, môžete ju začať trénovať. Typ úlohy, ktorý môže byť klasifikáciou alebo regresiou, môžete vybrať v  poli  Typ problému  úplne vpravo. Prostredníctvom poľa  Rýchlosť učenia  môžete ovplyvniť veľkosť kroku učenia, ktorý sa používa na určenie najlepších hodnôt parametrov. V časti  Aktivácia  si môžete vybrať jednu z ponúkaných aktivačných funkcií. Polia  Regularizácia  a  Miera regularizácie  ovplyvňujú regularizáciu jednotlivých vrstiev neurónovej siete, podobne ako v lekcii o regularizácii a príklade lineárnej regresie. Samotné trénovanie siete sa spustí kliknutím na šípku vľavo. Počet tréningových období bude vytlačený v  poli Iterácie  .

Domovská lišta s možnosťami nastavenia tréningu


Na začiatok môžete vyskúšať jednu z ponúkaných klasifikačných úloh. Všetky klasifikačné úlohy sú binárne klasifikačné úlohy, sú ich celkovo štyri a sú reprezentované ikonami, ktoré popisujú dátové množiny, ktoré sa v nich používajú. Inštancie, ktoré patria do pozitívnej triedy, sú sfarbené na modro, zatiaľ čo inštancie, ktoré patria do negatívnej triedy, sú sfarbené do oranžova. Môžete si vybrať sady v sekcii ÚdajeNa ľavej strane obrazovky. Pre cvičenie spočiatku vyberieme množinu reprezentovanú sústrednými kruhmi - zvyšné množiny sú špirála, štyri kvadranty zodpovedajúce úlohe učenia sa exkluzívnej disjunkcie a dva zhluky údajov. Pomocou nastavení v tejto časti môžete tiež ovplyvniť mierku trénovacieho súboru a testovacieho súboru (štandardne majú tieto dve sady rovnakú veľkosť) a úroveň prekrývania tried (parameter Šum).  Veľkosť tréningového paketu je predvolene nastavená na 10 (parameter Veľkosť dávky).

Sekcia Funkcie odkazuje na vstupnú vrstvu a atribúty povrchovej siete. Keďže množiny, s ktorými sú množiny bodov v rovine, atribút \(x_1\) predstavuje hodnotu  súradníc  \(x\) a atribút \(x_2\) predstavuje  hodnotu súradníc  \(y\).  Je tiež možné vybrať atribúty \(x_1^2, x_2^2, x_1x_2\), ako aj \(sin(x_1)\) a \(sin(x_2)\).

Počet vrstiev neurónovej siete môžete ovládať pomocou možnosti   Skryté vrstvy. Kliknutím na tlačidlo + sa pridá nová skrytá vrstva, zatiaľ čo kliknutím na tlačidlo - sa skrytá vrstva vymaže. Počet neurónov v jednotlivých vrstvách sa ovláda aj kliknutím na tlačidlá + a -. Takto vytvorená sieť je plne prepojená neurónová sieť. Spojenia medzi neurónmi sú znázornené bodkovanými čiarami a ich farba a hrúbka sú zarovnané s hodnotami parametrov, ktoré ich sprevádzajú. Kliknutím na každý z Hodnotu parametra je možné nastaviť individuálne.

Po vytvorení mriežky budete musieť kliknúť na šípku a začať trénovať. Na paneli vpravo s názvom   Výstup  budete môcť sledovať úspešnosť tréningu vizuálne alebo vykreslením chybových kriviek a zobrazením ich hodnôt.


Problém so sústrednými dátovými kruhmi, ktoré sme vybrali pre cvičenie, nie je lineárny - nemôžeme nakresliť čiary, ktoré oddeľujú množinu modrej a množinu oranžových inštancií. Preto sa musíme naučiť zložitejší nelineárny model. Najprv môžeme vyskúšať sieť, ktorá má vstupy \(x1\) a \(x2\) a jednu skrytú vrstvu s dvoma neurónmi, ktoré využívajú aktivačnú funkciu ReLU. Všimneme si, že po epoche sieť stagnuje učením, takže ak ju zastavíme po 500 epochách, Dostaneme obrázok ako na obrázku nižšie. Samotný problém nie je ideálne vyriešený, pretože medzi triedami neexistujú jasné hranice. Môžeme vidieť, že prvý neurón skrytej vrstvy sa naučil klasifikovať inštancie na ľavú a pravú (štvorec tfk1)  a druhý neurón na tie pod a nad hlavnou uhlopriečkou (štvorec tfk2), takže kombináciou týchto poznatkov získame hranicu ako na obrázku. Ak zostanete na dvoch neurónoch a vyskúšate ďalšie aktivačné funkcie, výsledky nebudú uspokojivé (určite si to overte!).

 A screenshot of a computer

AI-generated content may be incorrect.

 

Ak teraz vytvoríme sieť, ktorá má vstupy \(x_1\) a \(x_2\) a jednu skrytú vrstvu s tromi neurónmi pomocou aktivačnej funkcie ReLU, dostaneme reprezentáciu ako na obrázku nižšie. Teraz sme schopní oddeliť inštancie jemnejšie - prvý neurón sa naučil vnímať tie v pravom dolnom rohu, druhý ich oddeľuje horizontálne (mierne šikmo) a tretí vertikálne (mierne šikmo). Všetky tieto znalosti sú tiež podmienené povahou aktivačnej funkcie, ktorú sme použili. Ich kombináciou môžeme určite dosiahnuť lepšiu hranicu medzi triedami.

A screenshot of a computer

AI-generated content may be incorrect.

Skúsme rovnakú kombináciu, ale pomocou sigmoidnej aktivácie. V podobnom počte epochách sme dosiahli oválnejšiu hranicu. Môžeme tiež vidieť, že teraz sa neuróny naučili rozlišovať inštancie podľa niektorých trochu odlišných kritérií a rovnako úspešne.

A screenshot of a computer

AI-generated content may be incorrect.

 

Existuje oveľa viac sietí, ktoré dokážu vyriešiť túto úlohu, pokračujte v experimentovaní a objavujte svoju sieť. Na konci cvičenia môžete špirálovú úlohu opustiť, pretože je najnáročnejšia. Takto by mohla vyzerať sieť, ktorá ho sleduje!

A screenshot of a computer

AI-generated content may be incorrect.

 

V praxi knižnice ako TensorFlow, Hard, PyTorch, JAX a ďalšie. Prostredníctvom svojho API ponúkajú funkcie, ktoré popisujú vrstvy siete, upravujú optimalizačné algoritmy a monitorujú celý tréningový proces. Okrem týchto základných funkcií knižnice definujú aj techniky monitorovania readaptácie, opatrenia na vyhodnocovanie modelov, ako aj mechanizmy na riadenie a prideľovanie hardvérových zdrojov. Tieto knižnice sú zvyčajne spárované s knižnicami, ktoré zobrazujú celý trénovací proces jemnejšie graficky. Knižnice sú napríklad TensorBoard a Weights & Biasis. Existuje tiež mnoho nástrojov prispôsobených konkrétnym úlohám.

Completion requirements:
  • Make a submission
Previous activity 4.5 Algoritmus K-Means
Next activity Cvičenie 11: VGG-16 Úloha klasifikácie sietí a obrázkov
You are currently using guest access (Log in)
Data retention summary
Get the mobile app
Get the mobile app
Play Store App Store
Powered by Moodle

This theme was proudly developed by

Conecti.me