2020
Netcoreconf
Getting started with ML.Net
and AutoML
Bruno Capuano
Microsoft AI MVP - Innovation Lead
@elbruno
#netcoreconf
Sponsors
Excessive use of
crappy
animations and
demos!
https://wallup.net/dark-horror-evil-sign-text-zombie/
Find my cat …
Deep Neural Network: Cat vs Dog
https://becominghuman.ai/building-an-image-classifier-using-deep-learning-in-python-totally-from-a-beginners-perspective-be8dbaf22dd8
Computer Vision
Why is this hard?
You see this:
But the camera sees this:
Computer Vision
DESKTOP CLOUDWEB MOBILE ML
.NET
IoTGAMING
Your platform for building anything
Windows 10 (Windows Defender)
Power Point (Design Ideas)
Excel (Chart Recommendations)
Bing Ads (Ad Predictions)
+ more
Azure Stream Analytics (Anomaly Detection)
Power BI (Key Influencers)
ML.NET is proven at scale, enterprise ready
Proven & Extensible
Open Source & Cross platform
dot.net/ml
Build your own
Developer Focused
ML.NET is a machine learning framework
made for .NET developers
And many more examples
@ https://github.com/dotnet/machinelearning-samples
Customer segmentation
Recommendations
Predictive maintenance
Forecasting
Issue Classification
Ranking news/topics
Image classification
Sentiment Analysis
Machine Learning scenarios with ML.NET
Easy / Less Control Full Control / Harder
Vision Speech Language
Knowledge SearchLabs
TextAnalyticsAPI client = new TextAnalyticsAPI();
client.AzureRegion = AzureRegions.Westus;
client.SubscriptionKey = "1bf33391DeadFish";
client.Sentiment(
new MultiLanguageBatchInput(
new List<MultiLanguageInput>()
{
new MultiLanguageInput("en","0",
"This is a great vacuum cleaner")
}));
e.g. Sentiment Analysis using Azure Cognitive Services
96% positive
Pre-built machine learning models
Easy / Less Control Full Control / Harder
TextAnalyticsAPI client = new TextAnalyticsAPI();
client.AzureRegion = AzureRegions.Westus;
client.SubscriptionKey = "1bf33391DeadFish";
client.Sentiment(
new MultiLanguageBatchInput(
new List<MultiLanguageInput>()
{
new MultiLanguageInput("en","0",
"This vacuum cleaner sucks so much dirt")
}));
e.g. Sentiment Analysis using Azure Cognitive Services
9% positive
Vision Speech Language
Knowledge SearchLabs
Limitations with pre-built machine learning
models
Load Data
Extract
Features
Model
Consumption
Train
Model
Evaluate
Model
Prepare Your Data Build & Train Run
Machine Leaning workflow
Machine Learning.Net
Getting Started with Sentiment Analysis
Comment Toxic? (Sentiment)
==RUDE== Dude, you are rude … 1
== OK! == IM GOING TO VANDALIZE … 1
I also found use of the word "humanists” confusing … 0
Oooooh thank you Mr. DietLime … 0
Wikipedia detox data at https://figshare.com/articles/Wikipedia_Talk_Labels_Personal_Attacks/4054689
Features (input) Label (output)
Sentiment Analysis
Prepare Your Data
Example
Comment Toxic? (Sentiment)
==RUDE== Dude, you are rude … 1
== OK! == IM GOING TO VANDALIZE … 1
I also found use of the word "humanists” confusing … 0
Oooooh thank you Mr. DietLime … 0
Important concepts: Data
Prepare Your Data
Text Featurizer
Featurized Text
[0.76, 0.65, 0.44, …]
[0.98, 0.43, 0.54, …]
[0.35, 0.73, 0.46, …]
[0.39, 0, 0.75, …]
Example
Text
==RUDE== Dude, you are rude …
== OK! == IM GOING TO VANDALIZE …
I also found use of the word "humanists” …
Oooooh thank you Mr. DietLime …
Important concepts: Transformer
Build & Train
Example
Estimator
Comment Toxic? (Sentiment)
==RUDE== Dude, you … 1
== OK! == IM GOING … 1
I also found use of the … 0
Oooooh thank you Mr. … 0
Important concepts: Estimator
Comment
==RUDE== Dude, you …
Prediction Function
Predicted Label – Toxic? (Sentiment)
1
Run
Example
Important concepts: Prediction Function
Demo: Sentiment Analysis
MakeMagicHappen();
https://www.avanade.com/AI
Machine Learning.Net
Anomaly Detection
Anomaly Detection
Anomaly detection detects data
points in data that does not fit well
with the rest of the data.
It has a wide range of applications
such as fraud detection, surveillance,
diagnosis, data cleanup, and
predictive maintenance.
Anomaly Detection
Hello World
MakeMagicHappen();
https://www.avanade.com/AI
Load Data
Extract
Features
Model
Consumption
Train
Model
Evaluate
Model
Prepare Your Data Build & Train Run
Machine Leaning workflow
?
Machine
Learning
Machine Learning.Net
AutoML and Model Builder
AutoML
Model
Builder
ML.NET Tooling
ML.NET CLI global tool accelerates productivity
How much is the taxi fare for 1 passenger going from Burlington to Toronto?
ML.NET CLI global tool accelerates productivity
AutoML with ML.NET
Criterion
Loss
Min Samples Split
Min Samples Leaf
XYZ
Parameter 1
Parameter 2
Parameter 3
Parameter 4
…
Distance
Trip time
Car type
Passengers
Time of day
…
Gradient Boosted
Nearest Neighbors
SGD
Bayesian Regression
LGBM
…
Distance Gradient Boosted
Model
Car type
Passengers
Getting started w/machine learning can be hard
ML.NET takes the guess work out of data prep,
feature selection & hyperparameter tuning
Which algorithm? Which parameters?Which features?
Getting started w/machine learning can be
hard
N Neighbors
Weights
Metric
P
ZYX
Criterion
Loss
Min Samples Split
Min Samples Leaf
XYZ
Which algorithm? Which parameters?Which features?
Distance
Trip time
Car type
Passengers
Time of day
…
Gradient Boosted
Nearest Neighbors
SGD
Bayesian Regression
LGBM
…
Nearest Neighbors
Model
Iterate
Gradient BoostedDistance
Car brand
Year of make
Car type
Passengers
Trip time
Getting started w/machine learning can be hard
ML.NET takes the guess work out of data prep,
feature selection & hyperparameter tuning
Getting started w/machine learning can be
hard
Which algorithm? Which parameters?Which features?
Iterate
Getting started w/machine learning can be hard
ML.NET takes the guess work out of data prep,
feature selection & hyperparameter tuning
Getting started w/machine learning can be
hard
25%40%70%
25%
95%
25% 25%
25%
25%
40%
40%
40%
40%
70%
70%
70%Enter data
Define goals
Apply constraints
Input Intelligently test multiple models in parallel
Optimized model
95%
ML.NET accelerates model development
70%95% Feature importance
Distance
Trip time
Car type
Passengers
Time of day
0 1
Model B (70%)
Distance
0 1
Trip time
Car type
Passengers
Time of day
Feature importance Model A (95%)
ML.NET accelerates model development
with model explainability
ML.NET accelerates model development
Demo: Auto ML
MakeMagicHappen();
https://www.avanade.com/AI
# STEP 1: Load data
IDataView trainingDataView = mlContext.Data.LoadFromTextFile<TaxiTrip>( ... )
IDataView testDataView = mlContext.Data.LoadFromTextFile<TaxiTrip>( ... )
ConsoleHelper.ShowDataViewInConsole(mlContext, trainingDataView)
# STEP 2: Initialize user-defined progress handler that AutoML will invoke after each model
var progressHandler = new RegressionExperimentProgressHandler()
# STEP 3: Run AutoML regression experiment
ExperimentResult<RegressionMetrics> experimentResult = mlContext.Auto()
.CreateRegressionExperiment(ExperimentTime)
.Execute(trainingDataView, LabelColumnName, progressHandler: progressHandler)
PrintTopModels(experimentResult)
# STEP 4: Evaluate the model on test data
RunDetail<RegressionMetrics> best = experimentResult.BestRun
ITransformer trainedModel = best.Model
IDataView predictions = trainedModel.Transform(testDataView)
# STEP 5: Save trained model to a .ZIP file
mlContext.Model.Save(trainedModel, trainingDataView.Schema, ModelPath)
Demo: Auto ML
MakeMagicHappen();
https://www.avanade.com/AI
Goku Track!
Try ML.NET today!
http://dot.net/ml
http://aka.ms/mlnetsamples
http://aka.ms/mlnetdocs
http://aka.ms/mlnet
https://aka.ms/mlnetprod
#netcoreconf
Sponsors
Más información:
info@netcoreconf.com
@Netcoreconf
Visítanos en:
netcoreconf.com

2020 04 04 NetCoreConf - Machine Learning.Net

Editor's Notes