Fastbook
18 important questions on Fastbook
What is deep learning?
- Deep learning is a computer technique to extract and transform data by using multiple layers of neural networks.
- Each of these layers takes its inputs from previous layers and progressively refines them.
- The layers are trained by algorithms that minimize their errors and improve their accuracy.
- In this way, the network learns to perform a specified task.
How was the idea for a neural network born?
- McCulloch and Pitts implemented a copy of a real neuron which could perform certain tasks.
- The all-or-none principle of real neurons reminded them of propositional logic and inspired them to implement this in a computer, using addition and thresholding.
- Rosenblatt was the first actually build a machine according the the principles described by McCulloch and Pitts, which is how the perceptron was created.
How did Minsky contribute to the development of the perceptron?
- On the basis of the work by rosenblatt, minsky wrote a book about perceptrons which showed that a single layer of these devices was unable to learn some simple but critical mathematical functions (such as XOR).
- In the same book, they also showed that using multiple layers of the devices would allow these limitations to be addressed.
- Unfortunately, only the first of these insights was widely recognized. As a result, the global academic community nearly entirely gave up on neural networks for the next two decades.
- Higher grades + faster learning
- Never study anything twice
- 100% sure, 100% understanding
Arthur Samuel founded machine learning, getting computers to perform tasks. According to him, what is necessary to implement machine learning?
- The idea of a "weight assignment"
- The fact that every weight assignment has some "actual performance"
- The requirement that there be an "automatic means" of testing that performance,
- The need for a "mechanism" (i.e., another automatic process) for improving the performance by changing the weight assignments
What is meant by weight assignment in neural networks?
- The neural network's task is to provide the appropriate output on the basis of input.
- Weights are variables that determine how the inputs are processed.
- weight assignment is the determening of values for these weight variables to ensure that the right output results from the input.
What is meant by the necessity of "an automatic means of testing the effectiveness of any current weight assignment in terms of actual performance."?
- The actual performance of the model is how well the model performs the task, e.g. Misclassification rate.
- it is a necessity to have a means of measurement of model performance. This way, different versions of the model; different weights, can be evaluated against each other to find the weights that result in the best performance.
What is meant by the necessity of "a mechanism for altering the weight assignment so as to maximize the performance."?
- Such a mechanism would automatically update the weights of a model.
- for example, when comparing two model's we could shift the weights of the model that is getting outperformed, towards the weights of the model that is outperforming it.
- to get a neural network, you want the model to know how to alter the weights of the model to increase model performance.
What is meant by: "if updating could be made entirely automatic a machine so programmed would "learn" from its experience."?
- If you have an automated weight update mechanism for a model, going through iterations the model would make itself become better and better.
- a model learns automatically if it doesn't rely on humans to improve a model by adjusting it's weights manually.
According to Samuel, what does the training of an automated model looks like schematized?
- In an iteration, a model is given weights and input.
- the model provides output/results e.g. Classification
- the results are evaluated/the model's performance is assessed.
- the weights are adjusted based on the model's performance and a new iteration starts.
What is the strength of the neural network as a model?
- The neural network is a kind of function that is so flexible that it could be used to solve any given problem, just by varying its weights.
- a function which is extremely flexible depending on its weights. A mathematical proof called the universal approximation theorem shows that this function can solve any problem to any level of accuracy, in theory.
- the flexibility of neural networks causes it to be a suitable model for any given problem which allows you to devote all your time to training the network
What is the name of the mechanism that is used to automatically update the weights?
What are parameters of the neural network?
- Parameters are values that can be altered to improve model performance.
- weights and biases are different kind of parameters.
What is the difference between the model and the architecture?
- The architecture is the template of the model that we're trying to fit; the actual mathematical function that we're passing the input data and parameters to
- The model is a combination of an architecture with a particular set of parameters
What is the difference between machine learning and deep learning?
- Machine learning is a discipline where we define a program not by writing it entirely ourselves, but by learning from data.
- Deep learning is a specialty within machine learning that uses neural networks with multiple layers.
What is meant by the desire to have a model that generalizes?
- we want a model that learns general lessons from our data which also apply to new items it will encounter, so that it can make good predictions on those items.
- The risk is that if we train our model badly, instead of learning general lessons it effectively memorizes what it has already seen, and then it will make poor predictions about new images.
How can a model get overfitted to the validation data?
- even though the ordinary training process is only looking at predictions on the training data when it learns values for the weight parameters, the same is not true of us.
- We, as modelers, are evaluating the model by looking at predictions on the validation data when we decide to explore new hyperparameter values
- You choose the hyperparameter values that result in the best performance on the validation set, but in exploration of the hyperparameter value combinations you might start to overfit to the validation set.
What is the solution to prevent overfitting on both training and validation set?
- In machine learning, you have three sets of data:
- the training set, which is used to tune the parameters/weights of the model.
- the validation/development set, which is used to test whether we're overfitting to the training set and tune the hyperparameters of the model
- the test set which is used to assess whether the model is overfitting to the validation set
- Modelers are blind to the test set to ensure not overfitting to it through hyperparameters
When splitting the data into three sets, how should you split them?
The question on the page originate from the summary of the following study material:
- A unique study and practice tool
- Never study anything twice again
- Get the grades you hope for
- 100% sure, 100% understanding