Geautomatiseerde machine learning (AutoML)?
VAN TOEPASSING OP: Python SDK azureml v1
Geautomatiseerde machine learning, ook wel geautomatiseerd ML of AutoML genoemd, is het automatiseren van de tijdrovende, iteratieve taken van het ontwikkelen van machine learning-modellen. Hiermee kunnen gegevenswetenschappers, analisten en ontwikkelaars ML-modellen bouwen met hoge schaal, efficiëntie en productiviteit en tegelijkertijd de kwaliteit van het model behouden. Geautomatiseerde ML in Azure Machine Learning is gebaseerd op een doorbraak van onze Microsoft Research-afdeling.
Traditionele machine learning-modelontwikkeling is resource-intensief, wat aanzienlijke kennis en tijd vereist om tientallen modellen te produceren en te vergelijken. Met geautomatiseerde machine learning versnelt u de tijd die nodig is om ML-modellen met een groot gemak en efficiëntie klaar te maken voor productie.
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 om inzicht te hebben in de beschikbaarheid van functies in elke ervaring (v1).
Voor klanten die ervaring hebben met code, Azure Machine Learning Python SDK. Aan de slag met zelfstudie: Geautomatiseerde machine learning gebruiken om taxitarieven (v1) te voorspellen.
Voor klanten met beperkte/geen code-ervaring, Azure Machine Learning-studio op https://ml.azure.com. Aan de slag met deze zelfstudies:
Experimentinstellingen
Met de volgende instellingen kunt u uw geautomatiseerde ML-experiment configureren.
De Python-SDK | De webervaring van Studio | |
---|---|---|
Gegevens splitsen in trainings-/validatiesets | ✓ | ✓ |
Ondersteunt ML-taken: classificatie, regressie, & prognose | ✓ | ✓ |
Ondersteunt Computer Vision-taken: afbeeldingsclassificatie, objectdetectie en exemplaarsegmentatie | ✓ | |
Optimaliseert op basis van primaire metrische gegevens | ✓ | ✓ |
Ondersteunt Azure Machine Learning-rekenkracht als rekendoel | ✓ | ✓ |
Prognose horizon, doelvertragingen en doorlopend venster configureren | ✓ | ✓ |
Afsluitcriteria instellen | ✓ | ✓ |
Gelijktijdige iteraties instellen | ✓ | ✓ |
Kolommen neerzetten | ✓ | ✓ |
Algoritmen blokkeren | ✓ | ✓ |
Kruisvalidatie | ✓ | ✓ |
Ondersteunt training op Azure Databricks-clusters | ✓ | |
Aangepaste functienamen weergeven | ✓ | |
Overzicht van featurization | ✓ | |
Featurization voor feestdagen | ✓ | |
Uitgebreidheidsniveaus van logboekbestanden | ✓ |
Modelinstellingen
Deze instellingen kunnen worden toegepast op het beste model als gevolg van uw geautomatiseerde ML-experiment.
De Python-SDK | De webervaring van Studio | |
---|---|---|
Beste modelregistratie, implementatie, uitleg | ✓ | ✓ |
Stem ensemble & stack ensemble modellen inschakelen | ✓ | ✓ |
Beste model weergeven op basis van niet-primaire metrische gegevens | ✓ | |
Compatibiliteit van ONNX-modellen in-/uitschakelen | ✓ | |
Het model testen | ✓ | ✓ (preview) |
Instellingen voor taakbeheer
Met deze instellingen kunt u uw experimenttaken en de onderliggende taken controleren en beheren.
De Python-SDK | De webervaring van Studio | |
---|---|---|
Overzichtstabel van taak | ✓ | ✓ |
Taken en onderliggende taken annuleren | ✓ | ✓ |
Kaders ophalen | ✓ | ✓ |
Taken onderbreken en hervatten | ✓ |
Wanneer gebruikt u AutoML: classificatie, regressie, prognose, computer vision & NLP
Pas geautomatiseerde ML toe wanneer u wilt dat Azure Machine Learning een model voor u traint en afstemt met behulp van de doelmetrieken die u opgeeft. Geautomatiseerde ML democratiseert het ontwikkelingsproces van het machine learning-model en stelt de gebruikers, ongeacht hun expertise op het gebied van gegevenswetenschap, in staat om een end-to-end machine learning-pijplijn te identificeren voor elk probleem.
ML-professionals en -ontwikkelaars in verschillende branches kunnen geautomatiseerde ML gebruiken om:
- ML-oplossingen 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 trainingsgegevens te gebruiken en deze kennis toepassen op nieuwe gegevens. Azure Machine Learning biedt specifieke featurizations voor deze taken, zoals tekst-featurizers van Deep Neural Network voor classificatie. Meer informatie over de opties voor featurization (v1).
Het belangrijkste doel van classificatiemodellen is om te voorspellen in welke categorieën nieuwe gegevens vallen op basis van de trainingsgegevens. Veelvoorkomende classificatievoorbeelden zijn fraudedetectie, handschriftherkenning en objectdetectie. Meer informatie en een voorbeeld bekijken op Een classificatiemodel maken met geautomatiseerde ML (v1).
Bekijk voorbeelden van classificatie en geautomatiseerde machine learning in deze Python-notebooks: Fraudedetectie, Marketingvoorspelling en Gegevensclassificatie nieuwsgroep
Regressie
Net als bij classificatie zijn regressietaken ook een algemene leertaak onder supervisie.
Afgezien van classificatie waarbij voorspelde uitvoerwaarden categorisch zijn, voorspellen regressiemodellen numerieke uitvoerwaarden op basis van onafhankelijke voorspellers. 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. Voorbeeld: de prijs van een auto op basis van functies zoals benzineverbruik en veiligheidsclassificatie. Meer informatie en bekijk een voorbeeld van regressie met geautomatiseerde machine learning (v1).
Bekijk voorbeelden van regressie en geautomatiseerde machine learning voor voorspellingen in deze Python-notebooks: CPU-prestatievoorspelling,
Prognoses met tijdreeksen
Het maken van prognoses maakt integraal onderdeel uit van elk bedrijf, of het nu gaat om omzet-, voorraad-, verkoop- of klantvraagprognoses. U kunt geautomatiseerde ML gebruiken om technieken en methoden van aanpak met elkaar te combineren om een aanbeveling voor een hoogwaardige tijdreeksprognose te krijgen. Meer informatie vindt u in deze procedure: geautomatiseerde machine learning voor tijdreeksprognoses (v1).
Een geautomatiseerd tijdreeksexperiment wordt behandeld als een multivariate regressieprobleem. Waarden uit de afgelopen tijdreeks worden 'pivoted' om samen met andere voorspellingsfactoren extra dimensies voor de regressor te worden. Deze benadering, in tegenstelling tot klassieke tijdreeksmethoden, heeft een voordeel van het natuurlijk 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 voorspellingshorizmen. Er zijn dus meer gegevens beschikbaar voor het schatten van modelparameters en het generaliseren van ongelezen reeksen wordt mogelijk.
Geavanceerde configuratie voor prognose omvat:
- vakantiedetectie en featurization
- time-series en DNN-cursisten (Auto-ARIMA, Prophet, ForecastTCN)
- veel modellen ondersteunen via groeperen
- kruisvalidatie rolling-origin
- configureerbare vertragingen
- functies voor aggregatie van doorlopende vensters
Bekijk voorbeelden van regressie en geautomatiseerde machine learning voor voorspellingen in deze Python-notebooks: Verkoopprognoses, Vraagprognose en Prognose van Dagelijkse actieve gebruikers van GitHub.
Computer Vision
Met ondersteuning voor Computer Vision-taken kunt u eenvoudig modellen genereren die zijn getraind op afbeeldingsgegevens voor scenario's zoals afbeeldingsclassificatie en objectdetectie.
Met deze mogelijkheid kunt u het volgende doen:
- Naadloos integreren met de mogelijkheid voor gegevenslabels van Azure Machine Learning
- Gelabelde gegevens gebruiken voor het genereren van afbeeldingsmodellen
- Optimaliseer de modelprestaties door het modelalgoritmen op te geven en de hyperparameters af te stemmen.
- Download of implementeer het resulterende model als een webservice in Azure Machine Learning.
- Operationaliseer op schaal, waarbij gebruik wordt gemaakt van de mogelijkheden van Azure Machine Learning MLOps en ML Pipelines (v1 ).
Het ontwerpen van AutoML-modellen voor vision-taken wordt ondersteund via de Azure Machine Learning Python SDK. De resulterende experimententaken, modellen en uitvoer kunnen worden geopend vanuit de gebruikersinterface van Azure Machine Learning-studio.
Meer informatie over het instellen van AutoML-training voor Computer Vision-modellen.
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. |
Instantiesegmentatie | Taken voor het identificeren van objecten in een afbeelding op pixelniveau, het tekenen van een veelhoek rond elk object in de afbeelding. |
Verwerking van natuurlijke taal: NLP
Met ondersteuning voor NLP-taken (Natural Language Processing) in geautomatiseerde ML kunt u eenvoudig modellen genereren die zijn getraind op tekstgegevens voor tekstclassificatie en scenario's voor benoemde entiteitsherkenning. Het ontwerpen van geautomatiseerde DOOR ML getrainde NLP-modellen wordt ondersteund via de Azure Machine Learning Python SDK. De resulterende experimententaken, modellen en uitvoer kunnen worden geopend vanuit de gebruikersinterface van Azure Machine Learning-studio.
De NLP-functie ondersteunt:
- End-to-end deep neural network NLP training met de nieuwste vooraf getrainde BERT-modellen
- Naadloze integratie met Azure Machine Learning-gegevenslabels
- Gelabelde gegevens gebruiken voor het genereren van NLP-modellen
- Meertalige ondersteuning met 104 talen
- Gedistribueerde training met Horovod
Meer informatie over het instellen van AutoML-training voor NLP-modellen (v1).
Hoe geautomatiseerde ML werkt
Tijdens de training maakt Azure Machine Learning een aantal pijplijnen parallel die verschillende algoritmen en parameters voor u proberen. De service doorloopt ML-algoritmen die zijn gekoppeld aan functieselecties, waarbij elke iteratie een model produceert met een trainingsscore. Hoe hoger de score, hoe beter het model wordt beschouwd als 'passend' voor uw gegevens. Deze wordt gestopt zodra deze voldoet aan de afsluitcriteria die in het experiment zijn gedefinieerd.
Met Behulp van Azure Machine Learning kunt u uw geautomatiseerde ML-trainingsexperimenten ontwerpen en uitvoeren met de volgende stappen:
Identificeer het ML-probleem dat moet worden opgelost: classificatie, prognose, regressie of computer vision.
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.
- Voor beperkte of geen code-ervaring kunt u de Azure Machine Learning-studio-webervaring uitproberen ophttps://ml.azure.com
- Voor Python-ontwikkelaars bekijkt u de Azure Machine Learning Python SDK (v1)
Geef de bron en indeling van de gelabelde trainingsgegevens op: Numpy-matrices of Pandas-dataframe
Configureer het rekendoel voor modeltraining, zoals uw lokale computer, Azure Machine Learning Computes, externe VM's of Azure Databricks met SDK v1.
Configureer de geautomatiseerde machine learning-parameters die bepalen hoeveel iteraties er zijn voor verschillende modellen, hyperparameterinstellingen, geavanceerde preprocessing/featurization en welke metrische gegevens moeten worden bekeken bij het bepalen van het beste model.
Dien de trainingstaak in.
De resultaten bekijken
In het volgende diagram ziet u dit proces.
U kunt ook de vastgelegde taakgegevens inspecteren, die metrische gegevens bevatten die tijdens de taak zijn verzameld. De trainingstaak produceert een geserialiseerd Python-object (.pkl
bestand) dat het model en de voorverwerking van gegevens bevat.
Hoewel het bouwen van modellen geautomatiseerd is, kunt u ook leren hoe belangrijk of relevante 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 rekenproces of een extern rekendoel voor geautomatiseerde ML-training.
- Lokale berekening: Training vindt plaats op uw lokale laptop of VM-rekenproces.
- 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 betrekking heeft op eerste verkenningen of demo's met behulp van kleine gegevens en korte treinen (d.w.w.v. seconden of een paar minuten per onderliggende taak), is training op uw lokale computer mogelijk een betere keuze. Er is geen installatietijd, de infrastructuurbronnen (uw pc of VM) zijn rechtstreeks beschikbaar.
- Kies een extern ML-rekencluster: als u traint met grotere gegevenssets, zoals bij het maken van productietrainingen die langere treinen nodig hebben, biedt externe berekening veel betere end-to-end-prestaties, omdat
AutoML
treinen parallel worden uitgevoerd op de knooppunten van het cluster. Op een externe berekening wordt de opstarttijd voor de interne infrastructuur ongeveer 1,5 minuten per onderliggende taak toegevoegd, 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 gebruik van lokale versus externe.
Voordelen (voordelen) | Nadelen (handicaps) | |
---|---|---|
Lokaal rekendoel | ||
Externe ML-rekenclusters |
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-BERT gebaseerde tekstmetrisatie en training | ✓ | |
Out-of-the-box GPU-ondersteuning (training en deductie) | ✓ | |
Ondersteuning voor afbeeldingsclassificatie en -labels | ✓ | |
Auto-ARIMA-, Prophet- en ForecastTCN-modellen voor prognose | ✓ | |
Meerdere taken/iteraties parallel | ✓ | |
Modellen maken met interpreteerbaarheid in de gebruikersinterface van AutoML Studio | ✓ | |
Aanpassing van functie-engineering in de gebruikersinterface van studio-webervaring | ✓ | |
Afstemming van Hyperparameter in Azure Machine Learning | ✓ | |
Werkstroomondersteuning voor Azure Machine Learning-pijplijn | ✓ | |
Een taak voortzetten | ✓ | |
Prognoses opstellen | ✓ | ✓ |
Experimenten maken en uitvoeren in notebooks | ✓ | ✓ |
De gegevens en metrische gegevens van het experiment registreren en visualiseren in de gebruikersinterface | ✓ | ✓ |
Ingebouwde beveiligingsegels voor gegevens | ✓ | ✓ |
Trainings-, validatie- en testgegevens
Met geautomatiseerde ML geeft u de trainingsgegevens op 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. Geautomatiseerde ML maakt gebruik van validatiegegevens om modelhypparameters 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, waardoor modelevaluatievooroordelen worden geïntroduceerd, omdat het model de validatiegegevens blijft verbeteren en aanpassen.
Om te bevestigen dat dergelijke vooroordelen niet worden toegepast op het uiteindelijke aanbevolen model, ondersteunt geautomatiseerde ML het gebruik van testgegevens om het uiteindelijke model te evalueren dat geautomatiseerde ML aan het einde van uw experiment aanbeveelt. Wanneer u testgegevens opgeeft 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 testgegevensset om gegenereerde modellen te evalueren, is een preview-functie. Deze mogelijkheid is een experimentele preview-functie en kan op elk gewenst moment worden gewijzigd.
Meer informatie over het configureren van AutoML-experimenten voor het gebruik van testgegevens (preview) met de SDK (v1) of met de Azure Machine Learning-studio.
U kunt ook elk bestaand geautomatiseerd ML-model (preview) (v1) testen, inclusief modellen van onderliggende taken, door uw eigen testgegevens op te geven of door een deel van uw trainingsgegevens apart te zetten.
Functie-engineering
Functie-engineering is het proces van het gebruik van domeinkennis van de gegevens om functies te maken die ML-algoritmen helpen beter te leren. In Azure Machine Learning worden schaal- en normalisatietechnieken toegepast om functie-engineering te vergemakkelijken. Gezamenlijk worden deze technieken en functie-engineering aangeduid als featurization.
Voor geautomatiseerde machine learning-experimenten wordt featurization automatisch toegepast, maar kan deze ook worden aangepast op basis van uw gegevens. Meer informatie over welke featurization is opgenomen (v1) en hoe AutoML helpt te voorkomen dat gegevens in uw modellen te veel passen en onevenwichtig zijn.
Notitie
Geautomatiseerde machine learning-featurisatiestappen (functienormalisatie, verwerking van ontbrekende gegevens, het converteren van tekst naar numeriek, enzovoort) worden onderdeel 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.
Featurization aanpassen
Er zijn ook aanvullende techniektechnieken voor functies beschikbaar, zoals codering en transformaties.
Schakel deze instelling in met:
Azure Machine Learning-studio: inschakelen Automatische featurisatie in de sectie Aanvullende configuratie weergeven met deze (v1) stappen.
Python SDK: Geef
"feauturization": 'auto' / 'off' / 'FeaturizationConfig'
op in uw AutoMLConfig-object . Meer informatie over het inschakelen van featurization (v1).
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 taak. Geautomatiseerde machine learning maakt gebruik van stem- en stacking ensemblemethoden voor het combineren van modellen:
- Stem: voorspelt op basis van het gewogen gemiddelde van voorspelde klassenkansen (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 standaardmetamodellen zijn LogisticRegression voor classificatietaken en ElasticNet voor regressie-/prognosetaken.
Het caruana ensembleselectie-algoritme met gesorteerde ensemble-initialisatie wordt gebruikt om te bepalen welke modellen binnen het ensemble moeten worden gebruikt. Op hoog niveau initialiseert dit algoritme het ensemble met maximaal vijf modellen met de beste individuele scores en controleert of deze modellen binnen 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 instructies (v1) voor het wijzigen van standaard-ensembleinstellingen in geautomatiseerde machine learning.
AutoML & ONNX
Met Azure Machine Learning kunt u geautomatiseerde ML gebruiken om een Python-model te bouwen en te laten converteren 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 van ML-modellen met ONNX.
Bekijk hoe u kunt converteren naar ONNX-indeling in dit Jupyter-notebookvoorbeeld. Meer informatie over welke algoritmen worden ondersteund in ONNX (v1).
De ONNX-runtime biedt ook ondersteuning voor C#, zodat u het model dat automatisch is gebouwd in uw C#-apps kunt gebruiken zonder dat u hoeft te worden hersteld of een van de netwerklatenties die REST-eindpunten introduceren. Meer informatie over het gebruik van een AutoML ONNX-model in een .NET-toepassing met ML.NET en het deducteren van ONNX-modellen met de ONNX Runtime C#-API.
Volgende stappen
Er zijn meerdere resources waarmee u aan de slag kunt met AutoML.
Zelfstudies/ procedures
Zelfstudies zijn end-to-end inleidende voorbeelden van AutoML-scenario's.
Volg voor een code eerst de zelfstudie: Een regressiemodel trainen met AutoML en Python (v1).
Zie de zelfstudie: Een classificatiemodel trainen zonder code in Azure Machine Learning-studio voor een ervaring met weinig of geen code.
Zie de zelfstudie: Een objectdetectiemodel trainen met AutoML en Python (v1) voor het gebruik van AutoML om Computer Vision-modellen te trainen.
Artikelen met procedures bieden aanvullende informatie over welke functionaliteit geautomatiseerde ML biedt. Bijvoorbeeld:
De instellingen voor automatische trainingsexperimenten configureren
Meer informatie over het trainen van prognosemodellen met tijdreeksgegevens (v1).
Meer informatie over het trainen van Computer Vision-modellen met Python (v1).
Meer informatie over het weergeven van de gegenereerde code op basis van uw geautomatiseerde ML-modellen.
Voorbeelden van Jupyter-notebooks
Bekijk gedetailleerde codevoorbeelden en gebruiksvoorbeelden in de GitHub notebookopslagplaats voor geautomatiseerde machine learning voorbeelden.
Naslaginformagtie over de Python-SDK
Verdiep uw expertise op het gebied van SDK-ontwerppatronen en klassespecificaties met de naslagdocumentatie van de AutoML-klasse.
Notitie
Geautomatiseerde machine learning-mogelijkheden zijn ook beschikbaar in andere Microsoft-oplossingen, zoals ML.NET, HDInsight, Power BI en SQL Server