Neural Network med flera klasser
Viktigt
Stödet för Machine Learning Studio (klassisk) upphör den 31 augusti 2024. Vi rekommenderar att du byter till Azure Machine Learning innan dess.
Från och med den 1 december 2021 kan du inte längre skapa nya Machine Learning Studio-resurser (klassisk). Du kan fortsätta att använda befintliga Machine Learning Studio-resurser (klassisk) till och med den 31 augusti 2024.
- Se information om hur du flyttar maskininlärningsprojekt från ML Studio (klassisk) till Azure Machine Learning.
- Läs mer om Azure Machine Learning.
Dokumentationen om ML Studio (klassisk) håller på att dras tillbaka och kanske inte uppdateras i framtiden.
Skapar en klassificeringsmodell med flera klasser med hjälp av en algoritm för neuralt nätverk
Kategori: Machine Learning/initiera modell/klassificering
Anteckning
Gäller endast för: Machine Learning Studio (klassisk)
Liknande dra och släpp-moduler är tillgängliga i Azure Machine Learning designer.
Modulöversikt
Den här artikeln beskriver hur du använder modulen Neural Network med flera klasser i Machine Learning Studio (klassisk) för att skapa en modell för neuralt nätverk som kan användas för att förutsäga ett mål som har flera värden.
Neurala nätverk av den här typen kan till exempel användas i komplexa uppgifter för datorseende, till exempel igenkänning av siffror eller bokstäver, dokumentklassificering och mönsterigenkänning.
Klassificering med neurala nätverk är en metod för övervakad inlärning och kräver därför en taggad datamängd som innehåller en etikettkolumn.
Du kan träna modellen genom att tillhandahålla modellen och den taggade datauppsättningen som indata för att träna modellen eller finjustera modellens hyperparametrar. Den tränade modellen kan sedan användas för att förutsäga värden för de nya indataexempel.
Mer om neurala nätverk
Ett neuralt nätverk är en uppsättning sammankopplade lager. Indata är det första skiktet och är anslutna till ett utdataskikt med ett acykliskt diagram bestående av viktade kanter och noder.
Mellan indata- och utdataskikten kan du infoga flera dolda lager. De flesta förutsägande uppgifter kan enkelt utföras med bara ett eller några få dolda lager. Den senaste forskningen har dock visat att djupa neurala nätverk (DNN) med många lager kan vara mycket effektiva i komplexa uppgifter som bild- eller taligenkänning. De efterföljande lagren används för att modellera ökande nivåer av semantiskt djup.
Relationen mellan indata och utdata lärs in från träning av det neurala nätverket på indata. Grafens riktning fortsätter från indata genom det dolda skiktet och till utdataskiktet. Alla noder i ett lager ansluts med de viktade kanterna till noderna i nästa lager.
För att beräkna nätverkets utdata för en viss indata beräknas ett värde på varje nod i de dolda lagren och i utdataskiktet. Värdet anges genom att den viktade summan av värdena för noderna beräknas från föregående lager. En aktiveringsfunktion tillämpas sedan på den viktade summan.
Så här konfigurerar du neurala nätverk med flera klasser
Lägg till modulen MultiClass Neural Network i experimentet i Studio (klassisk). Du hittar den här modulen under Machine Learning, Initiera, i kategorin Klassificering.
Skapa utbildarläge: Använd det här alternativet för att ange hur du vill att modellen ska tränas:
Enskild parameter: Välj det här alternativet om du redan vet hur du vill konfigurera modellen.
Parameterintervall: Välj det här alternativet om du inte är säker på de bästa parametrarna och vill använda en parametersökning. Sedan anger du ett värdeintervall och använder modulen Justera hyperparametrar för modell för att iterera över kombinationerna och hitta den optimala konfigurationen.
Specifikation för dolt lager: Välj vilken typ av nätverksarkitektur som ska skapas.
Fullständigt anslutet ärende: Välj det här alternativet om du vill skapa en modell med standardarkitekturen för neurala nätverk. För modeller med neurala nätverk med flera klasser är standardvärdena följande:
- Ett dolt lager
- Utdataskiktet är helt anslutet till det dolda skiktet.
- Det dolda lagret är helt anslutet till indataskiktet.
- Antalet noder i indatalagret bestäms av antalet funktioner i träningsdata.
- Antalet noder i det dolda lagret kan anges av användaren. Standardvärdet är 100.
- Antalet noder i utdataskiktet beror på antalet klasser.
Anpassat definitionsskript. Välj det här alternativet om du vill skapa en anpassad arkitektur för neurala nätverk med hjälp av Net#-språket. Du kan definiera antalet dolda lager, deras anslutningar och avancerade alternativ, till exempel att ange mappningar mellan lager. En introduktion till Net# finns i Mer om Net# senare i det här avsnittet.
Definition av neuralt nätverk: Om du valde alternativet för anpassad arkitektur använder du textrutan för att skriva eller klistra in instruktioner som skrivits på Net#-språket. Ytterligare skriptexempel finns i Guide to the Net# Neural Networks Specification Language (Guide till Net# Neural Networks Specification Language).
Antal dolda noder: Med det här alternativet kan du anpassa antalet dolda noder i standardarkitekturen. Ange antalet dolda noder. Standardvärdet är ett dolt lager med 100 noder.
Inlärningstakt: Definiera storleken på det steg som ska vidtas vid varje iteration, före korrigering. Ett större värde för inlärningstakt kan göra att modellen konvergerar snabbare, men den kan köra över lokalt minima.
Antal inlärnings iterationer: Ange det maximala antalet gånger som algoritmen ska bearbeta träningsfallen.
Den inledande inlärningens vikter: Ange nodvikterna i början av inlärningsprocessen.
The så här: Ange en vikt som ska användas under inlärningen av noder från tidigare iterationer.
Typ av normaliserare: Välj den metod som ska användas för funktions normalisering. Följande normaliseringsmetoder stöds:
Binerings normaliserare: Binerings normaliseraren skapar lagerplatser med samma storlek och normaliserar sedan varje värde på varje lagerplats genom att dividera med det totala antalet lagerplatser.
Gaussisk normaliserare: Den gaussiska normaliseraren skalar om värdena för varje funktion så att den har medelvärdet 0 och varians 1. Detta görs genom att beräkna medelvärdet och variansen för varje funktion. För varje instans subtraheras medelvärdet och resultatet divideras med kvadratroten av variansen (standardavvikelsen).
Min-max normalizer: Min-max normalizer omskalar linjärt varje funktion till intervallet [0,1].
Omskalning till intervallet [0,1] görs genom att flytta värdena för varje funktion så att det minimala värdet är 0 och sedan dividera med det nya maxvärdet (vilket är skillnaden mellan det ursprungliga högsta och det minsta värdet).
Normalisera inte: Ingen normalisering utförs.
Blanda exempel: Välj det här alternativet om du vill blanda ärenden mellan iterationer.
Om du avmarkerar det här alternativet bearbetas ärenden i exakt samma ordning varje gång du kör experimentet.
Startvärde för slumptal: Ange ett värde som ska användas som startvärde om du vill säkerställa repeterbarhet mellan körningar av samma experiment.
Tillåt okända kategoriska nivåer: Välj det här alternativet om du vill skapa en gruppering för okända värden i tränings- och valideringsuppsättningarna. Modellen kan vara mindre exakt för kända värden, men ger bättre förutsägelser för nya (okända) värden.
Om du avmarkerar det här alternativet kan modellen bara acceptera de värden som finns i träningsdata.
Anslut en datamängd för träning och en av utbildningsmodulerna:
Om du ställer in Skapa utbildarläge på Enkel parameter använder du Träna modell.
Om du ställer in Läget Skapa utbildarepå Parameterintervall använder du Hyperparametrar för justera modell.
Anteckning
Om du skickar ett parameterintervall till Train Model (Träna modell) används bara det första värdet i listan med parameterintervall.
Om du skickar en enda uppsättning parametervärden till modulen Hyperparameters för tune model ignoreras värdena och standardvärdena för learner används när ett antal inställningar för varje parameter förväntas.
Om du väljer alternativet Parameterintervall och anger ett enda värde för en parameter används det enskilda värde som du angav under hela omfånget, även om andra parametrar ändras över ett värdeintervall.
Resultat
När träningen är klar:
Om du vill se en sammanfattning av modellens parametrar, tillsammans med de funktionsvikter som lärts in från träningen och andra parametrar i det neurala nätverket, högerklickar du på utdata från Träningsmodell eller Finjustera hyperparametrar för modell och väljer Visualisera.
Om du vill spara en ögonblicksbild av den tränade modellen högerklickar du på utdata för den tränade modellen och väljer Spara som tränad modell. Den här modellen uppdateras inte på efterföljande körningar av samma experiment.
Om du vill utföra korsvalidering mot en etiketterad datauppsättning ansluter du den tränade modellen till korsvalideringsmodellen.
Exempel
Exempel på hur den här inlärningsalgoritmen används finns i dessa exempelexperiment i Azure AI Gallery. Experimenten är relaterade och beskrivs i ett enda dokument som går från grundläggande till avancerade konfigurationer:
- Exempel på djupa neurala nätverk (del A)
- Exempel på djupa neurala nätverk (del B)
- Exempel på djupa neurala nätverk (del C)
- Exempel på djupa neurala nätverk (del D)
Teknisk information
Det här avsnittet innehåller implementeringsinformation, tips och svar på vanliga frågor.
Anpassa det neurala nätverket med hjälp av skript
I Machine Learning Studio (klassisk) kan du anpassa arkitekturen för en modell för neuralt nätverk med hjälp av net#-språket. Anpassningar som stöds av Net#-språket är:
- Ange antalet dolda lager och antalet noder i varje lager
- Ange mappningar mellan lager
- Definiera konvolutioner och viktdelningspaket
- Välja aktiveringsfunktion
En modell för neuralt nätverk definieras av strukturen i diagrammet, som innehåller följande attribut:
- Antalet dolda lager
- Antalet noder i varje dolt lager
- Hur lagren är anslutna
- Vilken aktiveringsfunktion används
- Vikter på grafens kanter
Viktigt
Grafens övergripande struktur, samt aktiveringsfunktionen, kan anges av användaren. Vikterna på kanterna kan dock inte anges och måste läras in när du tränar det neurala nätverket på indata.
I allmänhet har nätverket följande standardinställningar:
- Det första lagret är alltid indataskiktet.
- Det sista lagret är alltid utdataskiktet.
- Antalet noder i utdatalagret ska vara lika med antalet klasser.
Du kan definiera ett antal mellanliggande lager: dessa kallas ibland dolda lager, eftersom de finns i modellen och de inte exponeras direkt som slutpunkter.
Referensguiden för Net# förklarar syntaxen och innehåller exempel på nätverksdefinitioner. Den förklarar hur du kan använda Net# för att lägga till dolda lager och definiera hur de olika lagren interagerar med varandra.
Följande skript använder till exempel auto
nyckelordet , som anger antalet funktioner automatiskt för indata- och utdatalager och använder standardvärdena för det dolda skiktet.
input Data auto;
hidden Hidden auto from Data all;
output Result auto from Hidden all;
Fler skriptexempel finns i Guide to the Net# Neural Networks Specification Language (Guide till Net# Neural Networks Specification Language).
Tips
Neurala nätverk kan vara beräkningsmässigt dyra på grund av ett antal hyperparametrar och införandet av anpassade nätverks topologier. Även om neurala nätverk i många fall ger bättre resultat än andra algoritmer kan det innebära en hel del avsökning (iterationer) över hyperparametrar att få sådana resultat.
Modulparametrar
Name | Intervall | Typ | Standardvärde | Description |
---|---|---|---|---|
Specifikation för dolt lager | Lista | Topologi för neuralt nätverk | Fullständigt anslutet ärende | Ange arkitekturen för det dolda skiktet eller lagren |
Den inledande inlärningens vikter | >=double. Epsilon | Float | 0.1 | Ange nodvikterna i början av inlärningsprocessen |
Inlärningstakten | [double. Epsilon;1.0] | Float | 0.1 | Ange storleken på varje steg i inlärningsprocessen |
The 10 | [0.0;1.0] | Float | 0.0 | Ange en vikt som ska tillämpas under inlärningen till noder från tidigare iterationer |
Definition av neuralt nätverk | Valfri | StreamReader | När du väljer Anpassat definitionsskript skriver du ett giltigt skriptuttryck på varje rad för att definiera lager, noder och beteende för ett anpassat neuralt nätverk | |
Typ av normaliserare | Lista | Normaliseringsmetod | Minsta tillåtna normaliserare | Välj vilken typ av normalisering som ska tillämpas på inlärningsexempel |
Antal iterationer för inlärning | >=1 | Integer | 100 | Ange antalet iterationer under inlärningen |
Shuffle-exempel | Valfri | Boolesk | Sant | Välj det här alternativet om du vill ändra ordningen på instanserna mellan inlärnings iterationer |
Slumptals seed | Valfri | Integer | Ange ett numeriskt startvärdet som ska användas för generering av slumptal. Lämna tomt om du vill använda standardvärdet för seed. | |
Tillåt okända kategoriska nivåer | Valfri | Boolesk | Sant | Ange om ytterligare en nivå ska skapas för okända kategorier. Om testdatamängden innehåller kategorier som inte finns i träningsdatamängden mappas de till den här okända nivån. |
Utdata
Namn | Typ | Description |
---|---|---|
Ej tränad modell | ILearner-gränssnitt | En otränad klassificeringsmodell med flera klasser |
Se även
Klassificering
Neural Network med två klasser
Regression för Neural Network
A-Z-modullista