|
| 1 | +# ML.NET 0.4 Release Notes |
| 2 | + |
| 3 | +Today we are releasing ML.NET 0.4. During this release we have started |
| 4 | +exploring new APIs for ML.NET that enable functionality that is missing from |
| 5 | +the current APIs. We welcome feedback and contributions to the |
| 6 | +conversation (relevant issues can be found [here](https://github.com/dotnet/machinelearning/projects/4)). While the |
| 7 | +focus has been on designing the new APIs, we have also moved several |
| 8 | +components from the internal codebase to ML.NET. |
| 9 | + |
| 10 | +### Installation |
| 11 | + |
| 12 | +ML.NET supports Windows, MacOS, and Linux. See [supported OS versions of .NET |
| 13 | +Core |
| 14 | +2.0](https://github.com/dotnet/core/blob/master/release-notes/2.0/2.0-supported-os.md) |
| 15 | +for more details. |
| 16 | + |
| 17 | +You can install ML.NET NuGet from the CLI using: |
| 18 | +``` |
| 19 | +dotnet add package Microsoft.ML |
| 20 | +``` |
| 21 | + |
| 22 | +From package manager: |
| 23 | +``` |
| 24 | +Install-Package Microsoft.ML |
| 25 | +``` |
| 26 | + |
| 27 | +### Release Notes |
| 28 | + |
| 29 | +Below are some of the highlights from this release. |
| 30 | + |
| 31 | +* Added SymSGD learner for binary classification |
| 32 | + ([#624](https://github.com/dotnet/machinelearning/pull/624)) |
| 33 | + |
| 34 | + * [SymSGD](https://arxiv.org/abs/1705.08030) is a technique for |
| 35 | + parallelizing |
| 36 | + [SGD](https://en.wikipedia.org/wiki/Stochastic_gradient_descent) |
| 37 | + (Stochastic Gradient Descent). This enables it to sometimes perform |
| 38 | + faster than existing SGD implementations (e.g. [Hogwild |
| 39 | + SGD](https://docs.microsoft.com/en-us/dotnet/api/microsoft.ml.trainers.stochasticgradientdescentbinaryclassifier?view=ml-dotnet)). |
| 40 | + * SymSGD is available for binary classification, but can be used in |
| 41 | + multiclass classification with |
| 42 | + [One-Versus-All](https://docs.microsoft.com/en-us/dotnet/api/microsoft.ml.models.oneversusall?view=ml-dotnet) |
| 43 | + * SymSGD requires adding the Microsoft.ML.HalLearners NuGet package to your project |
| 44 | + * The current implementation in ML.NET does not yet have multi-threading |
| 45 | + enabled due to build system limitations (tracked by |
| 46 | + [#655](https://github.com/dotnet/machinelearning/issues/655)), but |
| 47 | + SymSGD can still be helpful in scenarios where you want to try many |
| 48 | + different learners and limit each of them to a single thread. |
| 49 | + * Documentation can be found |
| 50 | + [here](https://docs.microsoft.com/en-us/dotnet/api/microsoft.ml.trainers.symsgdbinaryclassifier?view=ml-dotnet) |
| 51 | + |
| 52 | +* Added Word Embeddings Transform for text scenarios |
| 53 | + ([#545](https://github.com/dotnet/machinelearning/pull/545)) |
| 54 | + |
| 55 | + * [Word embeddings](https://en.wikipedia.org/wiki/Word_embedding) is a |
| 56 | + technique for mapping words or phrases to numeric vectors of relatively low |
| 57 | + dimension (in comparison with the high dimensional n-gram extraction). |
| 58 | + These numeric vectors are intended to capture some of the meaning of the |
| 59 | + words so they can be used for training a better model. As an example, |
| 60 | + SSWE (Sentiment-Specific Word Embedding) can be useful for sentiment |
| 61 | + related tasks. |
| 62 | + * This transform enables using pretrained models to get the embeddings |
| 63 | + (i.e. the embeddings are already trained and available for use). |
| 64 | + * Several options for pretrained embeddings are available: |
| 65 | + [GloVe](https://nlp.stanford.edu/projects/glove/), |
| 66 | + [fastText](https://en.wikipedia.org/wiki/FastText), and |
| 67 | + [SSWE](http://anthology.aclweb.org/P/P14/P14-1146.pdf). The pretrained model is downloaded automatically on first use. |
| 68 | + * Documentation can be found |
| 69 | + [here](https://docs.microsoft.com/en-us/dotnet/api/microsoft.ml.transforms.wordembeddings?view=ml-dotnet). |
| 70 | + |
| 71 | +* Improved support for F# by allowing use of property-based row classes ([#616](https://github.com/dotnet/machinelearning/pull/616)) |
| 72 | + |
| 73 | + * ML.NET now supports F# record types. |
| 74 | + * The ML.NET samples repository is being updated to include F# samples as part of [#36](https://github.com/dotnet/machinelearning-samples/pull/36). |
| 75 | + |
| 76 | +Additional issues closed in this milestone can be found |
| 77 | +[here](https://github.com/dotnet/machinelearning/milestone/3?closed=1). |
| 78 | + |
| 79 | +### Acknowledgements |
| 80 | + |
| 81 | +Shoutout to [dsyme](https://github.com/dsyme), |
| 82 | +[SolyarA](https://github.com/SolyarA), |
| 83 | +[dan-drews](https://github.com/dan-drews), |
| 84 | +[bojanmisic](https://github.com/bojanmisic), |
| 85 | +[jwood803](https://github.com/jwood803), |
| 86 | +[sharwell](https://github.com/sharwell), |
| 87 | +[JoshuaLight](https://github.com/JoshuaLight), and the ML.NET team for their |
| 88 | +contributions as part of this release! |
0 commit comments