@elbruno
Excessive use
of crappy
animations
and demos!
Bruno Capuano
Innovation Lead @Avanade
@elbruno | http://elbruno.com
Machine Learning.Net
@elbruno
Agent Applications Services Infrastructure
Microsoft AI Portfolio
Cortana Office 365
Dynamics 365
SwiftKey
Pix
Customer Service
and Support
Bot Framework
Cognitive Services
Cortana Intelligence
Cognitive Toolkit
Azure Machine
Learning
Azure N Series
FPGA
People
@elbrunoŠ2017 Avanade Inc. All Rights Reserved.
@elbruno
DESKTOP CLOUDWEB MOBILE ML
.NET
IoTGAMING
Your platform for building anything
@elbruno
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
@elbruno
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
@elbruno
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
@elbruno
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
@elbruno
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
@elbruno
Load Data
Extract
Features
Model
Consumption
Train
Model
Evaluate
Model
Prepare Your Data Build & Train Run
Machine Leaning workflow
Global AI Night – Machine Learning.Net
Getting Started with Sentiment Analysis
@elbruno
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
@elbruno
Is this A or B? Is this a toxic comment?
Yes or no
Sentiment analysis explained
@elbruno
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
@elbruno
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
@elbruno
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
@elbruno
Comment
==RUDE== Dude, you …
Prediction Function
Predicted Label – Toxic? (Sentiment)
1
Run
Example
Important concepts: Prediction Function
@elbruno
Demo: Sentiment Analysis
MakeMagicHappen();
https://www.avanade.com/AI
Global AI Night – Machine Learning.Net
AutoML and Model Builder
@elbruno
AutoML
Model
Builder
ML.NET Tooling
ML.NET CLI global tool accelerates productivity
@elbruno
@elbruno
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
@elbruno
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
@elbruno
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
@elbruno
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
@elbruno
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
@elbruno
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
@elbruno
# 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)
@elbruno
Demo: Auto ML
MakeMagicHappen();
https://www.avanade.com/AI
@elbruno
Try ML.NET today!
http://dot.net/ml
http://aka.ms/mlnetsamples
http://aka.ms/mlnetdocs
http://aka.ms/mlnet
https://aka.ms/mlnetprod
@elbruno
Bruno Capuano
Innovation Lead @Avanade
@elbruno | http://elbruno.com
Q&A
Thanks!
2019 09 05 Global AI Night Toronto - Machine Learning.Net

2019 09 05 Global AI Night Toronto - Machine Learning.Net

  • 3.
  • 4.
    Bruno Capuano Innovation Lead@Avanade @elbruno | http://elbruno.com Machine Learning.Net
  • 5.
    @elbruno Agent Applications ServicesInfrastructure Microsoft AI Portfolio Cortana Office 365 Dynamics 365 SwiftKey Pix Customer Service and Support Bot Framework Cognitive Services Cortana Intelligence Cognitive Toolkit Azure Machine Learning Azure N Series FPGA People
  • 6.
    @elbrunoŠ2017 Avanade Inc.All Rights Reserved.
  • 7.
    @elbruno DESKTOP CLOUDWEB MOBILEML .NET IoTGAMING Your platform for building anything
  • 8.
    @elbruno Windows 10 (WindowsDefender) 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
  • 9.
    @elbruno Proven & Extensible OpenSource & Cross platform dot.net/ml Build your own Developer Focused ML.NET is a machine learning framework made for .NET developers
  • 10.
    @elbruno And many moreexamples @ 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
  • 11.
    @elbruno Easy / LessControl 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
  • 12.
    @elbruno Easy / LessControl 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
  • 13.
  • 14.
    Global AI Night– Machine Learning.Net Getting Started with Sentiment Analysis
  • 15.
    @elbruno 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
  • 16.
    @elbruno Is this Aor B? Is this a toxic comment? Yes or no Sentiment analysis explained
  • 17.
    @elbruno Prepare Your Data Example CommentToxic? (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
  • 18.
    @elbruno Prepare Your Data TextFeaturizer 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
  • 19.
    @elbruno Build & Train Example Estimator CommentToxic? (Sentiment) ==RUDE== Dude, you … 1 == OK! == IM GOING … 1 I also found use of the … 0 Oooooh thank you Mr. … 0 Important concepts: Estimator
  • 20.
    @elbruno Comment ==RUDE== Dude, you… Prediction Function Predicted Label – Toxic? (Sentiment) 1 Run Example Important concepts: Prediction Function
  • 21.
  • 22.
    Global AI Night– Machine Learning.Net AutoML and Model Builder
  • 23.
    @elbruno AutoML Model Builder ML.NET Tooling ML.NET CLIglobal tool accelerates productivity
  • 24.
  • 25.
    @elbruno How much isthe taxi fare for 1 passenger going from Burlington to Toronto? ML.NET CLI global tool accelerates productivity AutoML with ML.NET
  • 26.
    @elbruno Criterion Loss Min Samples Split MinSamples 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
  • 27.
    @elbruno N Neighbors Weights Metric P ZYX Criterion Loss Min SamplesSplit 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
  • 28.
    @elbruno Which algorithm? Whichparameters?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
  • 29.
    @elbruno 25%40%70% 25% 95% 25% 25% 25% 25% 40% 40% 40% 40% 70% 70% 70%Enter data Definegoals Apply constraints Input Intelligently test multiple models in parallel Optimized model 95% ML.NET accelerates model development
  • 30.
    @elbruno 70%95% Feature importance Distance Triptime 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
  • 31.
    @elbruno # 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)
  • 32.
  • 33.
  • 34.
    @elbruno Bruno Capuano Innovation Lead@Avanade @elbruno | http://elbruno.com Q&A Thanks!

Editor's Notes