Sdílet prostřednictvím


Neurální síť s více třídami

Důležité

Podpora studia Machine Learning (Classic) skončí 31. srpna 2024. Doporučujeme do tohoto data přejít na službu Azure Machine Learning.

Od 1. prosince 2021 nebude možné vytvářet nové prostředky studia Machine Learning (Classic). Do 31. srpna 2024 můžete pokračovat v používání stávajících prostředků studia Machine Learning (Classic).

Dokumentace ke studiu ML (Classic) se vyřazuje z provozu a v budoucnu se nemusí aktualizovat.

Vytvoří klasifikační model s více třídami pomocí algoritmu neurální sítě.

Kategorie: Machine Learning / Inicializovat model / klasifikaci

Poznámka

Platí pro: Machine Learning Studio (classic)

Podobné moduly s přetahováním jsou k dispozici v Azure Machine Learning návrháři.

Přehled modulu

Tento článek popisuje, jak pomocí modulu Neurální síť s více třídami v nástroji Machine Learning Studio (classic) vytvořit model neurální sítě, který lze použít k předpovídání cíle, který má více hodnot.

Neurální sítě tohoto typu se například můžou používat ve složitých úlohách počítačového zpracování obrazu, jako je rozpoznávání číslic nebo písmen, klasifikace dokumentů a rozpoznávání vzorů.

Klasifikace pomocí neurálních sítí je metoda učení pod dohledem , a proto vyžaduje datovou sadu se značkou, která obsahuje sloupec popisků.

Model můžete vytrénovat tak, že model a datovou sadu se značkou poskytnete jako vstup pro trénování modelu nebo pro ladění hyperparametrů modelu. Vytrénovaný model pak můžete použít k předpovídání hodnot nových vstupních příkladů.

Další informace o neurálních sítích

Neurální síť je sada vzájemně propojených vrstev. Vstupy jsou první vrstvou a jsou připojeny k výstupní vrstvě pomocí acyklického grafu, který se skládá z vážených hran a uzlů.

Mezi vstupní a výstupní vrstvy můžete vložit více skrytých vrstev. Většinu prediktivních úloh lze snadno provádět pouze s jednou nebo několika skrytými vrstvami. Nedávný výzkum ale ukázal, že hluboké neurální sítě (DNN) s mnoha vrstvami mohou být velmi efektivní v komplexních úlohách, jako je rozpoznávání obrazu nebo řeči. Následující vrstvy se používají k modelování zvyšující se úrovně sémantické hloubky.

Vztah mezi vstupy a výstupy se učí z trénování neurální sítě na vstupních datech. Směr grafu pokračuje ze vstupů přes skrytou vrstvu a do výstupní vrstvy. Všechny uzly ve vrstvě jsou spojeny váženými hranami s uzly v další vrstvě.

Pokud chcete vypočítat výstup sítě pro konkrétní vstup, vypočítá se hodnota v každém uzlu ve skrytých vrstvách a ve výstupní vrstvě. Hodnota se nastaví výpočtem váženého součtu hodnot uzlů z předchozí vrstvy. Na tento vážený součet se pak použije aktivační funkce.

