Latest Posts
See what's new
Understanding Backpropagation With Gradient Descent
On September 13, 2021 In Deep Learning, Machine Learning
In this post, we develop a thorough understanding of the backpropagation algorithm and how it helps a neural network learn new information. After a conceptual overview of what backpropagation aims to achieve, we go through a brief recap of the relevant concepts from calculus. Next, we perform a step-by-step walkthrough of backpropagation using an
How do Neural Networks Learn
On September 3, 2021 In Deep Learning, Machine Learning
In this post, we develop an understanding of how neural networks learn new information. Neural networks learn by propagating information through one or more layers of neurons. Each neuron processes information using a non-linear activation function. Outputs are gradually nudged towards the expected outcome by combining input information with a set of weights that
Understanding Hinge Loss and the SVM Cost Function
On August 22, 2021 In Classical Machine Learning, Machine Learning, None
In this post, we develop an understanding of the hinge loss and how it is used in the cost function of support vector machines. Hinge Loss The hinge loss is a specific type of cost function that incorporates a margin or distance from the classification boundary into the cost calculation. Even if new observations
What is a Support Vector?
On August 17, 2021 In Classical Machine Learning, Machine Learning
In this post, we will develop an understanding of support vectors, discuss why we need them, how to construct them, and how they fit into the optimization objective of support vector machines. A support vector machine classifies observations by constructing a hyperplane that separates these observations. Support vectors are observations that lie on the
What is a Kernel in Machine Learning?
On August 11, 2021 In Classical Machine Learning, Machine Learning
In this post, we are going to develop an understanding of Kernels in machine learning. We frame the problem that kernels attempt to solve, followed by a detailed explanation of how kernels work. To deepen our understanding of kernels, we apply a Gaussian kernel to a non-linear problem. Finally, we briefly discuss the construction
Regularization in Machine Learning
On July 31, 2021 In Machine Learning, Machine Learning Foundations
In this post, we introduce the concept of regularization in machine learning. We start with developing a basic understanding of regularization. Next, we look at specific techniques such as parameter norm penalties, including L1 regularization and L2 regularization, followed by a discussion of other approaches to regularization. What is Regularization? In machine learning, regularization
Introduction to the Hypothesis Space and the Bias-Variance Tradeoff in Machine Learning
On July 28, 2021 In Machine Learning, Machine Learning Foundations
In this post, we introduce the hypothesis space and discuss how machine learning models function as hypotheses. Furthermore, we discuss the challenges encountered when choosing an appropriate machine learning hypothesis and building a model, such as overfitting, underfitting, and the bias-variance tradeoff. The hypothesis space in machine learning is a set of all possible
Types of Machine Learning: A High-Level Introduction
On July 21, 2021 In Machine Learning, Machine Learning Foundations
In machine learning, we distinguish between several types and subtypes of learning and several learning techniques. Broadly speaking, machine learning comprises supervised learning, unsupervised learning, and reinforcement learning. Problems that do not fall neatly into one of these categories can often be classified as semi-supervised learning, self-supervised learning, or multi-instance learning. In supervised learning,
Hashing in Java
On July 13, 2021 In Data Structures, Software Design
In this post, we will discuss hashing in Java and introduce a few data structures such as hashtables and hashmaps that rely on hashing. What is Hashing? Hashing is a technique that allows a program to store and subsequently find an object in a large collection of items without going through every item. A
Priority Queue in Java: A Complete Introduction
On July 8, 2021 In Data Structures, Software Design
In this post, we introduce the priority queue in Java and explain the underlying concept of a heap. What is a Priority Queue in Java? In a priority queue, items are ordered alphabetically in ascending order, numerically in ascending order, or according to a user-defined attribute based on a custom comparator. In a priority