Vad är automatisk maskininlärning (AutoML)?
Automatiserad maskininlärning, även kallat automatiserad ML eller AutoML, är en process för att automatisera de tidskrävande, iterativa uppgifterna för utveckling av maskininlärningsmodeller. Det gör att dataforskare, analytiker och utvecklare kan skapa ML modeller med hög skala, effektivitet och produktivitet samtidigt som modellkvaliteten bibehålls. Automatiserade ML i Azure Machine Learning baseras på ett genombrott från vår Microsoft Research-avdelning.
Traditionell utveckling av maskininlärningsmodeller är resurskrävande, vilket kräver betydande domänkunskap 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å produktionsklara ML modeller med stor lätthet 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 kodgredigerade kunder Azure Machine Learning Python SDK. Kom igång med Självstudie: Använd automatiserad maskininlärning för att förutsäga taxipriser.
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.
SDK för Python | Studio-webbupplevelsen | |
---|---|---|
Dela upp data i tränings-/valideringsuppsättningar | ✓ | ✓ |
Stöder ML uppgifter: klassificering, regression, & prognostisering | ✓ | ✓ |
Stöder uppgifter för visuellt innehåll (förhandsversion): bildklassificering, objektidentifieringsinstanssegmentering & | ✓ | |
NLP-Text | ✓ | ✓ |
Optimerar baserat på primärt mått | ✓ | ✓ |
Stöder Azure ML beräkning som beräkningsmål | ✓ | ✓ |
Konfigurera prognoshorisont, rullande målfördröjning & | ✓ | ✓ |
Ange avslutsvillkor | ✓ | ✓ |
Ange samtidiga iterationer | ✓ | ✓ |
Blockera algoritmer | ✓ | ✓ |
Korsvalidering | ✓ | ✓ |
Stöder utbildning i Azure Databricks-kluster | ✓ | |
Visa skapade funktionsnamn | ✓ | |
Funktionaliseringssammanfattning | ✓ | |
Funktionalisering för helgdagar | ✓ | |
Utförlighetsnivå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.
SDK för Python | Studio-webbupplevelsen | |
---|---|---|
Bästa modellregistrering, distribution, förklarbarhet | ✓ | ✓ |
Aktivera ensemblestacksempelmodeller & för röstning | ✓ | ✓ |
Visa bästa modell baserat på icke-primärt mått | ✓ | |
Aktivera/inaktivera ONNX-modellkompatibilitet | ✓ | |
Testa modellen | ✓ | √ (förhandsversion) |
Inställningar för jobbkontroll
Med de här inställningarna kan du granska och kontrollera experimentjobben och dess underordnade jobb.
SDK för Python | Studio-webbupplevelsen | |
---|---|---|
Jobbsammanfattningstabell | ✓ | ✓ |
Avbryt jobb för & underordnade jobb | ✓ | ✓ |
Hämta skyddsräcken | ✓ | ✓ |
När du ska använda AutoML: klassificering, regression, prognostisering, NLP för visuellt innehåll &
Använd automatiserade ML när du vill Azure Machine Learning träna och finjustera en modell med hjälp av det målmått som du anger. Automatiserad ML demokratiserar utvecklingsprocessen för maskininlärningsmodellen och ger användarna möjlighet att, oavsett deras datavetenskapsexpertis, identifiera en pipeline för maskininlärning från slutpunkt till slutpunkt för eventuella problem.
ML experter och utvecklare i olika branscher kan använda automatiserade ML för att:
- Implementera ML lösningar utan omfattande programmeringskunskaper
- Spara tid och resurser
- Använda metodtips för datavetenskap
- Tillhandahålla smidig problemlösning
Klassificering
Klassificering är en vanlig maskininlärningsuppgift. Klassificering är en typ av övervakad inlärning där modeller tränas med träningsdata, och lär sig att tillämpa dessa lärdomar på nya data. I Azure Machine Learning finns särskilda funktioner för dessa uppgifter, till exempel textfunktioner för djupt neuralt nätverk. Läs mer om funktionaliseringsalternativ.
Huvudmålet med klassificeringsmodeller är att förutsäga vilka kategorier som nya data kommer att tillhöra baserat på inlärning från dess träningsdata. Klassificering används till exempel för identifiering av bedrägerier, handskriftsigenkänning och objektidentifiering. Lär dig mer och se ett exempel i Skapa en klassificeringsmodell med automatiserad ML.
Se exempel på klassificering och automatiserad maskininlärning i dessa Python notebook-filer: Bedrägeriidentifiering, Marknadsföringsförutsägelse och Dataklassificering för diskussionsgrupp
Regression
På samma sätt som med klassificering är regressionsaktiviteter också en vanlig övervakad inlärningsuppgift. Azure Machine Learning erbjuder funktionaliseringar som är specifika för dessa uppgifter.
Regressionsmodeller skiljer sig från klassificering där förutsagda utdatavärden är kategoriska och förutsäger numeriska utdatavärden baserat på oberoende prediktorer. I regression är målet att hjälpa till att upprätta en relation mellan dessa oberoende prediktorvariabler genom att uppskatta hur en variabel påverkar de andra. Till exempel hur bilpriser påverkas utifrån bensinförbrukning per mil, 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 notebook-filer: Förutsägelse av processorprestanda,
Prognostisering för tidsserier
Att skapa prognoser är ett viktigt område för alla företag, oavsett om det gäller intäkter, lager, försäljning eller kundefterfrågan. Du kan använda automatiserad ML för att kombinera tekniker och metoder och få en rekommenderad tidsserieprognos av hög kvalitet. Lär dig mer med den här instruktioner: automatiserad maskininlärning för tidsserieprognoser.
Ett automatiserat tidsserieexperiment behandlas som ett problem med multivariatregression. Tidigare tidsserievärden "pivoteras" för att bli ytterligare dimensioner för regressorn tillsammans med andra prediktorer. Den här metoden, till skillnad från klassiska tidsseriemetoder, har en fördel av att naturligt införliva flera sammanhangsbaserade variabler och deras relation till varandra under träningen. Automatiserad ML lär sig en enda, men ofta internt förgrenad modell för alla objekt i datauppsättningen och förutsägelsehorisonter. Mer data är därmed tillgängliga för att uppskatta modellparametrar och generalisering till osedda serier blir möjlig.
Avancerad prognoskonfiguration omfattar:
- funktionalisering och identifiering av helgdagar
- time-series och DNN learners (Auto-ARIMA, Prophet, ForecastTCN)
- många modeller stöder genom gruppering
- korsvalidering för rullande ursprung
- konfigurerbara förskjutningar
- aggregeringsfunktioner för rullande fönster
Se exempel på regression och automatiserad maskininlärning för förutsägelser i dessa Python notebook-filer: Försäljningsprognoser, efterfrågeprognoser och prognostisering GitHub dagliga aktiva användare.
Visuellt innehåll (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.
Med stöd för uppgifter för visuellt innehåll kan du enkelt generera modeller som tränats på bilddata för scenarier som bildklassificering och objektidentifiering.
Med den här funktionen kan du:
- Integrera sömlöst med Azure Machine Learning funktioner för dataetiketter
- Använda etiketterade 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 och utnyttja Azure Machine Learning MLOps- och ML Pipelines-funktioner.
Redigering av AutoML-modeller för visionsuppgifter stöds via Azure ML Python SDK. Resulterande experimenteringsjobb, modeller och utdata kan nås från Azure Machine Learning-studio användargränssnittet.
Lär dig hur du konfigurerar AutoML-träning för modeller för visuellt innehåll.
Bild från: http://cs231n.stanford.edu/slides/2021/lecture_15.pdf
AutoML för bilder har stöd för följande uppgifter med datorseende:
Uppgift | Beskrivning |
---|---|
Bildklassificering i flera klasser | Uppgifter där en bild klassificeras med endast en etikett från en uppsättning klasser – till exempel att varje bild klassificeras som antingen en bild av en "katt" eller en "hund" eller en "anka" |
Bildklassificering med flera etiketter | Uppgifter där en bild kan ha en eller flera etiketter från en uppsättning etiketter – till exempel att en bild kan märkas med både "katt" och "hund" |
Objektidentifiering | Uppgifter för att identifiera objekt i en bild och avgränsa respektive objekt med ett fält, till exempel att 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 respektive objekt i bilden. |
Bearbetning av naturligt språk: NLP (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 och rekommenderas inte för produktionsarbetsbelastningar. 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.
Stöd för uppgifter för bearbetning av naturligt språk (NLP) i automatiserade ML gör att du enkelt kan generera modeller som tränats på textdata för textklassificering och namngivna scenarier för entitetsigenkänning. Redigering av automatiserade ML tränade NLP-modeller stöds via Azure Machine Learning Python SDK. Resulterande experimenteringsjobb, modeller och utdata kan nås från Azure Machine Learning-studio användargränssnittet.
NLP-funktionen stöder:
- Nlp-träning från slutpunkt till slutpunkt med de senaste förtränade BERT-modellerna
- Sömlös integrering med Azure Machine Learning dataetiketter
- Använda etiketterade data för att generera NLP-modeller
- Stöd för flera språk med 104 språk
- Distribuerad träning med Horovod
Lär dig hur du konfigurerar AutoML-träning för NLP-modeller.
Så här fungerar automatiserade ML
Under träningen skapar Azure Machine Learning ett antal pipelines parallellt som provar olika algoritmer och parametrar åt dig. Tjänsten itererar genom ML algoritmer i kombination med funktionsval, där varje iteration skapar en modell med en träningspoäng. Desto högre poäng, desto bättre anses modellen "passa" dina data. Det stoppas när det når avslutskriterierna som definierats i experimentet.
Med hjälp av 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, prognostisering, regression eller visuellt innehåll (förhandsversion).
Välj om du vill använda Python SDK eller studiowebbupplevelsen: Läs mer om pariteten mellan Python SDK och studiowebbupplevelsen.
- För begränsad eller ingen kodupplevelse kan du prova Azure Machine Learning-studio webbupplevelse påhttps://ml.azure.com
- För Python utvecklare kan du ta en titt på 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, fjärranslutna virtuella datorer eller Azure Databricks.
Konfigurera de automatiserade maskininlärningsparametrarna som avgör hur många iterationer över olika modeller, inställningar för hyperparametrar, avancerad förbearbetning/funktionalisering och vilka mått som ska tittas på när du fastställer den bästa modellen.
Skicka träningsjobbet.
Granska resultaten
Följande diagram illustrerar den här processen.
Du kan också granska den loggade jobbinformationen, som innehåller mått som samlats in under jobbet. Träningsjobbet skapar ett Python serialiserat objekt (.pkl
fil) som innehåller modellen och förbearbetning av data.
Även om modellskapande är automatiserat kan du också lära dig hur viktiga eller relevanta funktioner är för de genererade modellerna.
Vägledning om lokala och fjärrhanterade ML beräkningsmål
Webbgränssnittet för automatiserade ML använder alltid ett fjärrberäkningsmål. Men när du använder Python SDK väljer du antingen en lokal beräkning eller ett fjärrberäkningsmål för automatiserad ML träning.
- Lokal beräkning: Träning sker på din lokala bärbara dator eller vm-beräkning.
- Fjärrberäkning: Träning sker i Machine Learning beräkningskluster.
Välj beräkningsmål
Tänk på dessa faktorer 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 tåg (dvs. sekunder eller ett par minuter per underordnat jobb) kan det vara ett bättre val att träna på den lokala datorn. Det finns ingen installationstid, infrastrukturresurserna (din dator eller virtuella dator) är direkt tillgängliga.
- Välj ett fjärranslutet ML beräkningskluster: Om du tränar med större datamängder som i produktionsträning och skapar modeller som behöver längre tåg, ger fjärrberäkning mycket bättre prestanda från slutpunkt till slutpunkt eftersom
AutoML
det parallelliserar tågen mellan klustrets noder. Vid en fjärrberäkning lägger starttiden för den interna infrastrukturen till cirka 1,5 minuter per underordnat jobb, plus ytterligare minuter för klusterinfrastrukturen om de virtuella datorerna ännu inte är igång.
För- och nackdelar
Överväg dessa för- och nackdelar när du väljer att använda lokala kontra fjärranslutna.
Fördelar (fördelar) | Nackdelar (handikapp) | |
---|---|---|
Lokalt beräkningsmål | ||
Fjärranslutna ML beräkningskluster |
Funktionstillgänglighet
Fler funktioner är tillgängliga när du använder fjärrberäkning, som du ser i tabellen nedan.
Funktion | Fjärransluten | Lokal |
---|---|---|
Dataströmning (stöd för stora data, upp till 100 GB) | ✓ | |
DNN-BERT-baserad textfunktionalisering och utbildning | ✓ | |
Inbyggt GPU-stöd (utbildning och slutsatsdragning) | ✓ | |
Stöd för bildklassificering och etikettering | ✓ | |
Auto-ARIMA-, Prophet- och ForecastTCN-modeller för prognostisering | ✓ | |
Flera jobb/iterationer parallellt | ✓ | |
Skapa modeller med tolkningsbarhet i användargränssnittet för AutoML Studio-webbupplevelsen | ✓ | |
Anpassning av funktionsframställning i studiowebbgränssnittet | ✓ | |
Justering av hyperparametrar i Azure ML | ✓ | |
Arbetsflödesstöd för Azure ML Pipeline | ✓ | |
Fortsätt ett jobb | ✓ | |
Prognosticering | ✓ | ✓ |
Skapa och köra experiment i notebook-filer | ✓ | ✓ |
Registrera och visualisera experimentets information och mått i användargränssnittet | ✓ | ✓ |
Dataskyddsmekanismer | ✓ | ✓ |
Tränings-, validerings- och testdata
Med automatiserade ML tillhandahåller du träningsdata för att träna ML modeller, och du kan ange vilken typ av modellverifiering som ska utföras. Automatiserad ML utför modellvalidering som en del av träningen. Automatiserad ML använder valideringsdata för att justera modellhyperparametrar 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ärderingsfördomar eftersom modellen fortsätter att förbättras och anpassas 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 automatiserad ML rekommenderar i slutet av experimentet. När du anger testdata som en del av autoML-experimentkonfigurationen testas den här rekommenderade modellen som standard i slutet av experimentet (förhandsversion).
Viktigt
Att testa dina modeller med en testdatauppsättning för att utvärdera genererade modeller är en förhandsgranskningsfunktion. Den här funktionen är en experimentell förhandsgranskningsfunktion och 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 alla befintliga automatiserade ML modell (förhandsversion)), inklusive modeller från underordnade jobb, genom att tillhandahålla egna testdata eller genom att avsätta en del av dina träningsdata.
Funktionsframställning
Funktionsframställning är processen att använda domänkunskaper om data för att skapa funktioner som hjälper ML algoritmer att lära sig bättre. I Azure Machine Learning används skalnings- och normaliseringstekniker för att underlätta funktionsframställning. Tillsammans kallas dessa tekniker och funktionsframställning för funktionalisering.
För automatiserade maskininlärningsexperiment tillämpas funktionalisering automatiskt, men kan också anpassas baserat på dina data. Läs mer om vad funktionalisering ingår och hur AutoML hjälper till att förhindra överanpassning och obalanserade data i dina modeller.
Anteckning
Automatiserade maskininlärningssteg (funktionsnormalisering, hantering av data som saknas, 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 funktionaliseringssteg som tillämpas under träningen på dina indata automatiskt.
Anpassa funktionalisering
Ytterligare tekniker för funktionsframställning, till exempel kodning och transformeringar, finns också tillgängliga.
Aktivera den här inställningen med:
Azure Machine Learning-studio: Aktivera automatisk funktionalisering i avsnittet Visa ytterligare konfigurationmed de här stegen.
Python SDK: Ange
"feauturization": 'auto' / 'off' / 'FeaturizationConfig'
i autoMLConfig-objektet. Läs mer om att aktivera funktionalisering.
Ensemblemodeller
Automatiserad maskininlärning stöder ensemblemodeller, som är aktiverade som standard. Ensembleinlärning förbättrar maskininlärningsresultat och förutsägande prestanda genom att kombinera flera modeller i stället för att använda enskilda modeller. Ensemble-iterationerna visas som de sista iterationerna i ditt jobb. Automatiserad maskininlärning använder både röstnings- och staplingsmetoder för att kombinera modeller:
- Röstning: förutsäger baserat på det viktade genomsnittet av förutsagda klassannolikheter (för klassificeringsuppgifter) eller förutsagda regressionsmål (för regressionsaktiviteter).
- Stackning: stapling kombinerar heterogena modeller och tränar en metamodell baserat på utdata från de enskilda modellerna. De aktuella standardmetamodellerna är LogisticRegression för klassificeringsuppgifter och ElasticNet för regression/prognostiseringsuppgifter.
Algoritmen för val av Caruana-ensemble med sorterad ensembleinitiering används för att bestämma vilka modeller som ska användas i ensemblen. På hög nivå initierar den här algoritmen ensemblen med upp till fem modeller med bästa individuella poäng och verifierar att dessa modeller ligger inom 5 % av det bästa resultatet 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 anvisningar för att ändra standardinställningarna för ensemblen i automatiserad maskininlärning.
AutoML & ONNX
Med Azure Machine Learning kan du använda automatiserade ML för att skapa en Python modell och få den konverterad till ONNX-format. När modellerna är i ONNX-format kan de köras på en mängd olika plattformar och enheter. Läs mer om att påskynda 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 har också stöd för C#, så du kan använda modellen som skapats automatiskt i C#-apparna utan att behöva återskapa eller någon av de nätverksfördröjningar som REST-slutpunkter introducerar. Läs mer om hur du använder en AutoML ONNX-modell i ett .NET-program med ML.NET och slutsatsdragning 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 från slutpunkt till slutpunkt för AutoML-scenarier.
Om du vill ha en kod först följer du Självstudie: Träna en regressionsmodell med AutoML och Python.
En låg eller ingen kodupplevelse finns i Självstudie: Träna en klassificeringsmodell utan kod AutoML i Azure Machine Learning-studio.
Information om hur du använder AutoML för att träna modeller för visuellt innehåll finns i Självstudie: Träna en objektidentifieringsmodell (förhandsversion) med AutoML och Python.
Instruktioner innehåller ytterligare information om vilka funktioner automatiserade 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 visuellt innehåll med Python.
Lär dig hur du visar den genererade koden från dina automatiserade ML modeller.
Jupyter Notebook-exempel
Granska detaljerade kodexempel och användningsfall på GitHub-lagringsplatsen med automatiserade maskininlärningsexempel.
Python SDK-referens
Fördjupa dina kunskaper om SDK-designmönster och klassspecifikationer med referensdokumentationen för AutoML-klassen.
Anteckning
Automatiserade maskininlärningsfunktioner finns också i andra Microsoft-lösningar som ML.NET, HDInsight, Power BI och SQL Server