-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Add ML.NET Roadmap #30
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
63e56f2
Add ML.NET Roadmap
glebuk 2430f09
Fix the VS version number
glebuk 5148085
Merge branch 'master' of https://github.com/dotnet/machinelearning
glebuk 39446f4
Replace tabs with spaces
glebuk 4a3a6cc
fixed minor typos
glebuk File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,95 @@ | ||
# The ML.NET Roadmap | ||
|
||
The goal of ML.NET project is to provide an easy to use, .NET-friendly ML platform. This document describes the tentative plan for the project in the short and long-term. | ||
|
||
ML.NET is a community effort and we welcome community feedback on our plans. The best way to give feedback is to open an issue in this repo. It's always a good idea to have a discussion before embarking on a large code change to make sure there is not duplicated effort. | ||
Many of the features listed on the roadmap already exist in the internal version of the code-base. They are marked with (*). We plan to release more and more internal features to Github over time. | ||
|
||
In the meanwhile, we are looking for contributions. An easy place to start is to look at _up-for-grabs_ issues on [Github](https://github.com/dotnet/machinelearning/issues?q=is%3Aopen+is%3Aissue+label%3Aup-for-grabs) | ||
|
||
## Short Term | ||
### Training Improvements | ||
* Improved public API for training and inference | ||
* Enhanced tests and scenarios | ||
* Additional Learners | ||
* [LibSVM](https://www.csie.ntu.edu.tw/~cjlin/libsvm/) for anomaly detection (*) | ||
* [LightGBM](https://github.com/Microsoft/LightGBM) - a high-performance boosted decision tree (*) | ||
* Additional Learning Tasks (*) | ||
* _Ranking_ - problem where the goal is to automatically sort (rank) instances within a group based on ranked examples in training data | ||
* _Anomaly Detection_ - is also known as _outlier detection_. It is a task to identify items, events or observations which do not conform to an expected pattern in the dataset. | ||
* _Quantile Regression_ is a type of regression analysis. Whereas regression results in estimates that approximate the conditional mean of the response variable given certain values of the predictor variables, quantile regression aims at estimating either the conditional median or other quantiles of the response variable | ||
* Additional Data source support (*) | ||
* Apache Parquet | ||
* Native Binary high-performance format | ||
|
||
### Featurization Improvements | ||
* Text (*) | ||
* Natural language text preprocessing such as tokenization, part-of-speech tagging, and sentence breaking | ||
* Pre-trained text models that can be used for extracting of semantic or sentiment features from text | ||
* Image (*) | ||
* Image preprocessing such as loading, resizing, and normalization if images | ||
* Image featurization, including industry-standard pre-trained ImageNet neural models, such as ResNet and AlexNet | ||
|
||
### Trained Model Management | ||
* Export models to [ONNX](https://github.com/onnx/models) (*) | ||
|
||
### GUI | ||
* Release the Model Builder tool to ease model development (*) | ||
* Design improvements to make the design adhere better to Fluent principles | ||
* Add a view for an easier comparison of several experiments | ||
* Ability to select the best performing pipeline, by sweeping transforms, the same way learners are swept. | ||
|
||
## Longer Term | ||
|
||
### Training Improvements | ||
* Add more learners, perhaps, including: (*) | ||
* Generative Additive Models | ||
* [SymSGD](https://arxiv.org/pdf/1705.08030.pdf) -a fast linear SGD learner | ||
* Factorization Machines | ||
* [ProtoNN and Bonsaii](https://www.microsoft.com/en-us/research/project/resource-efficient-ml-for-the-edge-and-endpoint-iot-devices/) for compact and effecient models | ||
* Integration with other ML packages | ||
* Accord.NET | ||
* etc. | ||
* Deep Learning Support | ||
* Integrate with leading DNN package(s) | ||
* Support for transfer learning | ||
* Hybrid training of pipelines containing both DNN and non-DNN predictors | ||
* Additional ML tasks (*) | ||
* _Recommendation_ - Is a problem that can be phrased a: "For a given user, predict the ratings this user would give to the items that they have not explicitly rated yet" | ||
* _Anomaly Detection_, also known as _outlier detection_. It is a task to identify items, events or observations which do not conform to an expected pattern in the dataset. Typical examples are: detecting credit card fraud, medical problems or errors in text. Anomalies are also referred to as outliers, �novelties, noise, deviations and exceptions | ||
* _Sequence Classification_ - learns from a series of examples in a sequence, and each item is assigned a distinct label, akin to a multiclass classification task | ||
* Additional Data source support | ||
* Data from SQL Databases, such as SQL Server | ||
* Data located on the cloud | ||
* Distributed Training | ||
* Easily train models on the cloud | ||
* Whole-pipeline optimizations for both training and inference | ||
* Automation of more data science tasks | ||
* Additional Trainers | ||
* Additional tasks | ||
|
||
### Featurization Improvements | ||
* Improved data wrangling support | ||
* Add auto-suggestion of training pipelines. The technology will provide intelligent ```LearningPipeline``` suggestions based on training data attributes (*) | ||
* Additional natural language text preprocessing | ||
* Time series and forecasting | ||
* Support for Video, audio, and other data types | ||
|
||
### Trained Model Management | ||
* Model operationalization in the Cloud | ||
* Model deployment on mobile platforms | ||
* Ability to run [ONNX](https://github.com/onnx/models) models in the ```LearningPipeline``` | ||
* Support for the next version of ONNX | ||
* Model deployment to IOT devices | ||
|
||
### GUI Improvements | ||
* Usability improvements | ||
* Support of additional ML.NET features | ||
* Improved code generation for training and inference | ||
* Run the pipelines rather than just suggesting them; present to the user the pipelines and the metrics generated from running. | ||
* Distributed runs, rather than sequential. | ||
|
||
### Other | ||
* Support for additional languages | ||
* Published reproducible benchmarks against industry-leading ML toolkits on a variety of tasks and datasets | ||
|
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Type-o: if => of