Kernel Functions For Machine Learning

You must have heard the term ‘kernel’ floating around quite a few times. People from many different backgrounds use it in different contexts. The thing is that this term has been applied to different things in different domains. When we talk about operating systems, we talk about which kernel is being used. Kernel is also used extensively in parallel computing and in the GPU domain, where it is the function which is called repetitively on a computing grid. It has a few other meanings in different hardware related programming fields. But in this post, I will discuss kernels as applied to machine learning. Kernels are used in machine learning to transform the data so that the classification becomes easier. One common thing in all these different definitions of the term ‘kernel’ is that it is being used as a bridge between two things. In operating systems, it is the bridge between hardware and software. In GPU domain, it is the bridge between the geometric grid and the programmer. In machine learning, it is the bridge between linearity and non-linearity. I will discuss the underlying mathematical structure in this post. So readers beware, this is a technical deep-dive.   Continue reading “Kernel Functions For Machine Learning”

Support Vector Machines

In machine learning, we have supervised learning on one end and unsupervised learning on the other end. Support Vector Machines (SVMs) are supervised learning models used to analyze and classify data. We use machine learning algorithms to train the machines. Once we have a model, we can classify unknown data. Let’s say you have a set of data points and they belong one of the two possible classes. Now our task is to find the best possible way to put a boundary between the two sets of points. When a new point comes in, we can use this boundary to decide whether it belongs to class 1 or class 2. In real life, these data points can be a set of observations like images, text, characters, protein sequences etc. How can we achieve this in the most optimal way?   Continue reading “Support Vector Machines”

Panoramic Images


Consider a situation where you are standing on top of a mountain or some other beautiful natural scenery. You are enjoying a beautiful view that seems to span from far left to far right and you want to take a nice picture of the whole thing. Your camera allows you to capture only a limited field of view. So to capture the whole scene, you will have to capture multiple images. Doesn’t feel exactly the same watching it in pieces, does it? We really want to capture the beauty within a single image. You can certainly record a video and capture the whole scene, but what if you want to print it out? This is where panoramic photography technique comes in. Panoramic images are images with elongated field of view. The image above is one such example. These images cannot be captured with a single camera click because the field of view is limited. So how do we do capture panoramic images?   Continue reading “Panoramic Images”

Artificial Neural Networks

We want our machines to learn everything on their own as much as possible. Over the past few decades, researchers have come up with many theories and formulations about how we can achieve this in the best possible way. This realm is called machine learning. We come up with algorithms to teach the machines how to learn. I have discussed more about machine learning here. Human brain seems to achieve this rather effortlessly. Our ultimate goal is to make the machines as good as our brains, or even better. The formulation of Artificial Neural Network (ANN) is an attempt towards this.   Continue reading “Artificial Neural Networks”

Augmented Reality

Augmented Reality (AR) has been one of the most exciting fields to have come into prominence in the last few years. Back when people starting working aggressively on computer graphics, great innovations took place. Today, we have 3D movies with high end computer graphics, but it is still on the screen inside our machines. People then started to think how to pull the graphics out of the screen and integrate them into real world. The result of this effort was augmented reality. It tries to blur the line between what’s real and what’s virtual. It enhances our perception of reality. You can take a look at this video to see what I’m talking about. How does this technology work? How does it track the marker?   Continue reading “Augmented Reality”

Fingerprint Recognition

Fingerprint recognition was one of the first forms of biometric authentication techniques developed. Biometric authentication refers to the process of identifying humans by their natural traits. This can include fingerprints, face, voice, iris etc. When you want machines to authenticate a particular person, you choose a feature of that person which he cannot control. Fingerprints are still widely used in criminal investigations and in certain other domains where security is required. Have you ever wondered if fingerprints are distinct enough to be used to identify a person? How do they match fingerprints?   Continue reading “Fingerprint Recognition”