Sdílet prostřednictvím


Regrese neurální sítě

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ří regresní model pomocí neuronové síťového algoritmu.

kategorie: Machine Learning/inicializovat Model/regrese

Poznámka

platí pro: jenom Machine Learning Studio (classic)

podobné moduly přetažení jsou k dispozici v návrháři Azure Machine Learning.

Přehled modulu

tento článek popisuje, jak pomocí modulu neuronové network regrese v Machine Learning studiu (classic) vytvořit regresní model pomocí přizpůsobitelného síťového algoritmu neuronové.

I když se neuronové sítě často označují pro použití v obsáhlém učení a modelování složitých problémů, jako je rozpoznávání obrázků, jsou snadno přizpůsobené regresním problémům. Každá třída statistických modelů může být označována jako neuronovéá síť, pokud používá adaptivní hmotnosti a může přibližné nelineární funkce jejich vstupů. Proto je regrese sítě neuronové vhodná pro problémy, které nemůžou přizpůsobit model s větším tradičním regresí.

Regrese sítě neuronové je metoda učení pod dohledem a proto vyžaduje tagované datové sady, která obsahuje sloupec popisku. Vzhledem k tomu, že regresní model předpovídá číselnou hodnotu, sloupec popisku musí být číselný datový typ.

Model můžete proškolit poskytnutím modelu a tagované datové sady jako vstupu pro vlakový model nebo ladění parametrů modelu. K předpovědi hodnot pro nové příklady vstupu je pak možné použít trained model.

Jak nakonfigurovat regresi sítě neuronové

Neuronové sítě je možné výrazně přizpůsobit. Tato část popisuje, jak vytvořit model pomocí dvou metod:

  • Vytvoření modelu sítě neuronové pomocí výchozí architektury

    Pokud přijmete výchozí neuronové architekturu sítě, použijte podokno vlastnosti k nastavení parametrů, které řídí chování sítě neuronové, jako je třeba počet uzlů ve skryté vrstvě, rychlost učení a normalizace.

    Začněte zde, pokud s neuronovéými sítěmi začínáte. Tento modul podporuje mnoho úprav a také optimalizaci modelu bez důkladné znalosti neuronové sítí.

  • Definování vlastní architektury pro neuronové síť

    Tuto možnost použijte, pokud chcete přidat další skryté vrstvy nebo plně přizpůsobit síťové architektury, její připojení a funkce aktivace.

    Tato možnost je nejlepší, pokud už se neuronové sítě už trochu obeznámené. K definování síťové architektury použijte jazyk NET # .

