Machine Learning

An Absolute Beginner's Guide to Machine Learning

January 11, 2020

Seeing a whole lot of discussion over AI and Machine Learning? Know next to nothing about either? Welcome to the club soldier, you are not alone. It is a frenzy, how everyone is so obsessed with the prospects of artificial intelligence and advances being made in machine learning. If you are the Jon Snow of AI/ML, this beginner's guide to Machine Learning is just for you. 

Before losing any time now, let’s dive in!

Content:

  • What is Machine Learning?
    • The Machine and the Toddler
    • How does a Toddler Learn?
    • How does a Machine Learn?
  • Prerequisites in Machine Learning
  • How to Learn Machine Learning?
  • Scope and Career Options
    • Scope of Machine Learning
    • Job Role of a Machine Learning Engineer
    • Difference between a Machine Learning Engineer and Data Scientist
  • Future of Machine Learning
  • Machine Learning in Practice
    • When to Use Machine Learning
    • Where to Use Machine Learning
    • Use Cases
  • Some Tips for Absolute Beginners

What is Machine Learning?

The Machine and the Toddler

Did you ever watch a toddler learn her way around the home? If you’d observe, her perception of everyday objects is quite different from us. Most of us wouldn’t find it a good idea to tug or pull violently at something which isn’t promptly coming off or to put your shoe in your mouth to find out if its edible!

The toddler, on the other hand, is living in a different world, with a different set of ideas. She is trying to understand what surrounds her using what little skill set and test methodologies she has

How does a toddler learn?

  • Time to time, her parents, and the people who come in contact with her, help her form generalisations and ideas about how things work. 
  • She gradually develops an understanding, and as she grows, she uses her own method of understanding. 
  • Her thought process may be influenced by her surroundings, but in time, she is able to take decisions using her individual perception, in combination with or independent of others. 

How does a machine learn like a toddler?

  • A computer functions the similar way. It’s like a toddler who is beginning to learn. 
  • Just like parents use a language to communicate to the child when correcting or teaching her something, ML engineers use ML (Machine Learning) techniques. 
  • A child learns from her surroundings, a computer learns from its data sets, the human-made surroundings. 

However, there is a minute difference between computers and toddlers. 

And that is?

If you show your toddler a dog and tell her that it is a dog, she will remember it. 

After a maximum of two to three times of helping her identify a dog, she will recognise dogs of most breeds without much problem, for the rest of her life. 

Now, if you showed your computer, say a German Shepherd’s picture and taught it that it is a dog, it will recognise the very picture every time but if it were to be a dog of some other breed or picture of the same dog from some other angle even, unless preprogrammed, the computer wouldn’t recognize a different dog.

This is the crux of the problem that machine learning engineers faced. The real problem is not how to make the computer learn but to make the computer learn how to learn

The following image represents the relationship between AI and ML. Whereas AI is the primary domain, Machine Learning is a subset of it.

Learning in Machines

ML further has three broad types of techniques: Supervised Learning, Unsupervised Learning, and Reinforcement Learning. 

  • Supervised Learning: In this mode of machine learning, you will have a set of parameters defining the beginning state of the problem and a particular state or value of a variable, that represents the end goal. The task here for the system is to map the initial situation to the final state. How the program does it, may depend on the algorithm. Examples: Random Forest, Decision Tree, Regression, Logistic Regression, Deep learning etc.
  • Unsupervised Learning: In this mode, we do not have a final state or value for a variable that we have to reach. Here, we cluster data into groups. Based on a variable or a set of variables, we segment or divide our data into defined groups. This type of algorithm is used in marketing and segmentation, recommendation programs etc. Eg. Apriori algorithm, K-means. Deep learning could be performed in this mode as well. It depends majorly on the nature of application being implemented.
  • Reinforcement Learning: In this type of learning, the system learns all by itself. It uses the hit and trial or trial and error method to record and create a history of attempts made by it and the error faced thereof. The end goal here is to figure out the best decision for all possible situations. Essentially, this machine learns from the past decisions, accumulates the best knowledge to develop and support logic and tries to make accurate decisions for forthcoming situations. Eg: Markov decision process. 

Prerequisites for Machine Learning

Before you dive into the next topic of our guide to machine learning, there are few skills that you have to have. No matter how excessive a demand this looks like, there are no cutting corners here. 

We must understand one thing clearly, machine learning is completely about coding. You will be writing code more often than not. If algorithms make you uncomfortable or coding makes you dizzy, you don’t want to be getting in Machine Learning. 

