Wat is geautomatiseerde machine learning (AutoML)?

Geautomatiseerde machine learning, ook wel geautomatiseerde ML of AutoML genoemd, is het proces van het automatiseren van de tijdrovende, iteratieve taken van machine learning modelontwikkeling. Hiermee kunnen gegevenswetenschappers, analisten en ontwikkelaars ML modellen bouwen met hoge schaal, efficiëntie en productiviteit, en tegelijkertijd de kwaliteit van het model handhaven. Automatische ML in Azure Machine Learning is gebaseerd op een doorbrak van onze Microsoft Research-afdeling.

Traditionele machine learning modelontwikkeling is resource-intensief, wat veel domeinkennis en tijd vereist om tientallen modellen te produceren en te vergelijken. Met geautomatiseerde machine learning versnelt u de tijd die nodig is om met veel gemak en efficiëntie ML productiemodellen gereed te maken.

Manieren om AutoML te gebruiken in Azure Machine Learning

Azure Machine Learning biedt de volgende twee ervaringen voor het werken met geautomatiseerde ML. Zie de volgende secties voor meer informatie over de beschikbaarheid van functies in elke ervaring.

Experimentinstellingen

Met de volgende instellingen kunt u uw geautomatiseerde ML configureren.

De Python-SDK De studio-webervaring
Gegevens splitsen in sets voor trainen/valideren
Ondersteunt ML taken: classificatie, regressie & prognoses
Ondersteunt Computer Vision-taken (preview): afbeeldingsclassificatie, objectdetectie & segmentatie van exemplaren
Optimaliseert op basis van primaire metrische gegevens
Ondersteunt Azure ML compute als rekendoel
Prognoseperiode configureren, doelvertraging & rolling window
Exitcriteria instellen
Gelijktijdige iteraties instellen
Kolommen verwijderen
Algoritmen blokkeren
Kruisvalidatie
Ondersteunt training op Azure Databricks clusters
Namen van ontworpen functies weergeven
Samenvatting van featurization
Featurization voor feestdagen
Verbosity-niveaus van logboekbestanden

Modelinstellingen

Deze instellingen kunnen worden toegepast op het beste model als gevolg van uw geautomatiseerde ML experiment.

De Python-SDK De studio-webervaring
Beste modelregistratie, implementatie, uitleg
Stemmende ensemble-& stack-ensemblemodellen inschakelen
Beste model tonen op basis van niet-primaire metrische gegevens
Compatibiliteit met ONNX-modellen in-/uitschakelen
Het model testen √ (preview)

Instellingen voor besturingselementen uitvoeren

Met deze instellingen kunt u uw experiment en de onderliggende runs controleren en beheren.

De Python-SDK De studio-webervaring
Samenvattingstabel uitvoeren
Runs annuleren & onderliggende runs
Beveiligingsrails krijgen
De & hervatten onderbreken

Wanneer u AutoML gebruikt: classificatie, regressie, & Computer Vision

Pas automatische ML toe wanneer u Azure Machine Learning model voor u wilt trainen en afstemmen met behulp van de metrische doelmetrische gegevens die u opgeeft. Geautomatiseerde ML democratiseert het machine learning-modelontwikkelingsproces en stelt de gebruikers, ongeacht hun expertise op het gebied van data science, in staat om een end-to-end machine learning-pijplijn voor elk probleem te identificeren.

Gegevenswetenschappers, analisten en ontwikkelaars in verschillende branches kunnen geautomatiseerde ML:

  • Oplossingen ML implementeren zonder uitgebreide programmeerkennis
  • Tijd en resources besparen
  • Best practices voor data science gebruiken
  • Flexibele probleemoplossing bieden

Classificatie

Classificatie is een veelvoorkomende machine learning taak. Classificatie is een type leren onder supervisie waarin modellen leren met trainingsgegevens en deze kennis toepassen op nieuwe gegevens. Azure Machine Learning biedt featurizations specifiek voor deze taken, zoals deep neural network text featurizers voor classificatie. Meer informatie over featurization-opties.

