How to Learn Machine Learning and Deep Learning in Less than a Year, with Little to no Programming Background
Do you want to dive into data science and artificial intelligence (AI) research? Do do you want to apply some AI concepts in your field to boost your productivity? You are probably willing to study all the necessary literature and take several courses but don’t know where to start from? Then, this article is for you.
Just about a year ago, I was in your exact shoes. I started off by crashing the surface of the python programming language with a few courses on coursera, then I gradually started to dive deeper into data science where I eventually found fun learning machine learning and deep learning.
In this article, I will list and explain some resources to help you get started with programming and to eventually meetup with current issues in machine learning and deep learning.
The material listed in this blog might not be the best out there, but this is what I used to bridge the gap between the me who could not write a single line of computer code and the me today who is able to speak almost the same language as other AI experts.
I want to make it clear that following the material listed in this article will not make you a machine learning nor a deep learning expert. But, I believe you will have the confidence you need to pursue AI research or simply to apply state-of-the art deep learning models in your domain.
Most of the resources in this article are based on the python programming language which I believe is the best programming language for data science and AI research. Feel free to exploit other programming languages if you wish.
Here is a brief summary of the resources I will be discussing in this post, listed under five headings:
- Python 3 programming coursera specialization
- Machine learning Free coursera course
- Deep learning coursera specialization
- AI for Medicine coursera specialization
- Work on a real world AI based project
I will give details about each of these resources in the following paragraphs. Note, these resources are only courses. You will need to find the related literature by yourself if you wanna go deeper into each topic.
First and foremost, all of these courses are hosted on the coursera learning platform at coursera.org. Coursera is an excellent learning platform where you can find both free and paid courses. All but one of the courses listed in this post are paid courses (about 49 US dollars per month).
Before you get discouraged, I have some good news for you. You can take all those courses for free and earn a course completion certificate by applying for financial aid. Oh yes!! Financial aid! Coursera offers financial aid to students who can’t afford to pay for a course or a course completion certificate. This means that you are 100% guaranteed to take courses, specializations and professional certificates and earn a certificate. All you need to do is apply for the coursera scholarship or financial aid.
To apply for financial aid for a coursera course, follow the tutorial on tutorial to apply for financial aid for a coursera course.
Hence forth you will often see some phrases or paragraphs in quotes. Content in these quotes is the course description as written on the coursera platform.
Also, you can see the ratings for each course by more than 10 thousands partakers and I hope that will convince you to go for the courses.
So, let’s get started!
1.Python 3 Programming Coursera Specialization by the University of Michigan.
This was the first course I took on coursera that made me fall in love with the platform. My love for online learning and the coursera platform started growing right from the first video within this course, which I watched about the month of May, 2020. I completed the first course in less than 2 weeks and I got a certificate of completion that motivated me to keep going until I completed the specialization.
While searching for python courses on Coursera, you might come across the specialization Python for Everybody, which is taken by over one million people. Well, this is also a good course that helps people check if they have an interest in python. You can start by taking it before moving to the python 3 programming specialization. Either way, you will get to the gate way of success.
This specialization is made of five(5) courses properly arranged to help students progress in python from zero to intermediate/mastery. Here is the order in which I took the courses and I find it very useful: Python Basics; Python functions, files and dictionaries; Data collection and processing with python ; Python classes and inheritance; and Python project: pillow, tesseract and open cv.
1.1. Python Basics
In this course, you will learn the basics of python3 programming, including how to write conditional statements and execute them; how to loop over a list of items; and data structures such as strings and lists. You will program an on-screen Turtle to draw pretty pictures. You’ll also learn a special debugging technique to easily execute your programs. Don’t worry if you do not have any programming experience because the course requires none.
This is the first of five courses in the Python 3 Programming Specialization.
1.2. Python Functions, Files, and Dictionaries
In this course, you will learn a new data structure called dictionary. You will learn how to use dictionaries to organize your programs. You will also learn how to define your own custom functions in python, lambda expressions, as well as use python built-in sorted function. Finally, you will read in simulated social media data from a file, compute sentiment scores, and write out .csv files as your final project. Make sure to complete the project as it will make it easier to understand the next course.
This course is the second of the five courses of the specialization. Some concept may seem very basic but are very crucial for the creativity of a data scientist. Therefore, I recommend completing all exercises on your own without looking up answers from any opensource cheat sheet. Do make use of the discussion forum though, as you will find a handful of other students who can provide you with intuition to solve a particular problem.
1.3. Data Collection and Processing with Python
This course teaches you to fetch and process data from services on the Internet. It covers Python list comprehensions and provides opportunities to practice extracting from and processing deeply nested data. You’ll also learn how to use the Python requests module to interact with REST APIs and what to look for in documentation of those APIs. For the final project, you will construct a “tag recommender” for the flickr photo sharing site.
1.4 Python Classes and Inheritance
In this course, you will learn a new concept of programming called object oriented programming (OOP). In OOP, you will learn classes, ,instances, and inheritance. These are all basic concepts of object oriented programming. Also, you will be introduced to the good programming habit of writing automated tests cases for their own code.
At this point, things might start getting very difficult. Don’t give up. Let me remind you of the discussion forum which is available for every course where you can ask your questions.
1.5 Python Project: pillow, tesseract, and opencv
“This course will walk you through a hands-on project suitable for a portfolio. You will be introduced to third-party APIs and will be shown how to manipulate images using the Python imaging library (pillow), how to apply optical character recognition to images to recognize text (tesseract and py-tesseract), and how to identify faces in images using the popular opencv library. By the end of the course you will have worked with three different libraries available for Python 3 to create a real-world data-analysis project.”
For me this course was the hardest and it was hard up to a point where I had to abandon it, come back, abandon it again and so on. If you experience the same, feel free to release yourself from the project for a while, take other courses while waiting for inspiration and come back to finish it (Remember time is money). This works for me often, and, it might work for you as well.
This is one of the best machine learning courses in the net and it’s taken by over four (4) million individuals with an average rating of 4.9/5. This course is instructed by famous professor Andrew Ng, the co-founder of the coursera platform, as well as the founder of deeplearning.ai .
“Machine learning is the science of getting computers to act without being explicitly programmed. In the past decade, machine learning has given us self-driving cars, practical speech recognition, effective web search, and a vastly improved understanding of the human genome. Machine learning is so pervasive today that you probably use it dozens of times a day without knowing it. Many researchers also think it is the best way to make progress towards human-level AI.
In this class, you will learn about the most effective machine learning techniques, and gain practice implementing them and getting them to work for yourself. More importantly, you’ll learn about not only the theoretical underpinnings of learning, but also gain the practical know-how needed to quickly and powerfully apply these techniques to new problems. Finally, you’ll learn about some of Silicon Valley’s best practices in innovation as it pertains to machine learning and AI.
This course provides a broad introduction to machine learning, data mining, and statistical pattern recognition. Topics include: (i) Supervised learning (parametric/non-parametric algorithms, support vector machines, kernels, neural networks). (ii) Unsupervised learning (clustering, dimensionality reduction, recommender systems, deep learning). (iii) Best practices in machine learning (bias/variance theory; innovation process in machine learning and AI).
The course will also draw from numerous case studies and applications, so that you’ll also learn how to apply learning algorithms to building smart robots (perception, control), text understanding (web search, anti-spam), computer vision, medical informatics, audio, database mining, and other areas.”
In this course, prof Andrew will teach you how to answer the whats, whys and hows of machine learning and by the end of each course, you will be equipped with the basic knowledge and skills to dive into AI research.
Note: The programming exercises in this course are either in Matlab or Octave programming languages. Don’t worry, you can take the two-hour MATLAB Onramp course at Mathworks and it will be enough to do the programming exercises.
The deep learning specialization is one of the best deep learning courses you will ever find online. The course is instructed by Andrew Ng, both on coursera and on deeplearning.ai. Below is the specialization description on Coursera.
“The Deep Learning Specialization is a foundational program that will help you understand the capabilities, challenges, and consequences of deep learning and prepare you to participate in the development of leading-edge AI technology.
In this Specialization, you will build and train neural network architectures such as Convolutional Neural Networks, Recurrent Neural Networks, LSTMs, Transformers, and learn how to make them better with strategies such as Dropout, BatchNorm, Xavier/He initialization, and more. Get ready to master theoretical concepts and their industry applications using Python and TensorFlow and tackle real-world cases such as speech recognition, music synthesis, chatbots, machine translation, natural language processing, and more.
AI is transforming many industries. The Deep Learning Specialization provides a pathway for you to take the definitive step in the world of AI by helping you gain the knowledge and skills to level up your career. Along the way, you will also get career advice from deep learning experts from industry and academia.”
3.1 Neural Networks and Deep Learning
If you have taken the machine learning course already, then you will be familiar with neural networks. As a matter of fact, you will just be doing the same thing in a different language. Oh yes, with your python and machine learning knowledge, you will probably crush this course and grasps your certificate for yourself.
This is the first course of the deep learning specialization and you will study the fundamentals of neural networks and deep learning, and apply the concept in the python programming language.
“By the end, you will be familiar with the significant technological trends driving the rise of deep learning; build, train, and apply fully connected deep neural networks; implement efficient (vectorized) neural networks; identify key parameters in a neural network’s architecture; and apply deep learning to your own applications.”
3.2 Improving Deep Neural Networks: Hyperparameter Tuning, Regularization and Optimization
Here comes another course with lots of familiar concept. You will learn different techniques to change certain hyper-parameters of your model for model optimization. Again, some of these concepts will seem familiar to you since prof Andrew Ng will explains them in the machine learning course. This is another course you can easily complete and grasps the certificate for yourself.
“By the end, you will learn the best practices to train and develop test sets and analyze bias/variance for building deep learning applications; be able to use standard neural network techniques such as initialization, L2 and dropout regularization, hyper-parameter tuning, batch normalization, and gradient checking; implement and apply a variety of optimization algorithms, such as mini-batch gradient descent, Momentum, RMSprop and Adam, and check for their convergence; and implement a neural network in TensorFlow.”
3.3 Structuring Machine Learning Projects
“In the third course of the Deep Learning Specialization, you will learn how to build a successful machine learning project and get to practice decision-making as a machine learning project leader.
By the end, you will be able to diagnose errors in a machine learning system; prioritize strategies for reducing errors; understand complex ML settings, such as mismatched training/test sets, and comparing to and/or surpassing human-level performance; and apply end-to-end learning, transfer learning, and multi-task learning.
This is also a standalone course for learners who have basic machine learning knowledge. This course draws on Andrew Ng’s experience building and shipping many deep learning products. If you aspire to become a technical leader who can set the direction for an AI team, this course provides the “industry experience” that you might otherwise get only after years of ML work experience.”
3.4 Convolutional Neural Networks
“In the fourth course of the Deep Learning Specialization, you will understand how computer vision has evolved and become familiar with its exciting applications such as autonomous driving, face recognition, reading radiology images, and more.
By the end, you will be able to build a convolutional neural network, including recent variations such as residual networks; apply convolutional networks to visual detection and recognition tasks; and use neural style transfer to generate art and apply these algorithms to a variety of image, video, and other 2D or 3D data.”
A lot of people say that what distinguishes machine learning from deep learning is the neural networks, but I’d say it’s not just the neural networks, but the convolutional neural networks.
If you just wanna apply AI in your domain and don’t want to go deep into AI research, then this is the right time to become abstract about AI. You will be introduced to deeper and deeper networks such as residual nets(Resnet5), densenets, alexnets, and so on. This is the point where things become very challenging and just understanding the course won’t do. Having a real-life project along will really help.
3.5 Sequence Models
“In the fifth course of the Deep Learning Specialization, you will become familiar with sequence models and their exciting applications such as speech recognition, music synthesis, chatbots, machine translation, natural language processing (NLP), and more.
By the end, you will be able to build and train Recurrent Neural Networks (RNNs) and commonly-used variants such as GRUs and LSTMs; apply RNNs to Character-level Language Modeling; gain experience with natural language processing and Word Embeddings; and use HuggingFace tokenizers and transformer models to solve different NLP tasks such as NER and Question Answering.”
After completing this course, which is the last of the deep learning specialization, you must be filled with machine learning and deep learning knowledge and are hungry to apply the concepts in the real world. Having hunger to test your newly acquired skills is a very good thing because indeed the theory is useless without practice. At this point, having a real world project to work on will really help to solidify your skills in AI. I will provide you with information with some projects you can start with at 5., but first, if you wanna immediately correlate your deep learning knowledge to the medical domain, the AI for medicine specialization is a good startup for you.
“AI is transforming the practice of medicine. It’s helping doctors diagnose patients more accurately, make predictions about patients’ future health, and recommend better treatments. This three-course Specialization will give you practical experience in applying machine learning to concrete problems in medicine.
These courses go beyond the foundations of deep learning to teach you the nuances in applying AI to medical use cases. If you are new to deep learning or want to get a deeper foundation of how neural networks work, we recommend taking the Deep Learning Specialization.
This program will give you practical experience in applying cutting-edge machine learning techniques to concrete problems in modern medicine.”
If you take the deep learning specialization very seriously, this specialization will be easier to complete.
“AI is transforming the practice of medicine. It’s helping doctors diagnose patients more accurately, make predictions about patients’ future health, and recommend better treatments. As an AI practitioner, you have the opportunity to join in this transformation of modern medicine. If you’re already familiar with some of the math and coding behind AI algorithms, and are eager to develop your skills further to tackle challenges in the healthcare industry, then this specialization is for you. No prior medical expertise is required!”
This course and the other two courses will be instructed by Dr Pranav Rajpurkar, a researcher in the Department of Biomedical Informatics at Harvard University. You will learn how to build and train models for image classification and segmentation. Then, you will apply the concept on chest x-ray images.
“Machine learning is a powerful tool for prognosis, a branch of medicine that specializes in predicting the future health of patients. In this second course, you’ll walk through multiple examples of prognostic tasks. You’ll then use decision trees to model non-linear relationships, which are commonly observed in medical data, and apply them to predicting mortality rates more accurately. Finally, you’ll learn how to handle missing data, a key real-world challenge.”
“Medical treatment may impact patients differently based on their existing health conditions. In this third course, you’ll recommend treatments more suited to individual patients using data from randomized control trials. In the second week, you’ll apply machine learning interpretation methods to explain the decision-making of complex machine learning models. Finally, you’ll use natural language entity extraction and question-answering methods to automate the task of labeling medical datasets.”
In this course, you will be a able to build a machine learning model to help decide which treatment method will work best for a patient by making used of the hospital’s historical data.
5. Work on a real world AI based project
Here comes the hard part, the data you encounter so far in the courses listed above is well organized, and the problems are also defined. Real world data is raw and some times you got to figure out what the problem is before even attempting to find a solution.
Fortunately for me, just before I completed the deep learning specialization, I registered for an AI in healthcare competition where I could access real world raw data and exercise my newly acquired skills. The project was about the classification and segmentation of stroke using a deep learning model. Over 200 teams (219) registered for the competition, and my team, which consisted of two members, was ranked 16th in the finals.
You might be fortunate to find a similar project for yourself. That will be great. However if you can’t find a remote real world project, then I am more that happy to introduce you to the kaggle projects. Kaggle is an online platform that hosts many artificial intelligence and computer vision projects every year. Previous and on going projects can be found on the kaggle competitions page here
If you get confused on which project to start with, visit the article by Khushbu Shah titled 20 Machine Learning Projects That Will Get You Hired in 2021.
I hope this article was useful. Feel free to comment and share.
Also, if there are resources you thing would make a great add to this article, feel free to pour the links in the comment section below.
You can connect with me on LinkedIn, and Github. You can also view this article on my portfolio site.