Vad är automatiserad maskininlärning (AutoML)?
Automatiserad maskininlärning, som även kallas automatiserad ML eller AutoML, är processen att automatisera de tidskrävande, iterativa uppgifterna vid utveckling av maskininlärningsmodeller. Det gör att dataforskare, analytiker och utvecklare kan skapa ML modeller med hög skalning, effektivitet och produktivitet samtidigt som modellens kvalitet upprätthålls. Automatiserad ML i Azure Machine Learning bygger på ett banbrytande arbete från vår Microsoft Research-avdelning.
Utveckling av traditionella maskininlärningsmodeller är resurskrävande, vilket kräver betydande domänkunskaper och tid för att producera och jämföra dussintals modeller. Med automatiserad maskininlärning påskyndar du den tid det tar att förbereda produktionsklara ML modeller med stor enkelhet och effektivitet.
Sätt att använda AutoML i Azure Machine Learning
Azure Machine Learning erbjuder följande två funktioner för att arbeta med automatiserade ML. Se följande avsnitt för att förstå funktionstillgänglighet i varje upplevelse.
För kod erfarna kunder kan du Azure Machine Learning Python SDK. Kom igång med Självstudie: Använda automatiserad maskininlärning för att förutsäga taxiresor.
För kunder med begränsad/ingen kodupplevelse Azure Machine Learning studio på https://ml.azure.com . Kom igång med de här självstudierna:
Experimentinställningar
Med följande inställningar kan du konfigurera ditt automatiserade ML experiment.
| The Python SDK | Studio-webbupplevelsen | |
|---|---|---|
| Dela upp data i uppsättningar för träna/validering | ✓ | ✓ |
| Stöder ML uppgifter: klassificering, regression & prognostiserade | ✓ | ✓ |
| Stöder uppgifter för datorseende (förhandsversion): bildklassificering, objektidentifiering & instanssegmentering | ✓ | |
| Optimerar baserat på primärt mått | ✓ | ✓ |
| Stöder Azure ML-beräkning som beräkningsmål | ✓ | ✓ |
| Konfigurera prognosens horisont, målfördröjningar & rullande fönster | ✓ | ✓ |
| Ange villkor för avslut | ✓ | ✓ |
| Ange samtidiga iterationer | ✓ | ✓ |
| Ta bort kolumner | ✓ | ✓ |
| Blockera algoritmer | ✓ | ✓ |
| Korsvalidering | ✓ | ✓ |
| Stöder träning i Azure Databricks kluster | ✓ | |
| Visa tekniker för funktionsnamn | ✓ | |
| Sammanfattning av featurisering | ✓ | |
| Featurisering för helgdagar | ✓ | |
| Utförliga nivåer för loggfiler | ✓ |
Modellinställningar
De här inställningarna kan tillämpas på den bästa modellen som ett resultat av ditt automatiserade ML experiment.
| The Python SDK | Studio-webbupplevelsen | |
|---|---|---|
| Bästa modellregistrering, distribution, förklaring | ✓ | ✓ |
| Aktivera ensemblemodeller för röstning & stackens ensemblemodeller | ✓ | ✓ |
| Visa bästa modell baserat på icke-primärt mått | ✓ | |
| Aktivera/inaktivera ONNX-modellkompatibilitet | ✓ | |
| Testa modellen | ✓ | √ (förhandsversion) |
Inställningar för körningskontroll
Med de här inställningarna kan du granska och kontrollera experimentkörningarna och dess underordnade körningar.
| The Python SDK | Studio-webbupplevelsen | |
|---|---|---|
| Körningssammanfattningstabell | ✓ | ✓ |
| Avbryt körningar & underordnade körningar | ✓ | ✓ |
| Hämta skyddräcken | ✓ | ✓ |
| Pausa & återuppta körningar | ✓ |
När du ska använda AutoML: klassificering, regression, & av datorseende
Använd automatiserad ML när du Azure Machine Learning att träna och finjustera en modell åt dig med hjälp av det målmått som du anger. Automatiserad ML demokratiserar utvecklingsprocessen för maskininlärningsmodeller och gör det möjligt för användarna, oavsett datavetenskapsexpertis, att identifiera en pipeline för maskininlärning från slutet för alla problem.
Dataforskare, analytiker och utvecklare i olika branscher kan använda automatiserade ML för att:
- Implementera ML utan omfattande programmeringskunskaper
- Spara tid och resurser
- Använda metodtips för datavetenskap
- Tillhandahålla flexibel problemlösning
Klassificering
Klassificering är en vanlig maskininlärningsuppgift. Klassificering är en typ av övervakad inlärning där modeller lär sig med hjälp av träningsdata och tillämpar dessa lärdomar på nya data. Azure Machine Learning har funktioner som är specifika för dessa uppgifter, till exempel textaliserare för djupa neurala nätverk för klassificering. Läs mer om alternativ för featurisering.
Huvudmålet med klassificeringsmodeller är att förutsäga vilka kategorier nya data kommer att hamna i baserat på lärdomar från dess träningsdata. Vanliga klassificeringsexempel är bedrägeriidentifiering, handskriftsigenkänning och objektidentifiering. Läs mer och se ett exempel på Skapa en klassificeringsmodell med automatiserad ML.
Se exempel på klassificering och automatiserad maskininlärning i dessa Python-anteckningsböcker: Bedrägeriidentifiering, Marknadsföringsförutsägelseoch Dataklassificering för nyhetsgrupper
Regression
Precis som klassificering är regressionsuppgifter också en vanlig övervakad inlärningsuppgift. Azure Machine Learning erbjuder funktioner som är specifika för dessa uppgifter.
Regressionsmodeller skiljer sig från klassificering där förutsagda utdatavärden är kategoriska, och regressionsmodeller förutsäger numeriska utdatavärden baserat på oberoende prediktorer. I regression är målet att hjälpa till att upprätta relationen mellan de oberoende förutsägelsevariablerna genom att uppskatta hur en variabel påverkar de andra. Till exempel bilpriser baserade på funktioner som bränslekostnad, säkerhetsklassificering osv. Läs mer och se ett exempel på regression med automatiserad maskininlärning.
Se exempel på regression och automatiserad maskininlärning för förutsägelser i dessa Python-anteckningsböcker: CPU Performance Prediction,
Prognostiserade tidsserier
Att skapa prognoser är en viktig del av alla företag, oavsett om det är intäkter, lager, försäljning eller kundbehov. Du kan använda automatiserade ML för att kombinera tekniker och metoder och få en rekommenderad prognos för tidsserier av hög kvalitet. Läs mer i den här i så här: automatiserad maskininlärning för prognostiserade tidsserier.
Ett automatiserat tidsserieexperiment behandlas som ett multivarierat regressionsproblem. Tidigare tidsserievärden "pivoteras" för att bli ytterligare dimensioner för regrediktorn tillsammans med andra prediktorer. Den här metoden, till skillnad från klassiska tidsseriemetoder, har en fördel med att naturligt införliva flera sammanhangsberoende variabler och deras relation till varandra under träningen. Automatiserade ML lär sig en enda, men ofta internt förgrenad modell för alla objekt i datauppsättningen och förutsägelser. Mer data är därför tillgängliga för att uppskatta modellparametrar och generalisering för ouppspelade serier blir möjliga.
Konfiguration av avancerad prognostiserade data inkluderar:
- helgdagsidentifiering och spelning
- time-series och DNN-elever (Auto-ARIMA, ForecastTCN)
- stöd för många modeller via gruppering
- korsvalidering för rullande ursprung
- konfigurerbara fördröjningar
- funktioner för rullande fönsteraggregat
Se exempel på regression och automatiserad maskininlärning för förutsägelser i dessa Python-anteckningsböcker: Sales Forecasting, Demand Forecastingoch Beverage Production Forecast.
Datorseende (förhandsversion)
Viktigt
Den här funktionen är för närvarande i allmänt tillgänglig förhandsversion. Den här förhandsversionen tillhandahålls utan serviceavtal. Vissa funktioner kanske inte stöds eller kan vara begränsade. Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.
Automatiserade ML för bilder (förhandsversion) lägger till stöd för uppgifter för datorseende, vilket gör att du enkelt kan generera modeller som tränats med bilddata för scenarier som bildklassificering och objektidentifiering.
Med den här funktionen kan du:
- Integrera sömlöst med Azure Machine Learning för dataetikettering
- Använda märkta data för att generera bildmodeller
- Optimera modellens prestanda genom att ange modellalgoritmen och justera hyperparametrarna.
- Ladda ned eller distribuera den resulterande modellen som en webbtjänst i Azure Machine Learning.
- Operationalisera i stor skala med Azure Machine Learning mlops och ML pipelinefunktioner.
Redigering av AutoML-modeller för visionsuppgifter stöds via Azure ML Python SDK. De resulterande experimentkörningarna, modellerna och utdata kan nås från Azure Machine Learning Studio- användargränssnitt.
Lär dig hur du ställer in AutoML-träning för modeller för datorseende.
Avbildning från: http://cs231n.stanford.edu/slides/2021/lecture_15.pdf
Automatisk ML för bilder stöder följande uppgifter för datorseende:
| Uppgift | Beskrivning |
|---|---|
| Bildklassificering med flera klasser | Uppgifter där en bild klassificeras med endast en enda etikett från en uppsättning klasser – t.ex. att varje bild klassificeras som antingen en bild av en "katt" eller en "hund" eller en "katt" |
| Bildklassificering med flera etiketter | Uppgifter där en bild kan ha en eller flera etiketter från en uppsättning etiketter – t.ex. att en bild kan märkas med både "katt" och "hund" |
| Objektidentifiering | Uppgifter för att identifiera objekt i en bild och hitta varje objekt med en avgränsare, t.ex. hitta alla hundar och katter i en bild och rita ett avgränsande fält runt var och en. |
| Instanssegmentering | Uppgifter för att identifiera objekt i en bild på pixelnivå och rita en polygon runt varje objekt i bilden. |
Så här fungerar automatiserad ML
Under träningen Azure Machine Learning ett antal pipelines parallellt som provar olika algoritmer och parametrar åt dig. Tjänsten itererar genom ML algoritmer som paras med funktionsval, där varje iteration skapar en modell med en träningspoäng. Ju högre poäng, desto bättre anses modellen "passa" dina data. Den stoppas när den når de avslutningskriterier som definierats i experimentet.
Med Azure Machine Learning kan du utforma och köra dina automatiserade ML träningsexperiment med följande steg:
Identifiera ML problem som ska lösas: klassificering, prognostiserade data, regression eller datorseende (förhandsversion).
Välj om du vill använda Python SDK eller studiowebbupplevelsen: Lär dig mer om pariteten mellan Python SDK och studiowebbupplevelsen.
- För begränsad eller ingen kodupplevelse kan du prova Azure Machine Learning Studio-webbupplevelsen påhttps://ml.azure.com
- För Python-utvecklare kan du ta en Azure Machine Learning Python SDK
Ange källa och format för märkta träningsdata: Numpy-matriser eller Pandas-dataram
Konfigurera beräkningsmålet för modellträning, till exempel din lokala dator, Azure Machine Learning Computes,virtuella fjärrdatorer eller Azure Databricks .
Konfigurera parametrarna för automatiserad maskininlärning som bestämmer hur många iterationer över olika modeller, inställningar för hyperparametrar, avancerad förbearbetning/funktionering och vilka mått du bör titta på när du fastställer den bästa modellen.
Skicka träningskörningen.
Granska resultaten
Följande diagram illustrerar den här processen.

Du kan också granska den loggade körningsinformationen, som innehåller mått som samlats in under körningen. Träningskörningen skapar ett Python-serialiserat objekt .pkl (fil) som innehåller modellen och förbearbetningen av data.
Medan modellskapande är automatiserat kan du också lära dig hur viktiga eller relevanta funktioner är för de genererade modellerna.
Vägledning om lokala kontra fjärrstyrda ML beräkningsmål
Webbgränssnittet för automatiserade ML alltid ett fjärrbearbetningsmål. Men när du använder Python SDK väljer du antingen en lokal beräkning eller ett fjärrbearbetningsmål för automatiserad ML träning.
- Lokal beräkning: Träning sker på din lokala bärbara dator eller vm-beräkning.
- Fjärrbearbetning: Träning sker i Machine Learning av beräkningskluster.
Välj beräkningsmål
Tänk på följande när du väljer beräkningsmål:
- Välj en lokal beräkning: Om ditt scenario handlar om inledande utforskningar eller demonstrationer med små data och korta träningar (d.v.s. sekunder eller några minuter per underordnad körning), kan träning på din lokala dator vara ett bättre alternativ. Det finns ingen installationstid, infrastrukturresurserna (din dator eller virtuella dator) är direkt tillgängliga.
- Välj ett fjärr-ML-beräkningskluster: Om du tränar med större datauppsättningar som i produktionsträning och skapar modeller som behöver längre träning, ger fjärrbearbetning mycket bättre prestanda från slut till slut eftersom kommer att parallellisera träning över klustrets
AutoMLnoder. Vid en fjärrbearbetning lägger starttiden för den interna infrastrukturen till cirka 1,5 minuter per underordnad körning, plus ytterligare minuter för klusterinfrastrukturen om de virtuella datorerna ännu inte är igång.
För- och nackdelar
Tänk på dessa för- och nackdelar när du väljer att använda lokal kontra fjärrlagring.
| Fördelar (fördelar) | Nackdelar (sporader) | |
|---|---|---|
| Lokalt beräkningsmål | ||
| Fjärranslutna ML beräkningskluster |
Funktionstillgänglighet
Fler funktioner är tillgängliga när du använder fjärrbearbetningen, som du ser i tabellen nedan.
| Funktion | Fjärransluten | Lokal |
|---|---|---|
| Dataströmning (stöd för stora data, upp till 100 GB) | ✓ | |
| DNN-NIT-baserad textdealisering och -träning | ✓ | |
| Stöd för out-of-the-box GPU (träning och slutsatsledning) | ✓ | |
| Stöd för bildklassificering och etikettering | ✓ | |
| Auto-ARIMA- och ForecastTCN-modeller för prognostisering | ✓ | |
| Flera körningar/iterationer parallellt | ✓ | |
| Skapa modeller med tolkning i AutoML Studio-webbgränssnittet | ✓ | |
| Funktionsanpassning i studiowebbgränssnittet | ✓ | |
| Justering ML Hyperparameter i Azure | ✓ | |
| Arbetsflödesstöd för Azure ML Pipeline | ✓ | |
| Fortsätt en körning | ✓ | |
| Prognosticering | ✓ | ✓ |
| Skapa och köra experiment i notebook-datorer | ✓ | ✓ |
| Registrera och visualisera experimentets information och mått i användargränssnittet | ✓ | ✓ |
| Dataskyddsräcken | ✓ | ✓ |
Tränings-, validerings- och testdata
Med automatiserade ML du träningsdata för att träna ML modeller och du kan ange vilken typ av modellvalidering som ska utföras. Automatiserade ML utför modellvalidering som en del av träningen. Det innebär att ML använder valideringsdata för att finjustera modellens hyperparametrar baserat på den tillämpade algoritmen för att hitta den bästa kombinationen som bäst passar träningsdata. Samma valideringsdata används dock för varje iteration av justering, vilket introducerar modellutvärderingens bias eftersom modellen fortsätter att förbättra och anpassa sig till valideringsdata.
För att bekräfta att sådan bias inte tillämpas på den slutliga rekommenderade modellen stöder automatiserade ML användning av testdata för att utvärdera den slutliga modell som automatiserade ML rekommenderar i slutet av experimentet. När du anger testdata som en del av din AutoML-experimentkonfiguration testas den här rekommenderade modellen som standard i slutet av experimentet (förhandsversion).
Viktigt
Att testa dina modeller med en testdatamängd för att utvärdera genererade modeller är en förhandsgranskningsfunktion. Den här funktionen är en experimentell förhandsgranskningsfunktion som kan ändras när som helst.
Lär dig hur du konfigurerar AutoML-experiment för att använda testdata (förhandsversion) med SDK eller med Azure Machine Learning studio.
Du kan också testa befintliga automatiserade ML-modeller (förhandsversion)), inklusive modeller från underordnade körningar, genom att ange egna testdata eller genom att reservera en del av dina träningsdata.
Funktionsframställning
Funktionstekniker är en process där domänkunskap om data används för att skapa funktioner som hjälper ML att lära sig bättre. I Azure Machine Learning används tekniker för skalning och normalisering för att underlätta funktionskonstruktion. Tillsammans kallas dessa tekniker och funktionstekniker för funktionalisering.
För automatiserade maskininlärningsexperiment tillämpas funktioner automatiskt, men kan även anpassas baserat på dina data. Läs mer om vilken featurisering som ingår.
Anteckning
Automatiserade funktionaliseringssteg för maskininlärning (funktions normalisering, hantering av saknade data, konvertering av text till numerisk osv.) blir en del av den underliggande modellen. När du använder modellen för förutsägelser tillämpas samma featuriseringssteg som tillämpades under träningen på dina indata automatiskt.
Automatisk featurisering (standard)
I varje automatiserat maskininlärningsexperiment skalas eller normaliseras dina data automatiskt för att hjälpa algoritmerna att prestera bra. Under modellträningen används någon av följande skalnings- eller normaliseringstekniker för varje modell. Lär dig hur AutoML hjälper till att förhindra överpassning och obalanserade data i dina modeller.
| Bearbetning av & skalning | Description |
|---|---|
| StandardScaleWrapper | Standardisera funktioner genom att ta bort medelvärdet och skalningen till enhetsavvikelsen |
| MinMaxScalar | Transformerar funktioner genom att skala varje funktion efter den kolumnens lägsta och högsta |
| MaxAbsScaler | Skala varje funktion efter maximalt absolut värde |
| RobustScalar | Skalar funktioner efter kvantilintervall |
| PCA | Linjär minskning av antalet dimensioner med singularvärdesdekomposition av data för att projicera dem till en rymd med lägre dimension |
| TruncatedSVDWrapper | Den här transformeren utför linjär dimensionalitetsminskning med hjälp av trunkerad singularvärdesdekomposition (SVD). Till skillnad från PCA centreras inte data i den här beräknaren innan singularvärdesdeposition beräknas, vilket innebär att den kan arbeta effektivt med scipy.sparse-matriser |
| SparseNormalizer | Varje urval (det vill säga varje rad i datamatrisen) med minst en komponent som inte är noll skalas om oberoende av andra urval så att dess norm (l1 eller l2) är lika med ett |
Anpassa featurisering
Ytterligare tekniker för funktionstekniker som kodning och transformeringar är också tillgängliga.
Aktivera den här inställningen med:
Azure Machine Learning studio: Aktivera automatisk funktioner i avsnittet Visa ytterligare konfiguration med de här stegen.
Python SDK: Ange
"feauturization": 'auto' / 'off' / 'FeaturizationConfig'i AutoMLConfig-objektet. Läs mer om att aktivera featurization.
Ensemblemodeller
Automatiserad maskininlärning stöder ensemblemodeller, som är aktiverade som standard. Ensembleinlärning förbättrar maskininlärningsresultat och förutsägelseprestanda genom att kombinera flera modeller i stället för att använda enskilda modeller. Ensemble iterationerna visas som de slutliga iterationerna för körningen. Automatiserad maskininlärning använder både röstnings- och staplingsmetoder för ensemble för att kombinera modeller:
- Röstning: förutsäger baserat på det viktade medelvärdet av förväntade klasssansanningar (för klassificeringsuppgifter) eller förutsagda regressionsmål (för regressionsuppgifter).
- Stapling: vid stapling kombineras heterogena modeller och en metamodell tränas baserat på utdata från de enskilda modellerna. De aktuella standardmetamodellerna är LogisticRegression för klassificeringsuppgifter och ElasticNet för regressions-/prognosuppgifter.
Urvalsalgoritmen för Caruana ensemble med sorterad ensemble-initiering används för att bestämma vilka modeller som ska användas i ensemblen. På en hög nivå initierar den här algoritmen ensemblen med upp till fem modeller med bästa enskilda poäng och verifierar att dessa modeller ligger inom 5 % tröskelvärdet för bästa poäng för att undvika en dålig inledande ensemble. För varje ensemble-iteration läggs sedan en ny modell till i den befintliga ensemblen och den resulterande poängen beräknas. Om en ny modell förbättrade den befintliga ensemblepoängen uppdateras ensemblen så att den inkluderar den nya modellen.
Se how-to for changing default ensemble settings in automated machine learning (Ändra standardinställningar för ensemble i automatiserad maskininlärning).
AutoML & ONNX
Med Azure Machine Learning kan du använda automatiserade ML skapa en Python-modell och konvertera den till ONNX-formatet. När modellerna har ONNX-format kan de köras på en mängd olika plattformar och enheter. Läs mer om att ML modeller med ONNX.
Se hur du konverterar till ONNX-format i det här Jupyter Notebook-exemplet. Lär dig vilka algoritmer som stöds i ONNX.
ONNX-körningen stöder också C#, så du kan använda modellen som skapats automatiskt i dina C#-appar utan att behöva omkoda eller någon av de nätverkssvarstider som REST-slutpunkter introducerar. Läs mer om hur du använder en AutoML ONNX-modell i ett .NET-program med ML.NET och inferens av ONNX-modeller med ONNX-körnings-C#-API:et.
Nästa steg
Det finns flera resurser för att komma igång med AutoML.
Självstudier/instruktioner
Självstudier är introduktionsexempel på AutoML-scenarier från start till slut.
För en kodupplevelse följer du Självstudie: Träna en regressionsmodell med AutoML och Python.
En upplevelse med lite eller ingen kod finns i Självstudie: Tränaen klassificeringsmodell med AutoML utan kod i Azure Machine Learning studio .
Information om hur du använder AutoML för att träna modeller för datorseende finns i Självstudie: Träna en objektidentifieringsmodell (förhandsversion) med AutoML och Python.
I de här artiklarna får du mer information om vilka funktioner som automatiseras ML erbjuder. Exempel:
Konfigurera inställningarna för automatiska träningsexperiment
Lär dig hur du tränar prognosmodeller med tidsseriedata.
Lär dig hur du tränar modeller för datorseende med Python.
Jupyter Notebook-exempel
Granska detaljerade kodexempel och användningsfall på lagringsplatsen GitHub notebook för automatiserade maskininlärningsexempel.
Python SDK-referens
Fördjupa dina kunskaper om SDK-designmönster och klassspecifikationer med AutoML-klassreferensdokumentationen.
Anteckning
Automatiserade maskininlärningsfunktioner är också tillgängliga i andra Microsoft-lösningar, till exempel ML.NET, HDInsight, Power BI och SQL Server