Het belangrijkste doel van classificatiemodellen is om te voorspellen in welke categorieën nieuwe gegevens vallen op basis van leertrajecten van de trainingsgegevens. Veelvoorkomende classificatievoorbeelden zijn fraudedetectie, handschriftherkenning en objectdetectie. Meer informatie en een voorbeeld ziet u in Een classificatiemodel maken met geautomatiseerde ML.

Zie voorbeelden van classificatie en geautomatiseerde machine learning in deze Python-notebooks: Fraudedetectie, Marketingvoorspellingen Newsgroup-gegevensclassificatie

Regressie

Net als bij classificatie zijn regressietaken ook een algemene leertaak onder supervisie. Azure Machine Learning biedt featurizations specifiek voor deze taken.

Anders dan bij classificatie waarbij voorspelde uitvoerwaarden categorisch zijn, voorspellen regressiemodellen numerieke uitvoerwaarden op basis van onafhankelijke voorspellingen. In regressie is het doel om te helpen de relatie tot stand te brengen tussen deze onafhankelijke voorspellingsvariabelen door te schatten hoe één variabele de andere beïnvloedt. Bijvoorbeeld de prijs van auto's op basis van functies zoals, gaskiometers, veiligheidsclassificatie, enzovoort. Meer informatie en een voorbeeld van regressie met geautomatiseerde machine learning.

Zie voorbeelden van regressie en geautomatiseerde machine learning voor voorspellingen in deze Python-notebooks: CPU-prestatievoorspelling,

Tijdreeksvoorspelling

Het bouwen van prognoses is een integraal onderdeel van elk bedrijf, of het nu gaat om omzet, inventaris, verkoop of vraag van klanten. U kunt geautomatiseerde ML om technieken en benaderingen te combineren en een aanbevolen tijdreeksprognose van hoge kwaliteit te krijgen. Meer informatie met deze zelf-how-to: geautomatiseerde machine learning voor tijdreeksprognoses.

Een geautomatiseerd tijdreeksexperiment wordt behandeld als een multivariate regressieprobleem. Waarden uit eerdere tijdreeksen worden 'draaiend' om extra dimensies voor de regressor te worden, samen met andere voorspellingen. Deze benadering heeft, in tegenstelling tot klassieke tijdreeksmethoden, een voordeel van het op natuurlijke wijze opnemen van meerdere contextuele variabelen en hun relatie met elkaar tijdens de training. Geautomatiseerde ML leert één, maar vaak intern vertakt model voor alle items in de gegevensset en voorspellingsperioden. Er zijn dus meer gegevens beschikbaar om modelparameters te schatten en generalisatie voor niet-beveiligde reeksen wordt mogelijk.

Geavanceerde prognoseconfiguratie omvat:

  • vakantiedetectie en -featurization
  • tijdreeks- en DNN-studenten (Auto-ARIMA, Timeline, ForecastTCN)
  • ondersteuning voor veel modellen via groepering
  • kruisvalidatie rolling-origin
  • configureerbare vertragingen
  • functies voor aggregatie van rolling window

Zie voorbeelden van regressie en geautomatiseerde machine learning voor voorspellingen in deze Python-notebooks: Verkoopprognose, Vraagprognose en Prognose voor productie.

Computer Vision (preview)

Belangrijk

Deze functie is momenteel beschikbaar als openbare preview-versie. Deze preview-versie wordt aangeboden zonder service level agreement. Misschien worden bepaalde functies niet ondersteund of zijn de mogelijkheden ervan beperkt. Zie Supplemental Terms of Use for Microsoft Azure Previews (Aanvullende gebruiksvoorwaarden voor Microsoft Azure-previews) voor meer informatie.

Geautomatiseerde ML voor afbeeldingen (preview) voegt ondersteuning toe voor Computer Vision-taken, waarmee u eenvoudig modellen kunt genereren die zijn getraind op afbeeldingsgegevens voor scenario's zoals afbeeldingsclassificatie en objectdetectie.