The prerequisites for ML can be lined up as follows:

  • Linear algebra: as you will be writing code for algorithms which will perform analysis using linear algebra, you need to have a good knowledge of what goes where in algebra. This is needed not only for developing programs but also in making amends, improving efficiency, and pinpointing bugs.
  • Programming Skills: You will code a lot in your job if you choose to be a machine learning engineer/scientist. It requires you to have a resounding knowledge of Python/R or Java and a good grasp of algorithms. You should know how to use at least one of the various libraries for ML like scikit-learn, TensorFlow, Dlib as these help a lot in implementing functions in ML.  
  • Statistics and Probability: As you would be developing, testing and/or improving a program dealing primarily with analytics and statistics, you would need to know the basics of linear algebra, probability, statistics, calculus etc. as these are used quite often in devising and implementing machine logic.

You won’t need a post-graduate degree in mathematics as a prerequisite as such. A good grasp of engineering mathematics (linear algebra, probability and calculus) and statistics would be good enough. 

How to Learn ML?

Various universities offer graduate, post-graduate and even research programs for machine learning in AI. However, the online substitutes are just as good and are free as well. 

One such course is Coursera’s Machine Learning Program by Andrew NG. Here, if you choose to pursue the course without getting the certificate in the end, it will be free. If you opt for the certificate, a nominal fee is charged. 

To learn the requisites for machine learning, following books should serve you well: 

  • Hands-on Programming With R- By Garrett Grolemund (Beginners)
  • R cookbook- By Teetor Paul
  • Learn Python the hard way By Zed Shaw
  • Introduction to Machine Learning with Python By Andreas Muller and Sarah Guido
  • Deep Learning Book - by Ian Goodfellow, Yoshua Bengio and Aaron Courville
  • Introduction to Statistical Learning- By Trevor Hastie and Robert Tibshirani.

Scope and Career Options

Now, some people repeatedly confuse a machine learning engineer with a data scientist. These two have some similar functions but even those are in different contexts. 

SCOPE:

Without Machine Learning, there is no efficient AI. 

One may go as far as saying that the AI is not true AI if we take ML out of the equation. 

In automating fields like healthcare, precision medicine, marketing and sales, oil and gas, transportation, detection of fraud etc, with AI, the contribution of machine learning is pivotal.

Analysts predict that in the coming five to ten years, advances in and application of machine learning are going to shoot up and it will lead to a personnel availability crunch sooner than later. Being a comparatively new field, ML has a small talent pool and an even lower pool of experienced ML engineers. This makes it perfect for someone who wants to make a career change and still retain a good salary package. Fresh graduates also get better opportunities and with time, get lavish offers. 

What makes ML all the more inviting is that if you like coding and maths, it doesn’t even feel hard. With some serious practice, it will come as naturally to you as talking itself.

Difference between a Machine Learning Engineer and a Data Scientist

  • A machine learning engineer builds and takes care of machines learning algorithms. By taking care we mean that the ML engineers ensure proper functioning, speed, reliability etc of the algorithm. The job of a data scientist is more focused on finding out how efficient the existing or potential approaches, features, algorithms, and error metrics are, to help improve the machine learning systems
  • While an ML engineer develops internal machine learning frameworks and abstractions to facilitate common tasks such as training, testing, feature use/reuse, creation, storage, and deployment, a data scientist uses these abstractions to sort, analyse and process data into a visualisable form. 
  • Basically, the job of a data scientist is to research and understand user behaviour patterns such as engagement by building machine learning models. These machine learning models are made for one-off analysis and are not put into production. Their primary goal is to help evaluate ideas. 
  • Thus, a data scientist and a machine learning engineer do share some parts of their jobs and communicate a lot. However, they do the same functions for different reasons and towards different end-goals. 

JOB ROLE of a Machine Learning Engineer

Before we get into the scope and all the options you have in this field, it’s better we reiterate the exact functions of a machine learning engineer. As a machine learning engineer, you will: 

  • Test performance and efficacy of machine learning algorithms by running experiments using a programming language and  ML libraries like TensorFlow, Apache Shinga, Shogun etc. Depending on the end goal, programming languages can change from one to another. 
  • Writing the coding part to implement proposed ML solutions
  • Make sure that the solutions get scaled up or down, as the need be i.e. you will need to work towards enhancing scalability and performance of the system.
  • Make sure that data is easily accessible by both the back-end systems and database. 
  • Deploy customized ML code, i.e., code that has been adapted to specific needs of an end goal or system. 
  • Produce use cases for the algorithm you write or the program you develop. 

