contains the content related to ML and AI
- The contents in this repo seems too much but don't look too far, complete step by step-
-
I am trying to prepare a general track for you to avoid some stress
- Upto week 1st - Python(for beginners) and numpy, pandas, matplotlib and seaborn
- Upto week 2nd - Linear and Logistic Regression (With practice)
- Upto week 3rd - Deep learning(MLP and keras complete)
- Upto week 4th - Deep learning(CNN with practice)
- Upto week 5th - Deep learning(NLP)
-
If you are unable to complete the materials just gain basic intutitions within the given time and later complete at your own pace.
-
- It is advisable to view videos at 1.25x or 1.5x as most of them are usually slow
- If you find any difficulty during learning, just start an issue in the issue section of this github repository.
- I tried my best and used my own experience in compiling materials, you can use any other sources which makes you feel comfortable.
- lastly i will suggest some blogging sites and search engines which helps you most of the time.
Blogs and extra resources - Your companion for ML-AI(Any time you have any doubt just raise an issue or search in below sites)
Blogs
Podcasts
E-mail Newsletters
If you are a keen reader then here are some books which you can read for learning ML
No prequisite, but you need to learn things constantly if you are starting with python or if this is your starting into programming languages.
python IDLE (3.7 or above) with jupyter notebook or Anaconda
-
Anaconda Installation
- if you not have any above softwares installed follow this link
-
Introduction to Jupyter Notebooks
-
Learning Python Basics
Python library is a collection of functions and methods that allows you to perform many actions without writing your code from scratch. Each library in Python contains a huge number of useful modules that you can import for your every day programming.
- Below are some libraries used in loading, processing and visualising data
- Numpy
- Pandas
- matplotlib and Seaborn
- Insallation for Matplotlib- Use (conda install matplotlib or pip install matplotlib) in command prompt
- Insallation for seaborn- Type (conda install seaborn or pip install seaborn) in command prompt
- Data Visualisation using Matplotlib and seaborn
There are many other libraries used in Machine learning, details regarding those will be given along with subsequent materials later.
According to Wikipedia- Artificial intelligence (AI) is wide-ranging branch of computer science concerned with building smart machines capable of performing tasks that typically require human intelligence. ... It is the endeavor to replicate or simulate human intelligence in machines. if you want to know more about what AI, follow this link
machine learning is the subfield of AI that helps the computers to realize a task without being explicitly programmed.
A more detailed introduction about ML and its types is given here, and if you are intrested in videos see this
Those who are new and learning ML first time
- Machine Learning by Andrew Ng Coursera
This course has some code written in octave not in python don't worry just gain the intutition and may be its seems boring but stick to it and complete first three weeks
- Week 1 - Introduction, Linear Regression with One Variable, Linear Algebra Review,
- Week 2 - Linear Regression with Multiple Variables,
- Week 3 - Logistic Regression, Regularization
Install required Libraries Needed
- Scipy - USE pip install scipy in command prompt or Anaconda Powershell
- Sklearn
More links for mastering the topic (Optional)
- Linear Regression:
- Logistic Regression:
Practie all that you have studied on a competetion hosted at kaggle
What is kaggle? Answer is here how to use kaggle kernels
Practicing linear regression at housing price prediction dataset at kaggle here
- For start working look at some kernelscode notebooks, these helps you to get started.
- And of course if you want to see more you can go at the kernel section on kaggle to see more such notebooks. Practicing logistic regression at dataset at kaggle here
- if you want you can go at the kernel section on kaggle to some notebooks to get started.
Here comes the deep learning....
In deep learning, we will focus on Neural Networks, moving on from Logistic Regression.
Neural networks and deep learning by Andrew NG. Do this, assuming you have completed the Machine Learning course by Andrew NG. If you haven't please go through that course first and make sure complete week 5 in it.
Neural Networks: Playground Exercises by Google(Do see it once. Not absolutely essential, but very helpful for visualizing and building simple neural networks on the go and seeing the results)
Libraries Due to the advancement in deep learnig, there are different types of programming frameworks (which performs similar tasks) available like-
- Tensorlow(older version 1.1)
- keras(with tensorlow as backend lastest tensorflow 2.0)
- Torch
- Theano
- Pytorch and many more...
We use here keras due to easier code implementation and someone is intrested, they can use torch also
Video Series on working with Keras (Both installation and Code practice in keras)(Intermediate level). You can leave the backend selected as Tensorflow. The videos on deployment and Tensorflow.js are not required to be seen. Don't worry about CNNs as it comes later.
Keras Official Documentation ✨
Use all the knowledge of neural nets and work on the same dataset given for logistic regression and compare the results of both
Before starting CNN it is important that you have completed these things:
-
Neural networks and deep learning by Andrew NG.
-
Machine Learning course by Andrew NG till week 5(optional if the above course is done).
After completing them you will understand the working of neural networks(forward and backward propagation) and why they are so powerful.
Now we are ready to dive into basics of CNN. Follow this link.
Convolutional Neural Networks | Coursera
The first 10 lectures of this course will give you a basic idea of working and the later are concentrated on some application part: Object detection, Face recognition and Neural Style Transfer.
Basic implementation of CNNs and neural networks:
The MNIST database (Modified National Institute of Standards and Technology database) is a large database of handwritten digits that is commonly used for training various image processing systems.The database is also widely used for training and testing in the field of machine learning.The MNIST database contains 60,000 training images and 10,000 testing images.You can found the MNIST practice comp held at kaggle here. For any help look at the kernels available on kaggle
- Introduction (ref pg:1-3)
- Video lecture on Computer Vision tasks
In this section, we focus on Sequence modelling and its applications in the field of Natural Language Processing(NLP)
To properly understand the material of NLP, the following material should be well understood or the material covered in the courses:-
→ Convolutional Neural Networks by Andrew Ng on Coursera
→ Scikit-learn, numpy, pandas, matplotlib
You all have seen how a convolutional network works and how to use image data and train a model to classify images. While dealing with image data, there was no question on how to represent an image for training the model because it was already given in pixel form i.e. you don't need to work on how to represent the images. But this is not the case with text data.
Text data in its raw form is just a string which makes no sense to the computer or a model cannot be trained on it until it has been converted into numerical vectors. There are various processes how it is done,
Tokenization, Stemming, Lemmatization etc. are few of the techniques to process data before training the ML model on it.
There is a python text processing module known as NLTK(Natural Language ToolKit) for performing the text processing tasks as described. The working examples and the tutorial of the module and these preprocessing techniques are given in detail in the article described below.
The documentation for the NLTK can be accessed here and the book based on the documentation can be assessed here.
Like any other machine learning task, NLP tasks such as POS tagging, NER classification etc. also gives state-of-the-result with deep learning techniques.
The following course discusses most the techniques and types of deep learning architectures used in NLP.
**Sequence Models | Coursera by Andrew NG
It is advisable to view all the video provided in the course in addition to the quizzes. However, the assignment part of the course is optional. The course discusses the basic techniques without going into very deep technical details of the methods.
For Other Materials, if you completed the above things then you will be able to search by your own
Advance (Optional)(For those who are highly intrested in knowning the underlying maths behind Machine learning)
Matrix calculus and maths behind neural network
For those who are highly interested in how backpropagation occurs in CNN can follow this blog:
Back Propagation in Convolutional Neural Networks - Intuition and Code
Some may find a bit maths-extensive but getting just a basic idea is enough and it helps in better understanding.
if you are keen book reader then
You can do a specialization on Machine learning mathematics on coursera
- It includes
- Linear Algebra
- Multivariate Calculus
- PCA for dimensionality reduction
Vectorization and some basic python broadcasting
KFold validation with image data generator
an introductory notebook for some os and glob command can be found here