Met deze functie kunt u het volgende doen:

  • Naadloos integreren met Azure Machine Learning functie voor het labelen van gegevens
  • Gelabelde gegevens gebruiken voor het genereren van afbeeldingsmodellen
  • Optimaliseer de modelprestaties door het modelalgoritme op te geven en de hyperparameters af te stemmen.
  • Download of implementeer het resulterende model als een webservice in Azure Machine Learning.
  • Operationeel maken op schaal, met gebruik Azure Machine Learning mlops- en ML-pijplijnen.

Het schrijven van AutoML-modellen voor vision-taken wordt ondersteund via de Azure ML Python SDK. De resulterende experimenten, uitvoeringen, modellen en uitvoer zijn toegankelijk vanuit de Azure Machine Learning Studio.

Meer informatie over het instellen van AutoML-training voor Computer Vision-modellen.

Voorbeelden van Computer Vision-taken. Afbeelding van: http://cs231n.stanford.edu/slides/2021/lecture_15.pdf Afbeelding van: http://cs231n.stanford.edu/slides/2021/lecture_15.pdf

Geautomatiseerde ML voor afbeeldingen ondersteunt de volgende Computer Vision-taken:

Taak Beschrijving
Afbeeldingsclassificatie met meerdere klassen Taken waarbij een afbeelding wordt geclassificeerd met slechts één label uit een set klassen, bijvoorbeeld dat elke afbeelding wordt geclassificeerd als een afbeelding van een 'kat' of een 'hond' of een 'hond'
Afbeeldingsclassificatie met meerdere labels Taken waarbij een afbeelding een of meer labels uit een set labels kan hebben, bijvoorbeeld een afbeelding kan worden gelabeld met zowel 'kat' als 'hond'
Objectdetectie Taken voor het identificeren van objecten in een afbeelding en het vinden van elk object met een begrensingsvak, bijvoorbeeld alle honden en katten in een afbeelding zoeken en een begrensingsvak rond elk object tekenen.
Exemplaarsegmentatie Taken voor het identificeren van objecten in een afbeelding op pixelniveau, het tekenen van een veelhoek rond elk object in de afbeelding.

Hoe geautomatiseerde ML werkt

Tijdens de training Azure Machine Learning een aantal pijplijnen parallel gemaakt waarmee u verschillende algoritmen en parameters kunt uitproberen. De service doormaakt ML algoritmen die zijn gekoppeld aan functieselecties, waarbij elke iteratie een model met een trainingsscore produceert. Hoe hoger de score, hoe beter het model wordt beschouwd als 'passend' in uw gegevens. Deze wordt gestopt zodra deze voldoet aan de exitcriteria die zijn gedefinieerd in het experiment.

Met Azure Machine Learning kunt u uw geautomatiseerde trainingsexperimenten ML en uitvoeren met de volgende stappen:

  1. Identificeer het ML dat moet worden opgelost: classificatie, prognose, regressie of Computer Vision (preview).

  2. Kies of u de Python SDK of de studio-webervaring wilt gebruiken: meer informatie over de pariteit tussen de Python-SDK en de Studio-webervaring.

  3. Geef de bron en indeling van de gelabelde trainingsgegevens op: Numpy-matrices of Pandas-gegevensframe

  4. Configureer het rekendoel voor modeltraining, zoals uw lokale computer, Azure Machine Learning Computes, externe VM's of Azure Databricks.

  5. Configureer de geautomatiseerde machine learning-parameters die bepalen hoeveel iteraties over verschillende modellen, hyperparameterinstellingen, geavanceerde voorverwerking/parametrisatie en welke metrische gegevens u moet bekijken bij het bepalen van het beste model.

  6. Verzend de trainingsrun.

  7. De resultaten bekijken

Het volgende diagram illustreert dit proces. Geautomatiseerde machine learning

U kunt ook de vastgelegde gegevens van de run inspecteren, die metrische gegevens bevatten die tijdens de run zijn verzameld. De trainingsrun produceert een geseraliseerd Python-object (bestand) dat het .pkl model en de voorverwerking van gegevens bevat.

Hoewel het bouwen van modellen geautomatiseerd is, kunt u ook leren hoe belangrijk of relevant functies zijn voor de gegenereerde modellen.

