Skip to content

Commit ce9938d

Browse files
Update WebClient to HttpClient implementations for downloading (WIP) (#6476)
* Initial structure and started fleshing out some sections * Some corrections and paragraph on DL usages * Starting fleshing out DL on ML.NET section * A HttpClient vs Webclient implementation * Removed download changes --------- Co-authored-by: Michael Sharp <[email protected]>
1 parent 1a905be commit ce9938d

File tree

1 file changed

+97
-0
lines changed

1 file changed

+97
-0
lines changed

docs/code/DeepLearningOverview.md

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
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

Comments
 (0)