The document discusses machine learning for .NET developers using ML.NET. It begins with an introduction to machine learning and existing ML solutions for .NET developers. It then provides an overview of ML.NET, including how it can be used to build custom models for tasks like sentiment analysis, image classification, and recommendations. It demonstrates building a sentiment analysis model with ML.NET and discusses new APIs and features. The document concludes with information on the future of ML.NET, including additional tasks, deep learning with TensorFlow, and improved tooling.
4. Тема доклада
Тема доклада
Тема доклада
.NET LEVEL UP
Today we will talk …
.NET CONFERENCE #1 IN UKRAINE KYIV 2018
1. About Machine Learning
2. About ML.NET
3. Build ML.NET Hello World example
4. Deep dive in ML.NET current and future
6. .NET LEVEL UP
Machine Learning
“Programming the UnProgrammable”
.NET CONFERENCE #1 IN UKRAINE KYIV 2018
rooms, bedrooms, bathrooms
location, view, near school
footage
year built
garage, basement, patio
…
{f(x) {f(x)
7. .NET LEVEL UP
Machine Learning
“Programming the UnProgrammable”
.NET CONFERENCE #1 IN UKRAINE KYIV 2018
f(x)
Model
Machine Learning creates a
using this data
{
8. Many ML Tasks
Is this A or B? How much? How many? How is this organized?
Regression ClusteringClassification
And many more…
9. .NET LEVEL UP
Existing solutions for ML
.NET CONFERENCE #1 IN UKRAINE KYIV 2018
1. Python libraries: TensorFlow, scikit-learn, Caffe, ...
2. R, MATLAB, …
3. .NET: Azure Cognitive Services, ML.NET
VSPrebuild &
Pretrained
Custom
10. Pre-built ML models (i.e. Azure Cognitive Services)
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")
}));
96% positive
e.g. Sentiment Analysis using Azure Cognitive Services
11. Limitations with pre-built ML models
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
12. How the .NET team uses
Demo: GitHub Issue Classification
t WITH PASSION TO TECHNOLOGY
.NET CONFERENCE #1 IN UKRAINE, KYIV 2018
13. What is ML.NET
t WITH PASSION TO TECHNOLOGY
.NET CONFERENCE #1 IN UKRAINE, KYIV 2018
14. Тема доклада
Тема доклада
Тема доклада
.NET LEVEL UP
ML.NET
.NET CONFERENCE #1 IN UKRAINE KYIV 2018
Open source cross-platform .NET framework
for building custom models
Free
Flexible
Available offline
15. Windows 10 (Windows Defender)
Power Point (Design Ideas)
Excel (Chart Recommendations)
Bing Ads (Ad Predictions)
+ moreAzure Stream Analytics (Anomaly Detection)
Proven at Scale and Enterprise Ready
16. .NET LEVEL UP
Creating ML.NET Model
.NET CONFERENCE #1 IN UKRAINE KYIV 2018
Train Evaluate UseBuild
17. .NET LEVEL UP
Building ML.NET Model
.NET CONFERENCE #1 IN UKRAINE KYIV 2018
Build
1. Upload Data
2. Prepare Data
3. Choose Algorithm
18. ML.NET Model for
Sentiment Analysis
t WITH PASSION TO TECHNOLOGY
.NET CONFERENCE #1 IN UKRAINE, KYIV 2018
19. .NET LEVEL UP
Sentiment Analysis Problem
.NET CONFERENCE #1 IN UKRAINE KYIV 2018
Wow... Loved
this place
Crust is
not good
The selection on the
menu was great and
so were the prices
Would not
go back
20. .NET LEVEL UP
Sentiment Analysis Problem
.NET CONFERENCE #1 IN UKRAINE KYIV 2018
Wow... Loved
this place
Crust is
not good
The selection on the
menu was great and
so were the prices
Would not
go back
Waterfront view and
5 course dinner.
What else can I
wish for?!
?
21. Is this A or B?
Is this a positive review?
Yes or No
Problem Type - Classification
.NET CONFERENCE #1 IN UKRAINE KYIV 2018.NET LEVEL UP
22. Review Positive sentiment?
Wow... Loved this place. 1
Crust is not good. 0
The selection on the menu was great and so
were the prices.
1
Would not go back. 0
Features (input) Label (output)
Data
.NET CONFERENCE #1 IN UKRAINE KYIV 2018.NET LEVEL UP
23. Review
Wow... Loved this place.
Crust is not good.
The selection on the
menu was great and so
were the prices.
Would not go back.
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, …]
Preparing Data
.NET CONFERENCE #1 IN UKRAINE KYIV 2018.NET LEVEL UP
33. ONNX: Open and interoperable AI
.NET CONFERENCE #1 IN UKRAINE KYIV 2018.NET LEVEL UP
34. And more! Samples @ https://github.com/dotnet/machinelearning-samples
Customer segmentation
Recommendations
Predictive maintenance
Forecasting
Issue Classification
Sentiment Analysis
Image classification
Object detection
A few things you can do with ML.NET …
35. ML.NET 0.1
May 2018
ML.NET 0.2
June 2018
ML.NET 0.4
Aug 2018
ML.NET 0.3
July 2018
ML.NET 0.5
Sept 2018
ML.NET 0.6
Oct 2018
36. • Additional ML Tasks and Scenarios
• GUI to simplify ML tasks
• More Deep Learning with TensorFlow
• Scale-out on Azure
• Improved tooling in Visual Studio
• More support for F#
• Language innovations for .NET
What’s next with ML.NET?
.NET CONFERENCE #1 IN UKRAINE KYIV 2018.NET LEVEL UP
40. AUC: Explanation
True positive rate (TPR) =
False positive rate (FPR)=
The AUC value lies between 0.5 to 1 where 0.5 denotes
a bad classifier and 1 denotes an excellent classifier.
Hinweis der Redaktion
Eще один пример, где нужнен именно кастом МЛ – гитхаб лейблер