Richtlijnen voor lokale versus externe beheerde ML rekendoelen

De webinterface voor geautomatiseerde ML maakt altijd gebruik van een extern rekendoel. Maar wanneer u de Python SDK gebruikt, kiest u een lokaal rekendoel of een extern rekendoel voor geautomatiseerde ML training.

  • Lokale rekenkracht: Training vindt plaats op uw lokale laptop of VM-rekenkracht.
  • Extern berekenen: training vindt plaats op Machine Learning rekenclusters.

Rekendoel kiezen

Houd rekening met deze factoren bij het kiezen van uw rekendoel:

  • Kies een lokale berekening: als uw scenario gaat over initiële verkenningen of demo's met behulp van kleine gegevens en korte trainen (dat wil zeggen seconden of een paar minuten per onderliggende run), is training op uw lokale computer mogelijk een betere keuze. Er is geen installatietijd, de infrastructuurbronnen (uw pc of VM) zijn rechtstreeks beschikbaar.
  • Een extern ML-rekencluster kiezen: als u traint met grotere gegevenssets, zoals in productietraining, en modellen maakt die langer moeten worden getraind, biedt externe rekenkracht veel betere end-to-end-tijdprestaties omdat de trainen parallel lopen tussen de knooppunten van het AutoML cluster. Op een externe berekening wordt de opstarttijd voor de interne infrastructuur ongeveer 1,5 minuten per onderliggende run, plus extra minuten voor de clusterinfrastructuur als de VM's nog niet actief zijn.

Voor- en nadelen

Houd rekening met deze voor- en nadelen bij het kiezen van lokale versus externe.

