Machine Learning (ML) is an interdisciplinary field comprising of Computer Science, Electronics and Communication, Neuroscience, Psychology, Economics, Statistics and many more exciting fields of science. The vast inclusion of domains gives everyone an equal opportunity to be a part of this ever-growing field of science. There are several applications of Machine Learning and it is meant to work well in all situations. A farmer for example, with the right techniques, can decrease the chemicals used or the water consumed, and help the world eat better. The meteorological department can predict weather patterns and ensure the world is well aware of the calamities approaching it. Netflix makes sure that you are served the right and precise dose of entertainment curated especially for you. Essentially, our algorithms have become very intelligent and we have a choice today to make. Will we be controlled by the algorithms or will we join the intelligence and information revolution and add value to the lives of others. It’s a bet you can make.
How to begin with Machine Learning?
Now that we are all pumped up about knowing what machine learning is, let’s answer a few simple questions. The first and foremost would be… “How do I begin?”. Well, turns out there are two approaches any ML practitioner can take. We shall talk about both the approaches and the merits and demerits of the approaches as well.
Trial and Error approach
The first approach is “Trial and Error”, where you have some experience in writing code and understanding pre-written codes. Using this knowledge you try to tweak code available on GitHub, or any other online step-by-step tutorial, which is usually open-source. This method works well in today’s scenario mainly because the advancement in the field has become modular. Thus, you can break the problem into sub-problems and then deal with each of it individually.
For example, consider making an e-commerce app, where the main application related to machine learning would be recommendation engines. A person with some android experience can easily code an app for the same, and at the backend include the model for the recommendation engine. What is this model essentially? The model is the brain for the recommendation task, and given the shopping history of a user, it can predict what are some of the products the user is certainly going to buy. These models are readily available on GitHub, and thus it is easier to make Machine Learning applications.
Academic and Scientific methods
The second approach is based on academic and scientific methods. In the latter, the mathematical equations governing the machine learning algorithms are more focused on and the applications are usually secondary. Essentially, in this method, we work with the fact that applications are the consequences of the algorithms designed, and thus place more importance in the design of algorithms.
Let’s consider the example of designing an image classification algorithm, which classifies a given image into a cat or a dog. If we look at the problem from the perspective of Approach 1, it would be reasonable to divide the task into various sub-tasks such as data preprocessing, model selection and definition, model training, and model testing. Let’s begin with the variety of image classification models available today, like Inception, ResNet, MobileNet, etc, and then select the dataset and clean it if necessary, following which the training and testing take place.
But, what if we were trying to solve the problem 25 years ago when the convolutional neural network was still not known? Then, would the above approach work? We would have to come up with our algorithms to do the desired task and that would have been quite a tedious task to do without knowing the prerequisites for machine learning. Luckily today, the research in the field has taken off very rapidly thanks to enhancement in the amount of data available and the hardware capabilities. Thus, encountering such a situation in today’s world would be a rarity.
Going forward, we shall be talking about the various pre-requisites for starting a career or a hobby in the field of machine learning. Let’s begin.
Pre-requisites to a Machine Learning Career
The ease of converting logical statements into code can go a long way while becoming an ML practitioner. Most of the open-source libraries are available in Python and R(especially data science libraries). Thus a good knowledge of Python can accelerate the learning curve. Some of the important Python packages are
- Tensorflow (Parallel and Distributed Computation for Machine Learning and Deep Learning)
- numpy (Efficient Matrices Computations)
- OpenCV (Python’s Image Processing Toolbox)
Algorithms and Data Structures:
Data structures are efficient data models and are designed for efficiency in terms of memory and time consumed. Knowing how to handle data can fasten the processing. It also helps design better and faster algorithms, be it for pre-processing of data or designing the algorithm itself.
The heart of neural networks is the backpropagation algorithm, based totally on differentiation. Hence we recommend a basic outline of calculus would help in the understanding of the training process.
Gilbert Strang teaches the subject in the most fluidic manner and thus we strongly suggest his course on MIT OCW, available on YouTube. Linear Algebra is important because the data we deal with is multi-dimensional. For example, when we try to predict the price of a house, the various dimensions are location, area, facilities available, etc. Matrices are the most ideal way to deal with higher dimensions.
The basic understanding of mean, median, and mode of various probability distributions, especially the gaussian distribution is useful, as most of the data found in the real world can be modelled via these probability distributions and thus simplify the data to a fewer number of parameters.
There are tons of resources in the likes of books, videos, courses, etc. Choosing the right courses and content, and then sticking to one matters the most. It is easy to get swayed by new content on YouTube or other sources, but that does not solve the purpose, does it?
Hardware prerequisites for Machine Learning
The reason behind the usage of specialized libraries like TensorFlow or Pytorch boils down to the fact that these are all processing-intensive computations and thus require highly optimized libraries to make full use of the processing power available. It is highly suggested to start with Google colab or Kaggle Kernels, which provide free GPUs for almost 8-10 hours. Thus they help us deploy our initial models faster without the hassles of configuring the programming environments. The user interface and the resources available to use these platforms are intensive, and thus a specialized laptop with a high-end GPU will not be on the requirement list initially at least.
If you can shell out some money, then cloud services provided by AWS, Paperspace make it easy to deploy machine learning models. The main thing to focus here is the use of multiple GPUs, and how to parallelize the current process at hand. Let’s take the image classification example again. If we need to preprocess the images and we have a huge dataset containing millions of images, like the ImageNet, then rather than training, most of the time will be wasted on preprocessing. Thus we create batches of data which are preprocessed parallelly at the CPU. Additionally, during the pre-processing, the GPU is busy fine-tuning the model.
How to become a successful ML practitioner?
Well now that we have an idea of the resources and what to expect from the journey that lies ahead of us, the most important aspect is the plan. Let’s start.
We propose a five-step process which shall ensure in helping you succeed as a successful ML practitioner.
Step 1. Understanding the fundamentals
Get a grasp of some if not all concepts in Linear Algebra, Statistics, Calculus, and Probability theory, while you start coding at the same time.
Step 2. Consider taking an online course
There are tons of online resources, but learning from the best universities will truly help. So in this case, Great Learning’s PG program in Artificial Intelligence and Machine Learning is a good choice. The course is in collaboration with the University of Texas at Austin, McCombs School of Business.
Step 3. Refer to some good books
Refer to the books which provide both hands-on knowledge as well as theoretical concepts. Both are equally important.
Step 4. Learn algorithms
Know most of the algorithms used in the field of your interest, be it data science, computer vision or natural language processing. For example in computer vision, knowing all the classification, detection, segmentation algorithms will help in faster implementation and a better understanding of the subject.
Step 5. Test your learning
Finally, try out all the algorithms and techniques learned, in hackathons or Kaggle challenges. Kaggle simplifies the learning experience by providing GPUs free of cost for around a third of a day.
What Next? Applications and much more
Machine Learning has extended to possibly every domain related to our daily lives. It plays an active role in prediction, detection, recommendation engines, search engines, healthcare, robotics, control systems and many more. The major areas of research and development are in the area of computer vision, natural language processing, reinforcement learning, data analytics, and healthcare. We are in an era where the amount of visual, audio, textual data available is growing exponentially. This data has given us the abilities to create results better than human accuracies at tasks like classification, detection, etc.
The research started with simple image processing like segmentation algorithms. Today, it stands at complex deep neural networks which can recognize what and where an object is. They can even generate faces by learning the features from a dataset, through deep neural networks called generative adversarial networks. The research today mainly focuses on solving some of the unsolved problems in the domain of computer vision. One problem in this list is something that we as humans do daily. 2D to 3D images generation. Understanding the depth of objects in images is indeed valuable information, given which many applications become more efficient. Capsule Nets can solve this problem due to their ability to store spatial information, unlike the usual convolutional neural networks. Some of the tasks in this domain are image classification, object detection, semantic labelling of objects, face detection, 2D – 3D model generation for objects(Apple’s FaceID does this on a phone within a fraction of a second), image-to-text generation, and self-driving cars. This field will combine with Natural Language Processing. It will help in creating very powerful algorithms that can automate many of our day-to-day tasks.
Natural Language Processing:
NLP focuses on creating language models which support non-linear conversations, easier translations and model the grammar and semantics of every language and dialect accurately. BERT and OpenAI GPT-2 are some major achievements that have been achieved in very recent times. These models have made it easier for the common man to create applications which have extraordinary capabilities in terms of conversational agents.
Learning from the environment is what we do in our day-to-day lives. Imagine if robots could do the same. Learn by looking at us. That’s the future. Combining algorithms from CV and NLP, and having highly efficient data extraction algorithms, the robots learn the tasks from the environment and upon the reward that it gets, learns whether to keep what it has learned or discard it. MIT CSAIL recently released drones that learned to fly on their using Reinforcement Learning. This is the future.
Yann Le Cunn summarizes everything about the importance of unsupervised learning in the years to come. He said, ” The challenge of the next several years is to let machines learn from raw, unlabeled data, such as video or text. This is known as unsupervised learning. AI systems today do not possess ‘common sense’, which humans and animals acquire by observing the world and acting in it, allowing them to understand how the world works. Some of us see unsupervised learning as the key to machines with common sense.”
A career in the field of machine learning is not just rewarding financially. The challenges that one faces while creating applications that are as intelligent as us, are satisfying. Technology is the solution behind bridging the economical, educational and cultural gaps in the societies. Technology can ensure better health, wealth, and peace of mind for many generations to come if used right.
As the Zen proverb goes, “The best time to plant a tree was 20 years ago. The second best time is now”. We are indeed at the right spot to jump on to this wave. We wish you the very best and hope that you experience the joy in creating technology that acts as a change agent.