Vytvoření modelu sítě neuronové pomocí výchozí architektury

  1. Přidejte modul regrese sítě neuronové do experimentu v studiu (Classic). tento modul najdete v části Machine Learning, Initialize, v kategorii regrese .

  2. Určete, jak chcete, aby byl model vyškolený, nastavením možnosti vytvořit Trainer režim .

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

    • Rozsah parametrů: tuto možnost vyberte, pokud si nejste jisti nejlepšími parametry. Pak zadejte rozsah hodnot a použijte modul ladění modelu ladění pro iteraci kombinací a najděte optimální konfiguraci.

  3. V případě specifikace skryté vrstvyvyberte možnost plně připojené. Tato možnost vytvoří model pomocí výchozí síťové architektury neuronové, která je pro model regrese sítě neuronové, má tyto atributy:

    • Síť obsahuje přesně jednu skrytou vrstvu.
    • Výstupní vrstva je plně připojená ke skryté vrstvě a skrytá vrstva je plně připojená ke vstupní vrstvě.
    • Počet uzlů ve skryté vrstvě může nastavit uživatel (výchozí hodnota je 100).

    Vzhledem k tomu, že počet uzlů ve vstupní vrstvě je určen počtem funkcí v školicích datech, v regresním modelu může být ve výstupní vrstvě pouze jeden uzel.

  4. Pro Počet skrytých uzlůzadejte počet skrytých uzlů. Výchozím nastavením je jedna skrytá vrstva s 100 uzly. (Tato možnost není k dispozici, pokud definujete vlastní architekturu pomocí .NET #.)

  5. pro Učení rychlostzadejte hodnotu, která definuje krok prováděný v každé iteraci před opravou. Větší hodnota pro studijní kurzy může způsobit, že se model konverguje rychleji, ale může vyhodnotit místní minima.

  6. Pro počet iterací učeníurčete maximální počet pokusů, kolikrát algoritmus zpracovává školicí případy.

  7. Pro průměr počátečních vah pro studium zadejte hodnotu, která určuje tloušťku uzlů na začátku procesu učení.

  8. Pro potenciálzadejte hodnotu, která se má použít během učení, jako váha na uzlech z předchozích iterací.

  9. Pro typ normalizacevyberte jednu z následujících metod, která se má použít pro normalizaci funkcí:

    • Binningu Normalizer: binningu vytvoří skupiny se stejnou velikostí a pak normalizuje každou hodnotu v každé skupině, která se rozdělí podle celkového počtu skupin.

    • Gaussovské normalizace: Gaussovské normalizace přemění hodnoty každé funkce na střední hodnotu 0 a odchylku 1. To se provádí výpočetem střední hodnoty a odchylky jednotlivých funkcí a pak pro každou instanci odečtením střední hodnoty a vydělením čtvercovým odmocninou odchylky (směrodatnou odchylkou).

    • Min-max Normalize: hodnota min-max se lineárně mění podle intervalu [0, 1].

      Změna měřítka intervalu [0, 1] se provádí posunutím hodnot každé funkce tak, aby minimální hodnota byla 0 a pak se vydělí novou maximální hodnotou (což je rozdíl mezi původní maximální a minimální hodnotou).

    • Nenormalizovat: není provedena žádná normalizace.

  10. Pokud chcete změnit pořadí případů mezi iteracemi, vyberte možnost, která bude náhodně vymezit Příklady. Pokud zrušíte výběr této možnosti, jsou případy zpracovávány přesně stejným způsobem pokaždé, když spustíte experiment.

  11. V případě použití náhodného číslamůžete volitelně zadat hodnotu, která se má použít jako počáteční hodnota. Zadání počáteční hodnoty je užitečné, pokud chcete zajistit opakovatelnost v rámci jednoho spuštění stejného experimentu.

  12. Vyberte možnost povolující neznámé úrovně kategorií pro vytvoření seskupení pro neznámé hodnoty. Model může být méně přesný u známých hodnot, ale poskytuje lepší předpovědi pro nové (neznámé) hodnoty.

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

  13. Připojení datset školení a jeden ze školicích modulů:

    • Pokud nastavíte režim vytvořit Trainer na jeden parametr, použijete model výuky.

    • Pokud nastavíte režim vytvořit Trainer na rozsah parametrů, použijte parametry modelu ladění.

    Upozornění

    Pokud předáte rozsah parametru pro vlakový model, použije se pouze první hodnota v seznamu rozsah parametrů.

    Pokud předáte jednu sadu hodnot parametrů do modulu předparametrů modelu ladění , když očekává rozsah nastavení pro každý parametr, ignoruje hodnoty a použije výchozí hodnoty pro učit se.

    Pokud vyberete možnost rozsahu parametrů a zadáte jednu hodnotu pro libovolný parametr, tato jediná hodnota, kterou jste zadali, se použije v celém oblouku, a to i v případě, že se jiné parametry mění v rozsahu hodnot.

  14. Spusťte experiment.

Definování vlastní architektury

  1. Přidejte do experimentu modul regrese sítě neuronové .

  2. Určete, jak chcete, aby byl model vyškolený, nastavením možnosti vytvořit Trainer režim .

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

    • Rozsah parametrů: tuto možnost vyberte, pokud si nejste jisti nejlepšími parametry. Pak zadejte rozsah hodnot a použijte modul ladění modelu ladění pro iteraci kombinací a najděte optimální konfiguraci.

  3. V případě specifikace skryté vrstvyvyberte vlastní skript definice. Tuto možnost musíte vybrat, pokud chcete definovat vlastní neuronové síťovou architekturu pomocí jazyka net # .

  4. Po vybrání možnosti skriptu vlastní definice se zobrazí textové pole definice sítě neuronové . Vložením do skriptu NET # můžete definovat vlastní architekturu pro neuronové síť, včetně počtu skrytých vrstev, jejich připojení a pokročilých možností, jako je určení mapování mezi vrstvami.

  5. pro Učení rychlostzadejte hodnotu, která definuje krok prováděný v každé iteraci před opravou. Větší hodnota pro studijní kurzy může způsobit, že se model konverguje rychleji, ale může vyhodnotit místní minima.

  6. Pro počet iterací učeníurčete maximální počet pokusů, kolikrát algoritmus zpracovává školicí případy.

  7. Pro průměr počátečních vah pro studium zadejte hodnotu, která určuje tloušťku uzlů na začátku procesu učení.

  8. Pro potenciálzadejte hodnotu, která se má použít během učení, jako váha na uzlech z předchozích iterací.

  9. Pro typ normalizacevyberte jednu z následujících metod, která se má použít pro normalizaci funkcí:

    • Binningu Normalizer: binningu vytvoří skupiny se stejnou velikostí a pak normalizuje každou hodnotu v každé skupině vydělením celkovým počtem skupin.

    • Gaussovské normalizace: Gaussovské normalizace přemění hodnoty každé funkce na střední hodnotu 0 a odchylku 1. To se provádí výpočetem střední hodnoty a odchylky jednotlivých funkcí a pak pro každou instanci odečtením střední hodnoty a vydělením čtvercovým odmocninou odchylky (směrodatnou odchylkou).

    • Min-max: funkce min-max se lineárně mění škáluje každou funkci na interval [0, 1].

      Změna měřítka intervalu [0, 1] se provádí posunutím hodnot každé funkce tak, aby minimální hodnota byla 0 a pak se vydělí novou maximální hodnotou (což je rozdíl mezi původní maximální a minimální hodnotou).

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

  10. Pokud chcete změnit pořadí případů mezi iteracemi, vyberte možnost Příklady náhodného promíchání. 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í.

  11. V poli Přediména náhodného čísla můžete volitelně zadat hodnotu, která se použije jako přediména. Zadání hodnoty seed je užitečné, pokud chcete zajistit opakovatelnost napříč běhy stejného experimentu.

  12. Vyberte možnost Povolit neznámé úrovně kategorií a vytvořte seskupení pro neznámé hodnoty. Všechny neznámé hodnoty v testovací sadě dat se mapují na tuto neznámou kategorii. Použitím této možnosti může být model mírně méně přesný u známých hodnot, ale může poskytovat lepší předpovědi pro nové (neznámé) hodnoty.

    Pokud výběr této možnosti zrušíte, model může provádět predikce pouze pro hodnoty obsažené v trénovací data.

  13. Připojení trénovací sadu dat a jeden z školicích modulů:

    Upozornění

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

    Pokud modulu Tune Model Hyperparameters předáte jednu sadu hodnot parametrů, bude modul při očekávání rozsahu nastavení pro jednotlivé parametry ignorovat tyto hodnoty a použije výchozí hodnoty pro uživatele, který se učí.

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

  14. Spusťte experiment.

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 v experimentech najdete v těchto ukázkách v Azure AI Gallery:

Tyto experimenty poskytují další pomoc v jazyce Net#. Experimenty souvisejí a postupují 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.

Další informace o net #

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 mezilehlých vrstev (někdy se jim říká 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, 0,01] Float 0.005 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 Min-Max normalizátor Vyberte typ normalizace, který se použije u výukových příkladů.
Počet skrytých uzlů Všechny Řetězec 100 Zadejte počet uzlů ve skryté vrstvě. Pro více skrytých vrstev zadejte seznam oddělený čárkami.
Počet iterací učení >= 1 Integer 100 Zadejte počet iterací při učení.
Náhodné příklady Všechny Logická hodnota true Tuto možnost vyberte, pokud chcete změnit pořadí instancí mezi iteracemi učení.
Počáteční počáteční číslo Všechny Integer Zadejte číselné osazení, které se má použít pro generování náhodných čísel. Ponechte prázdné, pokud chcete použít výchozí počáteční hodnotu.

Tento parametr je nepovinný.
Povolení neznámých úrovní kategorií Všechny Logická hodnota true Určuje, zda má být pro neznámé kategorie vytvořená další úroveň. Pokud testovací datová sada obsahuje kategorie, které nejsou přítomny v datové sadě školení, jsou namapovány na tuto neznámou úroveň.

Výstupy

Název Typ Description
Nevlakový model Rozhraní ILearner Nevýukový model regrese

Viz také

Regrese
Seznam modulů a-Z