It starts with a high-level overview of the model/technique being covered and then continues with the implementation.
And wherever possible, there are visuals to support the concepts.
Here is an outline of what you will find there:
PART 1 - Intro to Programming and Working with Data
◆Intro to Python for Machine Learning
◆Data Computation With NumPy
◆Data Manipulation with Pandas
◆Data Visualization
◆Real EDA and Data Preparation
PART 2 - Machine Learning
◆Intro to Machine Learning
◆Machine Learning with Scikit-Learn (90% percent of models/techniques are covered, from linear models, decision trees, PCA, to ensemble methods)
PART 3 - Deep Learning
Intro to Artificial Neural Networks and TensorFlow
◆Intro to Artificial Neural Networks
◆Intro to TensorFlow
◆Neural Networks for Regression with TensorFlow
◆Neural Networks for Classification with TensorFlow
PART 3 - Continued
Deep Computer Vision with TensorFlow
◆Intro to Computer Vision with Convolutional Neural Networks(CNN)
◆ConvNets for Real-World Data and Image Augmentation
◆ConvNets Architectures and Transfer Learning
PART 3 - Contd
Natural Language Processing with TensorFlow
◆Intro to NLP and Text Processing with TensorFlow
◆Using Word Embeddings to Represent Texts
◆Recurrent Neural Networks (RNNs)
◆Using ConvNets for Texts Classification
◆Using Pretrained BERT for Text Classification
The best way to view the notebooks is to read them on Nbviewer
◆A quick look into the dataset
◆Summary statistics
◆Finding the basic information about the dataset
◆Checking missing data
◆Checking feature correlations
The key differences between shallow learning and deep learning models:
Shallow learning models:
◆ Most of them are simple and require less hyper-parametrization
◆ They need the features to be pre-extracted
◆ They are best suited for tabular datasets
◆ Their architectural changes are very limited.
◆ They don't require huge computation resources
◆ Their results are interpretable than deep learning models
◆ Because of the limit in their design change, there are little researches going on in these models.
Example of shallow learning models:
◆Linear and logistic regression
◆Support vector machines
◆Decision trees
◆Random forests
◆K-Nearest neighbors
Neural networks are hard to train. The more they go deeper, the more they are likely to suffer from unstable gradients.
Gradients can either explode or vanish, and either of those can cause the network to give poor results.
A short thread on the neuralnets training issues
The vanishing gradients problem results in the network taking too long to train(learning will be very slow), and the exploding gradients cause the gradients to be very large.
Although those problems are nearly inevitable, the choice of activation function can reduce their effects.
Using ReLU activation in the first layers can help avoid vanishing gradients.
Careful weight initialization can also help, but ReLU is by far the good fix.
Machine learning is the science of teaching the computer to do certain tasks, where instead of hardcoding it, we give it the data that contains what we want to achieve, and its job is to learn from such data to find the patterns that map what we want to achieve and provided data.
These patterns or (learned) rules can be used to make predictions on unseen data.
A machine learning model is nothing other than a mathematical function whose coefficient and intercept hold the best (or learned) values representing the provided data & what we want to achieve.
In ML terms, coefficients are weights, intercepts are biases.