It’s a common prediction now that AI is the future of the world. ML, even though a subset of AI, can very much be called the backbone of AI. 

Future of Machine Learning

As mentioned earlier, in the near future, machine learning will see a steep rise in demand and a major crunch in the skilled workforce. This supply lag might startle the businesses but will prove beneficial for the workforce. 

With AI becoming more commonplace, closer to a necessity really; ML will also see a golden future. Larger organizations will expand their usage of ML and many product based startups will pop up. These startups will serve as the bridge between the demand and supply of ML solutions. If you are more of an entrepreneur, even then ML is a path you could definitely take. 

Machine Learning in Practice

When to Use Machine Learning

Machine learning can be used in n number of cases. While some are good for fun and may accelerate or smarten up the system by a small margin, some need an exclusive application of ML.

  • When you can’t code the rules: 

With data that doesn’t follow a relational model or any kind of organization, you can’t just write few SQL queries and get over with it. When there are too many factors affecting the decision, simple rule-based algorithms won’t be able to do justice to it. 

It also becomes difficult to accurately write the code for rules when there are too many factors that need to be fine-tuned or too many parameters that overlap. For example, when the end goal is to recommend products to potential buyers, the factors involved are too many and if we try to write complete code instead of writing an algorithm which studies these factors itself and presents products to potential buyers, there is a high risk of poor performance and errors. 

  • When you can’t scale up manually 

If one is to manually check a hundred answer copies, it probably would take some time but it should be pretty doable. However, for exams that happen on a national level, if we went about applying manual checking, it will take days, maybe months and there is a high chance of bias. 

However, if we took the same exam on OMR sheets and trained a computer to mark it for us, it should take a day or two at max (with enough resources committed to the cause.) .

Similarly, it's easier to write an ML program to flag spam emails than to do this job manually. In these situations, the scale is the major issue as there can be millions of emails that will span across a network. Doing this manually would be a futile effort.

Where is it used? 

Machine learning is widely applicable in many fields. For example, 

  • In Transport, we always want to minimise our costs by deriving an efficient route that one can follow so as to minimise the distance and traveling overheads to maximise profit. If you do this manually, it would take a lot of pre-planning and will still depend on factors like traffic on that specific day, weather conditions etc. 

Whereas, if we applied ML to this scenario, we will have real-time support and rescheduling options depending on the variable which can’t be predicted. 

  • In HealthCare sector, we all know about the poor doctor to population ratio. A huge number of people don’t even have access to medical services. With the application of ML, you can train a computer to have it automate parts of the process so as to save all the time that can be saved. 

Furthermore, real-time data from wearable smart devices is making it possible to adjust the treatment of a patient to the extent of ailment. It will also help in the early detection and correct diagnosis of many diseases. 

  • Financial service providers will utilise ML to detect fraud. This might seem simple but in a world going so rapidly digital, fraud detection is a necessity. 
  • The Government can utilise ML to garner insights and public opinion about an issue without much ado. Also, crimes like identity theft, impersonation, fraud will be greatly reduced with application an ML detection algorithm. 

The list would go on to include oil and gas sector, hospitality, education sector, robotics and so much more. By now, it is pretty clear that the future is in ML. 

Some tips for the Absolute Beginners: 

  • The charm of machine learning and the current hype around it might make you want to jump at the fancy stuff like Deep Learning, Natural Language Processing, Neural Networks, etc.

    Our Advice? Don’t.

    In this guide to machine learning we tried to cover as much as possible and the basic concepts that matter a lot. You would need to be persistent and take baby steps into the arena. Otherwise, the skill you develop will be a whole lot different than what you expected it to be.
     
  • Set goals for every day and choose your goals based on your caliber. Slowing it down or taking it up a notch from your comfort zone might end up in burnout. No to mention, follow these goals like your life depends on it.
     
  • Please do not expect to get all the information you need about ML on one neat and tidy page. ML is still a developing field and the current information may very well be outdated a week later, even earlier. Stay updated with the developments. 
  • Attempt a little of both: Theory and Practice. Without practice, theoretical knowledge might not prove enough and without theoretical knowledge, you won’t know what to do when you practice. Strike the bliss point and you’ll be happy you did.
  • Try to write some algorithms from the ground up. This will not only hone your coding skills but also will help you understand the algorithm better. 
  • PERSIST! Also, ignore people who go around showing off their skills. They are not your competition. You are your own competition. PERSIST and thou shalt Prevail! 

More Interesting Articles: