Neuraal netwerk met meerdere klassen

Hiermee wordt een classificatie model voor multi klassen gemaakt met behulp van een Neural-netwerk algoritme

Categorie: model/classificatie machine learning/initialiseren

Notitie

Van toepassing op : machine learning Studio (klassiek)

Deze inhoud is alleen van toepassing op Studio (klassiek). Er zijn Vergelijk bare modules voor slepen en neerzetten toegevoegd aan Azure Machine Learning Designer. In dit artikel vindt u meer informatie over de twee versies.

Module overzicht

In dit artikel wordt beschreven hoe u de netwerk module Multi Class Neural in azure machine learning Studio (klassiek) gebruikt om een Neural-netwerk model te maken dat kan worden gebruikt om een doel te voors pellen met meerdere waarden.

Neural-netwerken van dit type kunnen bijvoorbeeld worden gebruikt in complexe computer vision-taken, zoals cijfer herkenning, document classificatie en patroon herkenning.

Classificatie met behulp van Neural-netwerken is een bewaakte leer methode en vereist daarom een gecodeerde gegevensset die een kolom Label bevat.

U kunt het model trainen door het model en de gecodeerde gegevensset op te geven als invoer voor het trainen van modellen of het afstemmen van model Hyper parameters. Het getrainde model kan vervolgens worden gebruikt om waarden te voors pellen voor de nieuwe invoer voorbeelden.

Meer informatie over Neural-netwerken

Een Neural-netwerk bestaat uit een reeks onderling verbonden lagen. De invoer is de eerste laag en is verbonden met een uitvoer laag door een acyclische grafiek die bestaat uit gewogen randen en knoop punten.

Tussen de invoer-en uitvoer lagen kunt u meerdere verborgen lagen invoegen. De meeste voorspellende taken kunnen eenvoudig met slechts één of enkele verborgen lagen worden uitgevoerd. Het recente onderzoek heeft echter geleerd dat diepe Neural Networks (DNN) met veel lagen zeer effectief kunnen zijn in complexe taken, zoals afbeeldings-of spraak herkenning. De opeenvolgende lagen worden gebruikt voor het model leren van de toenemende niveaus van semantische diepte.

De relatie tussen invoer en uitvoer wordt geleerd van het trainen van het Neural-netwerk op de invoer gegevens. De richting van de grafiek loopt van de invoer via de verborgen laag en naar de uitvoer laag. Alle knoop punten in een laag worden verbonden door de gewogen randen op knoop punten in de volgende laag.

Voor het berekenen van de uitvoer van het netwerk voor een bepaalde invoer wordt een waarde berekend op elk knoop punt in de verborgen lagen en in de uitvoer laag. De waarde wordt ingesteld door de gewogen som van de waarden van de knoop punten uit de vorige laag te berekenen. Een activerings functie wordt vervolgens toegepast op die gewogen som.

Multi Class Neural-netwerk configureren

  1. Voeg de netwerk module Multi Class Neural toe aan uw experiment in Studio (klassiek). U kunt deze module vinden onder machine learning, initialiseren, in de categorie classificatie .

  2. De trainer modus maken: gebruik deze optie om op te geven hoe u wilt dat het model wordt getraind:

    • Eén para meter: Kies deze optie als u al weet hoe u het model wilt configureren.

    • Parameter bereik: Kies deze optie als u niet zeker weet wat de beste para meters zijn en u een parameter sweep wilt gebruiken. Vervolgens geeft u een waardebereik op en gebruikt u de module Tune model Hyper parameters om de combi Naties te herhalen en de optimale configuratie te vinden.

  3. Specificatie van verborgen laag: Selecteer het type netwerk architectuur dat u wilt maken.

    • Volledig gekoppelde Case: Selecteer deze optie om een model te maken met behulp van de standaard Neural-netwerk architectuur. Voor multi class Neural-netwerk modellen zijn de standaard instellingen als volgt:

      • Eén verborgen laag
      • De uitvoer laag is volledig verbonden met de verborgen laag.
      • De verborgen laag is volledig verbonden met de invoer laag.
      • Het aantal knoop punten in de invoer laag wordt bepaald door het aantal functies in de trainings gegevens.
      • Het aantal knoop punten in de verborgen laag kan worden ingesteld door de gebruiker. De standaardwaarde is 100.
      • Het aantal knoop punten in de uitvoer laag is afhankelijk van het aantal klassen.
    • Aangepast definitie script. Selecteer deze optie om een aangepaste Neural-netwerk architectuur te maken met behulp van de net #-taal. U kunt het aantal verborgen lagen, hun verbindingen en geavanceerde opties definiëren, zoals het opgeven van de toewijzingen tussen lagen. Zie voor een inleiding tot net # meer informatie over net # verderop in dit onderwerp.

  4. Neural-netwerk definitie: als u de optie aangepaste architectuur hebt geselecteerd, gebruikt u het tekstvak voor het typen of plakken in instructies die in de taal net # zijn geschreven. Zie voor aanvullende script voorbeelden de richt lijnen voor de specificatie taal net # Neural Networks.

  5. Aantal verborgen knoop punten: met deze optie kunt u het aantal verborgen knoop punten in de standaard architectuur aanpassen. Typ het aantal verborgen knoop punten. De standaard waarde is één verborgen laag met 100 knoop punten.

  6. Het leer tempo: Definieer de grootte van de stap die bij elke herhaling moet worden uitgevoerd, vóór correctie. Een hogere waarde voor het leer tempo kan ertoe leiden dat het model sneller wordt geconvergeerd, maar dat het lokale minima kan overschrijden.

  7. Aantal leer herhalingen: Geef het maximum aantal keren op dat de trainings cases moeten worden verwerkt door de algoritme.

  8. De eerste leer gewicht diameter: Geef de knooppunt gewichten aan het begin van het leer proces op.

  9. De impuls: Geef een gewicht op dat moet worden toegepast tijdens het leren naar knoop punten uit eerdere iteraties.

  10. Het type normalisatie: Selecteer de methode die moet worden gebruikt voor functie normalisatie. De volgende normalisatie methoden worden ondersteund:

    • Binning normalisatie: de binning normalisatie maakt opslag locaties met een gelijke grootte en vervolgens wordt elke waarde in elke bin genormaliseerd door te delen door het totale aantal opslag locaties.

    • Gaussiaans normalisatie: de waarden van elke functie worden door de Gaussiaans normalisatieer geschaald op 0 en variantie 1. Dit wordt gedaan door het gemiddelde en de variantie van elke functie te berekenen. Voor elke instantie wordt de gemiddelde waarde afgetrokken en het resultaat gedeeld door de vierkantswortel van de variantie (de standaard afwijking).

    • Min-max. normalisatie: met de min-maximum normalisatie wordt elke functie lineair geschaald naar het interval van [0, 1].

      U kunt het interval voor [0, 1] opnieuw schalen door de waarden van elke functie te verschuiven zodat de minimale waarde 0 is en vervolgens te delen door de nieuwe maximale waarde (dit is het verschil tussen de oorspronkelijke maximum-en minimum waarden).

    • Niet normaliseren: er wordt geen normalisatie uitgevoerd.

  11. Voor beelden in wille keurige volg orde: Selecteer deze optie om cases in wille keurige volg orde te plaatsen

    Als u deze optie uitschakelt, worden cases in precies dezelfde volg orde verwerkt telkens wanneer u het experiment uitvoert.

  12. Wille keurig getal Seed: Typ een waarde die als seed moet worden gebruikt als u de Herhaal baarheid van hetzelfde experiment wilt garanderen.

  13. Onbekende categorische-niveaus toestaan: Selecteer deze optie om een groepering te maken voor onbekende waarden in de trainings-en validatie sets. Het model is mogelijk minder nauw keurig voor bekende waarden, maar biedt betere voor spellingen voor nieuwe (onbekende) waarden.

    Als u deze optie uitschakelt, kan het model alleen de waarden accepteren die deel uitmaken van de trainings gegevens.

  14. Verbind een trainings gegevensset en een van de trainings modules:

    Notitie

    Als u een parameter bereik doorgeeft aan een Train-model, wordt alleen de eerste waarde in de lijst met para meters gebruikt.

    Als u één set parameter waarden doorgeeft aan de Hyper parameters-module voor het Tune-model , worden de waarden genegeerd en worden de standaard waarden gebruikt voor de cursist als er een reeks instellingen voor elke para meter wordt verwacht.

    Als u de optie voor het parameter bereik selecteert en één waarde voor een para meter opgeeft, wordt die enkele waarde die u hebt opgegeven overal in de sweep gebruikt, zelfs als andere para meters worden gewijzigd in een reeks waarden.

Resultaten

Nadat de training is voltooid:

  • Als u een samen vatting van de para meters van het model wilt weer geven, samen met de functie gewichten die zijn geleerd uit training en andere para meters van het Neural-netwerk, klikt u met de rechter muisknop op de uitvoer van Train model of op model Hyper parametersen selecteert u visualiseren.

  • Als u een moment opname van het getrainde model wilt opslaan, klikt u met de rechter muisknop op de getrainde model uitvoer en selecteert u Opslaan als opgeleid model. Dit model wordt niet bijgewerkt op opeenvolgende uitvoeringen van hetzelfde experiment.

  • Als u kruis validatie wilt uitvoeren op een gegevensgestuurde gegevensset, verbindt u het niet-trainde model om het model te valideren.

Voorbeelden

Voor voor beelden van hoe dit leer algoritme wordt gebruikt, raadpleegt u deze voorbeeld experimenten in de Azure AI Gallery. De experimenten zijn gerelateerd en worden beschreven in één document dat wordt uitgevoerd op basis van geavanceerde configuraties:

Technische opmerkingen

Deze sectie bevat implementatie details, tips en antwoorden op veelgestelde vragen.

Het Neural-netwerk aanpassen met behulp van script

In Azure Machine Learning Studio (klassiek) kunt u de architectuur van een Neural-netwerk model aanpassen met behulp van de net #-taal. Aanpassingen die worden ondersteund door de taal net # zijn onder andere:

  • Het aantal verborgen lagen en het aantal knoop punten in elke laag opgeven
  • Toewijzingen tussen lagen opgeven
  • Convoluties en delen van gewichten bepalen
  • De activerings functie kiezen

Een Neural-netwerk model wordt gedefinieerd door de structuur van de grafiek, met de volgende kenmerken:

  • Het aantal verborgen lagen
  • Het aantal knoop punten in elke verborgen laag
  • Hoe de lagen zijn verbonden
  • Welke activerings functie wordt gebruikt
  • Het gewicht van de grafiek randen

Belangrijk

De algemene structuur van de grafiek, evenals de activerings functie, kan door de gebruiker worden opgegeven. De gewichten op de randen kunnen echter niet worden opgegeven en moeten worden geleerd bij het trainen van het Neural-netwerk op de invoer gegevens.

In het algemeen heeft het netwerk de volgende standaard instellingen:

  • De eerste laag is altijd de invoer laag.
  • De laatste laag is altijd de uitvoer laag.
  • Het aantal knoop punten in de uitvoer laag moet gelijk zijn aan het aantal klassen.

U kunt een wille keurig aantal tussenliggende lagen definiëren: deze worden ook wel verborgen lagen genoemd, omdat ze zich in het model bevinden en ze niet rechtstreeks als eind punten worden weer gegeven.

In de hand leiding voor # # vindt u de syntaxis en voor beelden van netwerk definities. Hierin wordt uitgelegd hoe u net # kunt gebruiken om verborgen lagen toe te voegen en te definiëren hoe de verschillende lagen met elkaar communiceren.

Het volgende script maakt bijvoorbeeld gebruik van het auto sleutel woord, waarmee het aantal functies voor invoer-en uitvoer lagen automatisch wordt ingesteld en de standaard waarden voor de verborgen laag worden gebruikt.

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

Zie voor aanvullende script voorbeelden de richt lijnen voor de specificatie taal net # Neural Networks.

Tip

Neural-netwerken kunnen worden geduurd als gevolg van een aantal Hyper parameters en het introduceren van aangepaste netwerktopologieën. Hoewel in veel gevallen Neural-netwerken betere resultaten produceren dan andere algoritmen, kan het ophalen van dergelijke resultaten leiden tot een billijke hoeveelheid sweep (iteraties) over Hyper parameters.

Module parameters

Naam Bereik Type Standaard Beschrijving
Specificatie van verborgen laag Lijst Neural-netwerk topologie Volledig gekoppelde Case De architectuur van de verborgen laag of lagen opgeven
De aanvankelijke leer gewicht diameter >= double. Letter Drijvendekommagetal 0,1 De knooppunt gewichten aan het begin van het leer proces opgeven
Het leer tempo Dubbelklik. Epsilon; 1.0] Drijvendekommagetal 0,1 De grootte van elke stap in het leer proces opgeven
De momentum [0,0; 1.0] Drijvendekommagetal 0,0 Een gewicht opgeven dat moet worden toegepast tijdens het leren naar knoop punten uit eerdere iteraties
Neural-netwerk definitie Alle StreamReader niet Wanneer u een aangepast definitie scriptselecteert, typt u een geldige script expressie op elke regel om de lagen, knoop punten en het gedrag van een aangepast Neural-netwerk te definiëren.
Het type normalisatie- Lijst Normalisatie methode Minimale-maximale normalisatie Selecteer het type normalisatie dat moet worden toegepast op Learning-voor beelden
Aantal leer herhalingen >= 1 Geheel getal 100 Het aantal iteraties opgeven tijdens het leren
Voor beelden van elke wille keurige Alle Boolean-waarde True Selecteer deze optie om de volg orde van de instanties te wijzigen tussen Learning-iteraties
Wille keurig getal zaad Alle Geheel getal Geef een numerieke Seed op die moet worden gebruikt voor het genereren van wille keurige getallen. Laat dit veld leeg als u de standaard Seed wilt gebruiken.
Onbekende categorische-niveaus toestaan Alle Boolean-waarde True Geef aan of er een extra niveau moet worden gemaakt voor onbekende categorieën. Als de test gegevensset categorieën bevat die niet aanwezig zijn in de trainings gegevensset, worden deze toegewezen aan dit onbekende niveau.

Uitvoer

Naam Type Beschrijving
Niet-traind model ILearner-interface Een niet-traind classificatie model voor multi klassen

Zie ook

Ontbreekt
Neural-netwerk met twee klassen
Regressie van Neural-netwerk
Module lijst a-Z