|
| 1 | +# What is Deep Learning? |
| 2 | + |
| 3 | +Deep Learning is an umbrella term for an approach to Machine Learning |
| 4 | +that makes use of "deep" Neural Networks, a kind of models originally |
| 5 | +inspired by the function of biological brains. These days, Deep |
| 6 | +Learning is probably the most visible area of Machine Learning, and it |
| 7 | +has seen amazing successes in areas like Computer Vision, Natural |
| 8 | +Language Processing and, in combination with Reinforcement Learning, |
| 9 | +more complicated settings such as game playing, decision making and |
| 10 | +simulation. |
| 11 | + |
| 12 | +A crucial element of the success of Deep Learning ("DL" in what |
| 13 | +follows) has been the existence of software frameworks and runtimes |
| 14 | +that facilitate the creation of Neural Network models and their |
| 15 | +execution for inference. Examples of such frameworks include |
| 16 | +Tensorflow, (Py)Torch and onnx. ML.NET provides access to some of |
| 17 | +these frameworks, while maintaining the familiar pipeline interface. |
| 18 | +In this way, users of ML.NET can take advantage of some |
| 19 | +state-of-the-art models and applications of DL at a lower cost than |
| 20 | +the steep learning curve learning that other DL frameworks require. |
| 21 | + |
| 22 | +# Deep Learning vs Machine Learning? |
| 23 | + |
| 24 | +As mentioned above, DL relies on "Neural Network" models, in contrast |
| 25 | +with "traditional" Machine Learning techniques (which use a wider |
| 26 | +variety of architectures, such as, for example, generalized linear |
| 27 | +models, decision trees or Support Vector Machines). The most |
| 28 | +immediate, practical implication of this difference is that DL methods |
| 29 | +may be better or worse suited for some kind of data. The performance |
| 30 | +of DL methods on images, on textual and on other non- or |
| 31 | +less-structured data has been well documented in the literature. |
| 32 | +Traditional Machine Learning methods such as gradient-boosted trees |
| 33 | +(XGBoost, LightGBM and CatBoost) seem to still have an edge when it |
| 34 | +comes to tabular data. The best approach is always to experiment with |
| 35 | +your particular data source and use case and determine for yourself, |
| 36 | +and ML.NET makes this experimentation relatively straightforward and |
| 37 | +pain-free. |
| 38 | + |
| 39 | +# Neural Network architectures |
| 40 | + |
| 41 | +A crucial differentiating characteristic of DL from other classes (or |
| 42 | +schools) of ML is the use of artificial Neural Networks as models. At |
| 43 | +a high-level, one can think of a Neural Network as a configuration of |
| 44 | +"processing units" where the output of each unit constitutes the input |
| 45 | +of another. Each of these units can take one or many inputs, and |
| 46 | +essentially carries out a weighted sum of its inputs, applies an |
| 47 | +offset (or "bias") and then a non-linear transformation function |
| 48 | +(called "activation"). Different arrangements of these relatively |
| 49 | +simple components have been proven surprisingly rich to describe |
| 50 | +decision boundaries in classification, regression functions and other |
| 51 | +structures central to ML tasks. |
| 52 | + |
| 53 | +The past decade has seen an explosion of use cases, applications and |
| 54 | +techniques of DL, each more impressive than the last, pushing the |
| 55 | +boundaries of what functionalities we thought a computer program could |
| 56 | +feature. This expansion is fueled by an increasing variety of |
| 57 | +operations that can be incorporated into Neural Networks, by a richer |
| 58 | +set of arrangments that these operations can be configured in and by |
| 59 | +improved computational support for these improvements. In general, we |
| 60 | +can categorize these new Neural Architectures, and their use cases |
| 61 | +they enable, in (a more complete description can be found [here](https://learn.microsoft.com/en-us/azure/machine-learning/concept-deep-learning-vs-machine-learning#artificial-neural-networks) ): |
| 62 | + |
| 63 | +* Feed-forward Neural Network |
| 64 | +* Convolutional Neural Network |
| 65 | +* Recurrent Neural Network |
| 66 | +* Generative Adversarial Network |
| 67 | +* Transformers |
| 68 | + |
| 69 | +# What can I use deep learning for? |
| 70 | + |
| 71 | +As stated above, the scope of application of DL techniques is rapidly |
| 72 | +expanding. DL architectures, however, have shown amazing |
| 73 | +(close-to-human in some cases) performance in tasks having to do with |
| 74 | +"unstructured data": images, audio, free-form text and the like. In |
| 75 | +this way, DL is constantly featured in image/audio classification and |
| 76 | +generation applications. When it comes to text processing, more |
| 77 | +generally Natural Language Processing, DL methods have shown amazing |
| 78 | +results in tasks like translation, classification, generation and |
| 79 | +similar. Some of the more spectacular, recent applications of ML, |
| 80 | +such as "[Stable Diffusion](https://en.wikipedia.org/wiki/Stable_Diffusion)" are powered by sophisticated, large Neural |
| 81 | +Network architectures. |
| 82 | + |
| 83 | +# Deep learning in ML.NET |
| 84 | + |
| 85 | +A central concern of DL is what Neural Network architecture (specific configuration of operations) will the model have, and to this end, DL frameworks like Tensorflow and Pytorch feature expressive Domain-Specific Languages to describe in detail such architectures. ML.NET departs from this practice and concentrates on the consumption of pre-trained models (i.e., architectures that have been specified *and* trained in other frameworks). |
| 86 | + |
| 87 | +# Train custom models |
| 88 | + |
| 89 | +# Image classification |
| 90 | + |
| 91 | +# Text classification (Needs tutorial) |
| 92 | +# Sentence Similarity (Needs tutorial - P1) |
| 93 | + |
| 94 | +# Consume pretrained models |
| 95 | + |
| 96 | +# TensorFlow https://learn.microsoft.com/en-us/dotnet/machine-learning/tutorials/text-classification-tf |
| 97 | +# ONNX https://github.com/dotnet/csharp-notebooks/blob/main/machine-learning/E2E-Text-Classification-API-with-Yelp-Dataset.ipynb |
0 commit comments