Voordelen (voordelen) Nadelen (handicaps)
Lokaal rekendoel
  • Geen opstarttijd omgeving
  • Subset van functies
  • Kan runs niet parallelliseren
  • Slechter voor grote gegevens.
  • Geen gegevensstreaming tijdens training
  • Geen op DNN gebaseerde featurization
  • Alleen Python SDK
  • Externe ML clusters
  • Volledige set functies
  • Onderliggende runs parallelliseren
  • Ondersteuning voor grote gegevens
  • Featurization op basis van DNN
  • Dynamische schaalbaarheid van rekencluster op aanvraag
  • No-code-ervaring (webinterface) ook beschikbaar
  • Opstarttijd voor clusterknooppunten
  • Opstarttijd voor elke onderliggende run
  • Beschikbaarheid van functies

    Er zijn meer functies beschikbaar wanneer u de externe berekening gebruikt, zoals wordt weergegeven in de onderstaande tabel.

    Functie Extern Lokaal
    Gegevensstreaming (ondersteuning voor grote gegevens, maximaal 100 GB)
    Op DNN GEBASEERDE tekst featurization en training
    Out-of-the-box GPU-ondersteuning (training en deference)
    Ondersteuning voor afbeeldingsclassificatie en labels
    Auto-ARIMA-, Prognose- en ForecastTCN-modellen voor prognoses
    Meerdere runs/iteraties parallel
    Modellen met interpreteerbaarheid maken in de gebruikersinterface van AutoML Studio-webervaring
    Aanpassing van functie-engineering in de gebruikersinterface van de Studio-webervaring
    Azure ML hyperparameter-afstemming
    Ondersteuning voor Azure ML Pipeline-werkstroom
    Doorgaan met uitvoeren
    Prognose
    Experimenten maken en uitvoeren in notebooks
    Gegevens en metrische gegevens van het experiment registreren en visualiseren in de gebruikersinterface
    Gegevensbescherming

    Trainings-, validatie- en testgegevens

    Met geautomatiseerde ML u de trainingsgegevens voor het trainen van ML modellen en kunt u opgeven welk type modelvalidatie moet worden uitgevoerd. Geautomatiseerde ML voert modelvalidatie uit als onderdeel van de training. Dat wil zeggen dat geautomatiseerde ML validatiegegevens gebruikt om model-hyperparameters af te stemmen op basis van het toegepaste algoritme om de beste combinatie te vinden die het beste past bij de trainingsgegevens. Dezelfde validatiegegevens worden echter gebruikt voor elke iteratie van afstemming, wat modelevaluatievooroordelen introduceert, omdat het model blijft verbeteren en aan de validatiegegevens blijft aanpassen.

    Om te bevestigen dat dergelijke bias niet wordt toegepast op het uiteindelijke aanbevolen model, ondersteunt geautomatiseerde ML het gebruik van testgegevens om het uiteindelijke model te evalueren dat door geautomatiseerde ML aan het einde van uw experiment wordt aanbevolen. Wanneer u testgegevens op geeft als onderdeel van de configuratie van uw AutoML-experiment, wordt dit aanbevolen model standaard getest aan het einde van uw experiment (preview).

    Belangrijk

    Het testen van uw modellen met een testset om gegenereerde modellen te evalueren is een preview-functie. Deze mogelijkheid is een experimentele preview-functie en kan op elk moment worden gewijzigd.

    Meer informatie over het configureren van AutoML-experimenten voor het gebruik van testgegevens (preview) met de SDK of met Azure Machine Learning Studio.

    U kunt ook elk bestaand geautomatiseerd ML-model (preview)testen, inclusief modellen van onderliggende uitvoeringen, door uw eigen testgegevens op te geven of door een deel van uw trainingsgegevens te verwijderen.

    Functie-engineering

    Functie-engineering is het proces waarbij domeinkennis van de gegevens wordt gebruikt om functies te maken waarmee ML beter kunnen leren. In Azure Machine Learning worden schaal- en normalisatietechnieken toegepast om de feature engineering. Gezamenlijk worden deze technieken en feature engineering aangeduid als featurization.

    Voor geautomatiseerde machine learning wordt featurization automatisch toegepast, maar kan ook worden aangepast op basis van uw gegevens. Meer informatie over wat featurization is opgenomen.

    Notitie

    Geautomatiseerde machine learning (functienormalisatie, verwerking van ontbrekende gegevens, het converteren van tekst naar numerieke gegevens, enzovoort) maken deel uit van het onderliggende model. Wanneer u het model voor voorspellingen gebruikt, worden dezelfde featurization-stappen die tijdens de training worden toegepast, automatisch toegepast op uw invoergegevens.

    Automatische featurization (standaard)

    In elk geautomatiseerd machine learning experiment worden uw gegevens automatisch geschaald of genormaliseerd om algoritmen goed te laten presteren. Tijdens het trainen van het model wordt een van de volgende schaal- of normalisatietechnieken toegepast op elk model. Meer informatie over hoe AutoML helpt te voorkomen dat gegevens in uw modellen overfitting en onevenwichtigheid veroorzaken.

    Verwerking   &   schalen Beschrijving
    StandardScaleWrapper Functies standaardiseren door het gemiddelde te verwijderen en te schalen naar eenheidsvariantie
    MinMaxScalar Transformeert functies door elke functie te schalen op het minimum en maximum van die kolom
    MaxAbsScaler Elke functie schalen op de maximale absolute waarde
    RobustScalar Functies worden geschaald op hun kwantielbereik
    PCA Linear dimensionality reduction using Singular Value Decomposition of the data to project it to a lower dimensional space (Lineaire dimensionaliteitsvermindering met behulp van enkelvoudige waardeafleding van de gegevens om deze naar een lager dimensionale ruimte te projecteren)
    AfgekaptSVDWrapper Met deze transformator wordt lineaire dimensionaliteitsvermindering uitgevoerd door middel van afgekapte enkelvoudige waardedecompositie (SVD). In tegenstelling tot PCA centreert deze estimator de gegevens niet voordat de enkelvoudige waarde wordt ontleding bewerkt, wat betekent dat deze efficiënt kan werken met scipy.sparse-matrices
    SparseNormalizer Elk voorbeeld (dat wil zeggen, elke rij van de gegevensmatrix) met ten minste één niet-nul onderdeel wordt onafhankelijk van andere steekproeven opnieuw geschaald, zodat de norm (l1 of l2) gelijk is aan één

    Featurization aanpassen

    Er feature engineering extra technieken beschikbaar, zoals codering en transformaties.

    Schakel deze instelling in met:

    • Azure Machine Learning studio: Schakel Automatische featurization in de sectie Aanvullende configuratie weergeven in met deze stappen.

    • Python SDK: geef "feauturization": 'auto' / 'off' / 'FeaturizationConfig' op in uw AutoMLConfig-object. Meer informatie over het inschakelen van featurization.

    Ensemblemodellen

    Geautomatiseerde machine learning ondersteunt ensemblemodellen, die standaard zijn ingeschakeld. Ensemble learning verbetert machine learning resultaten en voorspellende prestaties door meerdere modellen te combineren in plaats van één model te gebruiken. De ensemble-iteraties worden weergegeven als de laatste iteraties van uw run. Geautomatiseerde machine learning maakt gebruik van stem- en stacking-ensemblemethoden voor het combineren van modellen:

    • Stemmen: voorspelt op basis van het gewogen gemiddelde van voorspelde klassekansen (voor classificatietaken) of voorspelde regressiedoelen (voor regressietaken).
    • Stapelen: stapelen combineert heterogene modellen en traint een metamodel op basis van de uitvoer van de afzonderlijke modellen. De huidige standaard metamodellen zijn LogisticRegression voor classificatietaken en ElasticNet voor regressie-/prognosetaken.

    Het selectiealgoritme van het Caruana-ensemble met gesorteerde ensemble-initialisatie wordt gebruikt om te bepalen welke modellen in het ensemble moeten worden gebruikt. Op hoog niveau initialiseert dit algoritme het ensemble met maximaal vijf modellen met de beste afzonderlijke scores en wordt gecontroleerd of deze modellen binnen de drempelwaarde van 5% van de beste score liggen om een slecht eerste ensemble te voorkomen. Vervolgens wordt voor elke ensemble-iteratie een nieuw model toegevoegd aan het bestaande ensemble en wordt de resulterende score berekend. Als een nieuw model de bestaande ensemblescore heeft verbeterd, wordt het ensemble bijgewerkt met het nieuwe model.

    Zie de how-to voor het wijzigen van standaardinstellingen voor ensembles in geautomatiseerde machine learning.

    AutoML & ONNX

    Met Azure Machine Learning kunt u geautomatiseerde ML om een Python-model te bouwen en dit te laten omzetten naar de ONNX-indeling. Zodra de modellen de ONNX-indeling hebben, kunnen ze worden uitgevoerd op verschillende platforms en apparaten. Meer informatie over het versnellen ML modellen met ONNX.

    Zie hoe u kunt converteren naar ONNX-indeling in dit Jupyter Notebook-voorbeeld. Ontdek welke algoritmen worden ondersteund in ONNX.

    De ONNX-runtime ondersteunt ook C#, zodat u het model dat automatisch is gebouwd in uw C#-apps kunt gebruiken zonder dat u hoeft te coderen of een van de netwerklatentie die REST-eindpunten introduceren. Meer informatie over het gebruik van een AutoML ONNX-model in een .NET-toepassing met ML.NET en het defereren van ONNX-modellen met de ONNX-runtime C#-API.

    Volgende stappen

    Er zijn meerdere resources om u op weg te helpen met AutoML.

    Zelfstudies/handleidingen

    Zelfstudies zijn end-to-end inleidende voorbeelden van AutoML-scenario's.

    Artikelen met meer informatie over welke functionaliteit geautomatiseerde ML biedt. Bijvoorbeeld:

    Voorbeelden van Jupyter-notebooks

    Bekijk gedetailleerde codevoorbeelden en gebruiksvoorbeelden in de GitHub notebookopslagplaats voor geautomatiseerde machine learning voorbeelden.

    Naslaginformagtie over de Python-SDK

    U kunt uw expertise op het gebied van SDK-ontwerppatronen en klassespecificaties verdiepen met de naslagdocumentatie voor AutoML-klassen.

    Notitie

    Automatische machine learning zijn ook beschikbaar in andere Microsoft-oplossingen, zoals ML.NET, HDInsight, Power BI en SQL Server