Konfigurace neurální sítě s více třídami

  1. Přidejte modul MultiClass Neural Network do experimentu v nástroji Studio (classic). Tento modul najdete v části Machine LearningInicializace vkategorii Klasifikace.

  2. Vytvoření režimu školitele: Pomocí této možnosti můžete určit, jak chcete model trénovat:

    • Jeden parametr: Tuto možnost vyberte, pokud už víte, jak chcete model nakonfigurovat.

    • Rozsah parametrů: Tuto možnost vyberte, pokud si nejste jistí nejlepšími parametry a chcete použít úklid parametrů. Pak zadáte rozsah hodnot a použijete modul Vyladit model hyperparametrů k iteraci kombinací a nalezení optimální konfigurace.

  3. Skrytá specifikace vrstvy: Vyberte typ síťové architektury, která se má vytvořit.

    • Plně připojený případ: Tuto možnost vyberte, pokud chcete vytvořit model s použitím výchozí architektury neurální sítě. U modelů neurální sítě s více třídami jsou výchozí hodnoty následující:

      • Jedna skrytá vrstva
      • Výstupní vrstva je plně připojená ke skryté vrstvě.
      • Skrytá vrstva je plně připojená ke vstupní vrstvě.
      • Počet uzlů ve vstupní vrstvě je určen počtem funkcí v trénovací data.
      • Počet uzlů ve skryté vrstvě může nastavit uživatel. Výchozí hodnota je 100.
      • Počet uzlů ve výstupní vrstvě závisí na počtu tříd.
    • Vlastní definiční skript. Tuto možnost vyberte, pokud chcete vytvořit vlastní architekturu neurální sítě pomocí jazyka Net#. Můžete definovat počet skrytých vrstev, jejich připojení a pokročilé možnosti, jako je určení mapování mezi vrstvami. Úvod do jazyka Net# najdete v části Další informace o net# dále v tomto tématu.

  4. Definice neurální sítě: Pokud jste vybrali možnost vlastní architektury, pomocí textového pole zadejte nebo vložte příkazy napsané v jazyce Net#. Další příklady skriptů najdete v průvodci jazykem NET# Neural Networks Specification Language.

  5. Počet skrytých uzlů: Tato možnost umožňuje přizpůsobit počet skrytých uzlů ve výchozí architektuře. Zadejte počet skrytých uzlů. Výchozí je jedna skrytá vrstva se 100 uzly.

  6. Rychlost učení: Definujte velikost kroku v každé iteraci před opravou. Větší hodnota rychlosti učení může způsobit rychlejší konvergování modelu, ale může řešit místní minima.

  7. Počet iterací učení: Určete maximální počet, kolikrát má algoritmus zpracovat trénovací případy.

  8. Průměr počátečních váze učení: Určete váhy uzlů na začátku procesu učení.

  9. Moment: Určete váhu, která se použije během učení na uzly z předchozích iterací.

  10. Typ normalizátoru: Vyberte metodu, která se má použít k normalizaci funkcí. Podporují se následující metody normalizace:

    • Normalizátor binningu: Normalizátor binningu vytvoří přihrádky stejné velikosti a pak normalizuje každou hodnotu v každé přihrádce vydělením celkovým počtem přihrádek.

    • Gaussova normalizační metoda: Gaussova normalizační metoda škáluje hodnoty jednotlivých vlastností na střední hodnotu 0 a odchylku 1. To se provádí výpočtem středních a rozdílových odchylek jednotlivých funkcí. Pro každou instanci se odečte střední hodnota a výsledek se vydělí odmocninou odchylky (směrodatná odchylka).

    • Normalizátor minimálního maxima: Normalizér minimálního maxima lineárně škáluje každou funkci na interval [0,1].

      Změna měřítka na interval [0,1] se provádí posunutím hodnot jednotlivých funkcí tak, aby minimální hodnota byla 0, a pak se vydělí novou maximální hodnotou (což je rozdíl mezi původními maximálními a minimálními hodnotami).

    • Ne normalizovat: Není provedena žádná normalizace.

  11. Příklady náhodného promíchání: Tuto možnost vyberte, pokud chcete promíchání případů mezi iteracemi.

    Pokud výběr této možnosti zrušíte, případy se při každém spuštění experimentu zpracují ve stejném pořadí.

  12. Náhodné číslo: Zadejte hodnotu, která se použije jako přediména, pokud chcete zajistit opakovatelnost napříč běhy stejného experimentu.

  13. Povolit neznámé úrovně kategorií: Tuto možnost vyberte, pokud chcete vytvořit seskupení pro neznámé hodnoty v trénovací a ověřovací skupině. Model může být u známých hodnot méně přesný, ale poskytuje lepší předpovědi pro nové (neznámé) hodnoty.

    Pokud výběr této možnosti zrušíte, může model přijímat pouze hodnoty obsažené v trénovací data.

  14. Připojení trénovací datovou sadu a jeden z trénovacích modulů:

    Poznámka

    Pokud předáte rozsah parametrů do trénového modelu, použije se pouze první hodnota v seznamu rozsahů parametrů.

    Pokud modulu Vyladění modelu hyperparametrů předáte jednu sadu hodnot parametrů, bude modul, který očekává rozsah nastavení pro každý parametr, ignorovat tyto hodnoty a použije výchozí hodnoty pro toho, kdo se učí.

    Pokud vyberete možnost Rozsah parametrů a zadáte jednu hodnotu pro libovolný parametr, použije se tato jedna hodnota, kterou jste zadali v průběhu úklidu, i když se jiné parametry v rozsahu hodnot změní.

Výsledky

Po dokončení trénování:

  • Pokud chcete zobrazit souhrn parametrů modelu spolu s váhami vlastností naučenými z trénování a dalšími parametry neurální sítě, klikněte pravým tlačítkem na výstup Trénování modelu nebo Vyladit hyperparametry modelu a vyberte Vizualizovat.

  • Pokud chcete uložit snímek natrénovaný model, klikněte pravým tlačítkem na výstup Natrénovaný model a vyberte Uložit jako natrénovaný model. Tento model není aktualizován při následných spuštěních stejného experimentu.

  • Pokud chcete provést křížové ověření u označené datové sady, připojte model bez trénování k modelu křížového ověření.

Příklady

Příklady použití tohoto algoritmu učení najdete v těchto ukázkových experimentech v Azure AI Gallery. Experimenty souvisejí a jsou popsány v jednom dokumentu, který postupuje od základních po pokročilé konfigurace:

Technické poznámky

Tato část obsahuje podrobnosti o implementaci, tipy a odpovědi na nejčastější dotazy.

Přizpůsobení neurální sítě pomocí skriptu

V Machine Learning Studio (classic) můžete přizpůsobit architekturu modelu neurální sítě pomocí jazyka Net#. Mezi přizpůsobení podporovaná jazykem Net# patří:

  • Určení počtu skrytých vrstev a počtu uzlů v každé vrstvě
  • Určení mapování mezi vrstvami
  • Definování konvolucí a sad sdílení hmotnosti
  • Výběr aktivační funkce

Model neurální sítě je definován strukturou svého grafu, který zahrnuje tyto atributy:

  • Počet skrytých vrstev
  • Počet uzlů v každé skryté vrstvě
  • Způsob propojení vrstev
  • Která aktivační funkce se používá
  • Váhy na hranách grafu

Důležité

Celkovou strukturu grafu a aktivační funkci může zadat uživatel. Váhy na hranách ale není možné zadat a při trénování neurální sítě na vstupních datech se musí naučit.

Obecně platí, že síť má tyto výchozí hodnoty:

  • První vrstvou je vždy vstupní vrstva.
  • Poslední vrstvou je vždy výstupní vrstva.
  • Počet uzlů ve výstupní vrstvě by měl být roven počtu tříd.

Můžete definovat libovolný počet mezivrstvy: někdy se nazývají skryté vrstvy, protože jsou obsaženy v modelu a nejsou přímo zpřístupněny jako koncové body.

Referenční příručka k Jazyku Net# vysvětluje syntaxi a poskytuje ukázkové definice sítí. Vysvětluje, jak můžete pomocí net# přidat skryté vrstvy a definovat způsob, jakým spolu různé vrstvy vzájemně komunikují.

Například následující skript používá auto klíčové slovo , které automaticky nastaví počet funkcí pro vstupní a výstupní vrstvy a použije výchozí hodnoty pro skrytou vrstvu.

input Data auto;  
hidden Hidden auto from Data all;  
output Result auto from Hidden all;   

Další příklady skriptů najdete v průvodci jazykem NET# Neural Networks Specification Language.

Tip

Neurální sítě mohou být výpočetně náročné, a to díky množství hyperparametrů a zavedení vlastních síťových topologií. I když neurální sítě v mnoha případech produkují lepší výsledky než jiné algoritmy, získání takových výsledků může zahrnovat spravedlivé zamyšlování (iterace) nad hyperparametry.

Parametry modulu

Name Rozsah Typ Výchozí Description
Specifikace skryté vrstvy Seznam Topologie neurální sítě Plně připojený případ Určení architektury skryté vrstvy nebo vrstev
Průměr počátečních váze učení >=double. Epsilon Float 0.1 Určení váze uzlů na začátku procesu učení
Rychlost učení [double. Epsilon, 1.0] Float 0.1 Určení velikosti jednotlivých kroků v procesu učení
Moment [0.0;1.0] Float 0,0 Určení váhy, která se použije během učení na uzly z předchozích iterací
Definice neurální sítě Všechny Streamreader Když vyberete Vlastní definiční skript, zadejte na každý řádek platný výraz skriptu, který definuje vrstvy, uzly a chování vlastní neurální sítě.
Typ normalizátoru Seznam Normalizační metoda Minimální maximální normalizátor Vyberte typ normalizace, který se použije u výukových příkladů.
Počet iterací učení >=1 Integer 100 Určení počtu iterací při učení
Příklady náhodného promíchání Všechny Logická hodnota Ano Tuto možnost vyberte, pokud chcete změnit pořadí instancí mezi iteracemi učení.
Přediména náhodného čísla Všechny Integer Zadejte číselné hodnoty, které se mají použít pro generování náhodných čísel. Pokud chcete použít výchozí hodnoty, ponechte prázdné.
Povolit neznámé úrovně kategorií Všechny Logická hodnota Ano Určete, jestli se má pro neznámé kategorie vytvořit další úroveň. Pokud testovací datová sada obsahuje kategorie, které nejsou v trénovací datové sadě, namapují se na tuto neznámou úroveň.

Výstup

Název Typ Description
Model bez trénování ILearner – rozhraní Model klasifikace bez trénování s více třídami

Viz také

Classification
Neurální síť se dvěma třídami
Regrese neurální sítě
Seznam modulů A až Z