You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: lessons/2-Symbolic/README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@
6
6
7
7
The quest for artificial intelligence is based on a search for knowledge, to make sense of the world similar to how humans do. But how can you go about doing this?
In the early days of AI, the top-down approach to creating intelligent systems (discussed in the previous lesson) was popular. The idea was to extract the knowledge from people into some machine-readable form, and then use it to automatically solve problems. This approach was based on two big ideas:
One of the first attempts to implement something similar to a modern neural network was done by Frank Rosenblatt from Cornell Aeronautical Laboratory in 1957. It was a hardware implementation called "Mark-1", designed to recognize primitive geometric figures, such as triangles, squares and circles.
6
6
@@ -76,7 +76,7 @@ In this lesson, you learned about a perceptron, which is a binary classification
76
76
77
77
If you'd like to try to build your own perceptron, try [this lab on Microsoft Learn](https://docs.microsoft.com/en-us/azure/machine-learning/component-reference/two-class-averaged-perceptron?WT.mc_id=academic-57639-dmitryso) which uses the [Azure ML designer](https://docs.microsoft.com/en-us/azure/machine-learning/concept-designer?WT.mc_id=academic-57639-dmitryso).
@@ -64,15 +64,15 @@ Note that the left-most part of all those expressions is the same, and thus we c
64
64
65
65
## Conclusion
66
66
67
-
In this lesson, we have built our own neural network library, and we have used it for a simple two-dimensional classification task.
67
+
In this lesson, we have built our own neural network library, and we have used it for a simple two-dimensional classification task.
68
68
69
69
## 🚀 Challenge
70
70
71
-
In the accompanying notebook, you will implement your own framework for building and training multi-layered perceptrons. You will be able to see in detail how modern neural networks operate.
71
+
In the accompanying notebook, you will implement your own framework for building and training multi-layered perceptrons. You will be able to see in detail how modern neural networks operate.
72
72
73
73
Proceed to the [OwnFramework](OwnFramework.ipynb) notebook and work through it.
Copy file name to clipboardExpand all lines: lessons/3-NeuralNetworks/05-Frameworks/Overfitting.md
+7-4Lines changed: 7 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -25,7 +25,7 @@ It is very important to strike a correct balance between the richness of the mod
25
25
26
26
As you can see from the graph above, overfitting can be detected by a very low training error, and a high validation error. Normally during training we will see both training and validation errors starting to decrease, and then at some point validation error might stop decreasing and start rising. This will be a sign of overfitting, and the indicator that we should probably stop training at this point (or at least make a snapshot of the model).
27
27
28
-

28
+

29
29
30
30
## How to prevent overfitting
31
31
@@ -38,10 +38,11 @@ If you can see that overfitting occurs, you can do one of the following:
38
38
## Overfitting and Bias-Variance Tradeoff
39
39
40
40
Overfitting is actually a case of a more generic problem in statistics called [Bias-Variance Tradeoff](https://en.wikipedia.org/wiki/Bias%E2%80%93variance_tradeoff). If we consider the possible sources of error in our model, we can see two types of errors:
41
+
41
42
***Bias errors** are caused by our algorithm not being able to capture the relationship between training data correctly. It can result from the fact that our model is not powerful enough (**underfitting**).
42
43
***Variance errors**, which are caused by the model approximating noise in the input data instead of meaningful relationship (**overfitting**).
43
44
44
-
During training, bias error decreases (as our model learns to approximate the data), and variance error increases. It is important to stop training - either manually (when we detect overfitting) or automatically (by introducing regularization) - to prevent overfitting.
45
+
During training, bias error decreases (as our model learns to approximate the data), and variance error increases. It is important to stop training - either manually (when we detect overfitting) or automatically (by introducing regularization) - to prevent overfitting.
45
46
46
47
## Conclusion
47
48
@@ -51,16 +52,18 @@ In this lesson, you learned about the differences between the various APIs for t
51
52
52
53
In the accompanying notebooks, you will find 'tasks' at the bottom; work through the notebooks and complete the tasks.
While the `numpy` library can do the first part, we need some mechanism to compute gradients. In [our framework](../04-OwnFramework/OwnFramework.ipynb) that we have developed in the previous section we had to manually program all derivative functions inside the `backward` method, which does backpropagation. Ideally, a framework should give us the opportunity to compute gradients of *any expression* that we can define.
**High-level APIs** pretty much consider neural networks as a **sequence of layers**, and make constructing most of the neural networks much easier. Training the model usually requires preparing the data and then calling a `fit` function to do the job.
25
25
26
-
The high-level API allows you to construct typical neural networks very quickly without worrying about lots of details. At the same time, low-level API offer much more control over the training process, and thus they are used a lot in research, when you are dealing with new neural network architectures.
26
+
The high-level API allows you to construct typical neural networks very quickly without worrying about lots of details. At the same time, low-level API offer much more control over the training process, and thus they are used a lot in research, when you are dealing with new neural network architectures.
27
27
28
28
It is also important to understand that you can use both APIs together, eg. you can develop your own network layer architecture using low-level API, and then use it inside the larger network constructed and trained with the high-level API. Or you can define a network using the high-level API as a sequence of layers, and then use your own low-level training loop to perform optimization. Both APIs use the same basic underlying concepts, and they are designed to work well together.
Copy file name to clipboardExpand all lines: lessons/3-NeuralNetworks/05-Frameworks/lab/README.md
+1-2Lines changed: 1 addition & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@ Lab Assignment from [AI for Beginners Curriculum](https://github.com/microsoft/a
4
4
5
5
## Task
6
6
7
-
Solve two classification problems using single- and multi-layered fully-connected networks using PyTorch or TensorFlow:
7
+
Solve two classification problems using single and multi-layered fully-connected networks using PyTorch or TensorFlow:
8
8
9
9
1.**[Iris classification](https://en.wikipedia.org/wiki/Iris_flower_data_set)** problem - an example of problem with tabular input data, which can be handled by classical machine learning. You goal would be to classify irises into 3 classes, based on 4 numeric parameters.
10
10
1.**MNIST** handwritten digit classification problem which we have seen before.
@@ -14,4 +14,3 @@ Try different network architectures to achieve the best accuracy you can get.
14
14
## Stating Notebook
15
15
16
16
Start the lab by opening [LabFrameworks.ipynb](LabFrameworks.ipynb)
Copy file name to clipboardExpand all lines: lessons/4-ComputerVision/07-ConvNets/CNN_Architectures.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -41,3 +41,5 @@ Here is [a good blog post](https://medium.com/analytics-vidhya/talented-mr-1x1-c
41
41
MobileNet is a family of models with reduced size, suitable for mobile devices. Use them if you are short in resources, and can sacrifice a little bit of accuracy. The main idea behind them is so-called **depthwise separable convolution**, which allows representing convolution filters by a composition of spatial convolutions and 1x1 convolution over depth channels. This significantly reduces the number of parameters, making the network smaller in size, and also easier to train with less data.
42
42
43
43
Here is [a good blog post on MobileNet](https://medium.com/analytics-vidhya/image-classification-with-mobilenet-cc6fbb2cd470).
0 commit comments