This is a trendy topic. Machine learning is the fastest-growing field today. The job market is skyrocketing. More and more universities are coming up with new courses. So many free resources are flying around. More people are getting interested in learning machine learning.
It’s good and bad at the same time. It’s almost overwhelming for new learners. It becomes hard to understand where to start, what to learn, how to get the required skills.
I want to warn about one thing first. Do not waste your money on any Bootcamp that is telling you that they will teach you programming, statistics, data analysis, machine learning, database queries all in six months. I even know boot camps they promise their students to make or ready by 12 weeks. Never waste money on them. Because it is not possible if you not a superman or superwoman. Here is a detailed article about it.
If you have an undergraduate degree in engineering, math, physics, statistics, or any other technical area, you have an edge. But nowadays there are a lot of libraries available. You do not need to understand all the math behind. You can still use those algorithms and perform a machine learning and deep learning task.
I am going to share the resources for both types of courses. Some will teach you the popular libraries and some courses are for learning the algorithms from scratch.
There are a lot of data scientists or engineers out there working as lead data scientists but do not know how to develop a machine learning algorithm from scratch. They use the libraries. So, learning the libraries is a good investment of time as well.
On the other hand, even if you do not have mathematical or engineering background you can still supplement with some math and stats classes and learn machine learning if you are really interested to learn to develop them from scratch.
Machine learning and deep learning is a very interesting aspect of data science.
Because data scientists need to learn machine learning. And there are machine learning engineers. Actually, these roles are confusing. In my understanding, when data scientists work on machine learning, they communicate it to other humans and help then make decisions based on their work.
But machine learning engineers do machine learning projects their goal is to communicate it to the machines. They need to know the database queries, Rest APIs, and build an interface that other people can use.
If you are planning to become a data scientist or machine learning engineer, the core machine learning concepts are the same.
Most of the courses below are from Coursera and you can take all the courses below for free. You have to find the audit option. If you haven’t audited a course before, here is a video that shows how to audit a course in Coursera:
You will be able to audit each of the courses below as many times as you want. If you cannot finish it by the designated time, you will be able to audit it again!
Isn’t it cool!
Here are some free resources to start with
I am a python user. So I can only give ideas about machine learning in Python. If you are a complete beginner and do not know python that well, practice that one to get better first. Here is a specialization for Python. It will teach you all the python syntax and structures with a lot of practice.
After that practice python to get better. There are several great platforms to provide us with practice problems. I use leetcode and checkio to practice programming. In these platforms, you can see other people’s solutions to get better. There are so many other platforms to practice programming as well: code wars, CodeChef are two more platforms I hear about a lot.
After learning to program well, it is a good idea to learn some computation, data manipulation, and visualization libraries of python. They are essential to learning before you dive into machine learning.
Python has powerful libraries like Numpy, Pandas, Matplotlib, Seaborn, Scipy, and more for computation, data manipulation, visualization, and statistical analysis. Here is a specialization series in Coursera that has two courses on Numpy, Pandas, Matplotlib, Seaborn, Scipy and the third course in on Applied Machine learning:
The applied machine learning course in this specialization does not teach you to develop the algorithms from the scratch. But it will teach you the concepts and how to use these algorithms from the scikit-learn library in python. This is a good start for a beginner. The University of Michigan offers this specialization. The five courses that are included in this specialization are:
Introduction to Data Science in Python
Applied Plotting, Charting & Data Representation in Python
Applied Machine Learning in Python
Applied Social Network Analysis in Python
This course has some good projects that will add to your portfolio. Also, each week will provide you with a notebook that can be used as a cheatsheet for your future workplace. The material they provide in this course is very good.
This is another specialization. It has four courses.
Machine Learning Foundations: A case study approach
Machine Learning: Classification
Machine Learning: Clustering & Retrieval
The great part about these courses is, these courses will take a project-based approach and each week’s assignment will be a different project. At the end of this, you will have a complete portfolio to show off. The University of Washington offers this course.
CS50’s courses usually very high quality. This course is offered by Harvard University. And you know that you do not expect any less from Harvard. As the title says this is an introductory course. This course will give you some more concepts of machine learning that the previous two courses do not. After taking the previous courses if you take this one, you will learn more models and concepts and also include more projects to your portfolio.
This course will cover graph search algorithms, adversarial search, knowledge representation, logical inference, probability theory, Bayesian networks, Markov models, constraint satisfaction, machine learning, reinforcement learning, neural networks, and natural language processing.
Professor Andrew Ng is a famous professor for his great ability to break down the machine learning concepts. This course is offered by the Stanford Univesity. This course is different than the previous three courses. The three courses above teach you how to use the machine learning algorithms that are built-in python’s libraries.
But Professor Andrew Ng will teach you how to develop the machine learning algorithms from scratch. So, it is lot harder than the previous courses.
But if you can finish it, it will give you a lot of power. It is an eleven weeks long course. But you can audit this course as many times as you want for free. This course will teach you to develop linear regression, logistic regression, neural networks, support vector machine, k mean clustering, principal component analysis, anomaly detection, recommendation system development from scratch.
One thing that may be a bit different about this course that is the assignment instructions are in Matlab. But if you are good at python, you can take the concepts and do them in python. You will find the links to most of the assignments done in python in this page.
I am still working on writing tutorials on the rest of the assignments in python and will be done with them soon.
It looks like a lot! right?
But learning the machine learning libraries will be easier. After you learn to use a couple of algorithms, it will be easier for you to pick up after that. But learning the algorithms from scratch in Andrew Ng’s course will take a lot of time.
These are all the courses I wanted to share for machine learning. Some deep learning courses here.
DeepLearning.AI TensorFlow Developer Professional Certificate
This is also a specialization. Now they upgraded it and made it a professional certification course on Tensorflow. This series will teach you the use of TensorFlow with projects. The course is not that hard. Because it does not teach you how to develop the deep learning algorithm from scratch. it will teach you how to use the TensorFlow library.
Tensorflow is a very powerful tool for deep learning. It will take care of all the hard mathematics behind the scene. You just need to install it, call the library, and use it.
This specialization will teach you to use TensorFlow for numerical prediction, natural language processing, image classification, and time series prediction.
These are the four courses in this specialization:
Introduction to TensorFlow for Artificial Intelligence, Machine Learning, and Deep Learning
Convolutional Neural Networks in TensorFlow
Natural Language Processing in TensorFlow
Sequences, Time Series, and Prediction
Each of these courses takes a project-based approach. So, it is fun to learn!
This is another series of courses from Professor Andrew Ng. It is hard to avoid Professor Ng if you are trying to learn machine learning and deep learning. He is one of the pioneers!
He teaches the concepts very clearly and teaches you to develop the algorithms in detail. This course will be a bit harder because it is about developing the algorithms from scratch and know it from its core. But it will be worth it if you can finish it. It includes these following courses:
Neural Networks and Deep Learning
Improving Deep Neural Networks: Hyperparameter tuning, Regularization, and Optimization
Structuring Machine Learning Projects
Conclusion
If you can dedicate your time to these courses, you are a pro in machine learning and deep learning. There are a lot of other libraries and topics out there. Because machine learning is a vast field and it is growing every day. But if you have a strong foundation you will pick up any other new libraries fast.
You have to stay open-minded about that. This is a field where learning will never end. No matter how much you learn, a new thing will come up tomorrow.
One last suggestion is that, do not jump into learning anything new to you. Master a few libraries and algorithms first. That will develop judgment in you. You will understand which one is important for you and what is your interest.
Feel free to follow me on Twitter and like my Facebook page.
#machinelearning #deeplearning #datascience #python