Machine Learning (ML) Convolution Layer: The layer that takes over 70% of time in a Machine Learning model Convolutional Layer is the most important layer in a Machine Learning model where the important features from the input are extracted and where most of the computational time (>=70% of the total inference time) is spent. Concepts involved are kernel size, padding, feature map and strides
Data Structures AVL Tree: A tree that can stay balanced by rotating An AVL Tree (Adelson-Velsky and Landis tree) is a self balancing binary search tree such that for every internal node of the tree the heights of the children of node can differ by at most 1. It uses four types of rotations to keep itself balanced and delete, insert and search take O(log N) time
Computer Architecture Graphics Processing Unit (GPU) vs Tensor Processing Unit (TPU) vs Field Programmable Gate Arrays (FPGA) Graphics Processing Unit (GPU), Tensor Processing Unit (TPU) and Field Programmable Gate Array (FPGA) are processors with a specialized purpose and architecture. We have compared these in respect to Memory Subsystem Architecture, Compute Primitive, Performance, Purpose, Usage and Manufacturers.
Data Structures Treap / Randomized cartesian tree A treap is a height balanced binary tree with heap properties. It is used to store a sequence in a tree, which allows for various applications like searching. It takes O(log N) time complexity for search, insert and delete operations and takes O(N) space complexity
clustering algorithm K+ Means Clustering algorithm K+ Means algorithm is a clustering algorithm and an improvement to K means clustering algorithm and solves the problem of choosing K (number of clusters). It is great at detecting outliers and forming new clusters. The complexity is O(t*(k^2)*n) which is slightly more than K means algorithm
Machine Learning (ML) Types of Data Formats in Machine Learning Each data format represents how the input data is represented in memory. This is important as each machine learning application performs well for a particular data format and worse for others. Various data formats are NHWC, NCHW, NCDHW and NDHWC
Machine Learning (ML) Types of Loss Functions in Machine Learning The various types of loss functions are mean_squared_error, mean_absolute_error, mean_absolute_percentage_error, mean_squared_logarithmic_error, squared_hinge, hinge, categorical_hinge, logcosh, categorical_crossentropy, sparse categorical / binary crossentropy, kullback_leibler_divergence and other
Machine Learning (ML) Bayesian model A Bayesian model is a statistical model where we use probability to represent both the uncertainty regarding the output and input to the model. The basic idea is that we start by assuming something which is adjusted based upon input data. We look into Bayesian Linear Regression as well
Data Structures Cartesian Tree A Cartesian tree is a binary rooted tree data structure that can answer range queries can be answered by finding least common ancestors in the tree. An inorder traversal of the tree would give the original sequence used to form the tree. It is used as binary search tree for an ordered sequence
Data Structures Prefix sum array Prefix Sum array is a data structure design which helps us to answer several queries such as sum in a given range in constant time which would otherwise take linear time. It requires a linear time preprocessing and is widely used due to its simplicity and effectiveness.
cyber security Heap Spraying Attack Heap Spraying Attack is a type of cyber attack in which the attacker uses the ability to write the series of bytes in the memory for the running program at various places in the heap. The main aim of the attack is to ensure that the bytes can be accessed later as the vector of the separate attack.
cyber security DLL Hijacking Attack Dynamic Link Libraries (DLL) Hijacking is an type of cyber attack when hackers replace the genuine .dll file with the malicious file. This corrupted file, when used by the application, gives erroneous results as programmed by the hacker.
cyber security Password Spraying Attack Password Spraying is a form of cyber attack similar to a brute force attack, where the hacker tries to gain access to the company system by testing out a small number of commonly used passwords on a large number of accounts. This attack allows a attacker to gain access to multiple accounts
cyber security BlueBump Attack BlueBump attack is an cyber attack for bluetooth enabled devices. The attack allows the attacker to connect to the Bluetooth device of target, and then exploit the link key of the target device. The attack gives the attacker unlimited access to the victim's device which is in a very limited range
cyber security Xpath Injection Attack XPath Injection is an cyber attack used to fetch sensitive data (stored in XML format) from a website, by injecting malicious XPath queries. This attack works for applications that leverage user-supplied information to construct XPath queries.
Data Structures 2D Fenwick Tree / 2D Binary Indexed Tree Fenwick Tree is used to answer range or interval queries in an array in logarithmic time. Fenwick tree can be generalized to multiple dimensions. 2D Fenwick tree is one such implementation used to answer sub-matrix queries, i.e. queries in 2 dimensions. It requires the operation to be invertible.
Data Structures 2D Segment Tree Segment Tree is used to answer range queries in an array. The data structure can be extended to 2 dimensions to answer sub-matrix queries in logarithmic time. Some examples of these queries are Maximum element in sub-matrix It can be seen as a segment tree of segment trees. We give an example for it
Algorithms Cohen Sutherland Line Clipping Algorithm Cohen Sutherland Algorithm is a linear time complexity line clipping algorithm that cuts lines to portions which are within a rectangular area. It eliminates the lines from a given set of lines which belongs outside the area of interest and clip those lines which are partially inside
automaton Von Neumann Cellular Automaton Von Neumann Cellular Automaton model is the original expression of cellular automaton. It has 29 states which are the minimum for a self-replicating machine and all of which can be grouped into four categories: blank, transmission, confluent and transition states. It simulates real systems
Machine Learning (ML) Sentiment Analysis using LSTM with Keras Sentimental analysis is one of the most important applications of Machine learning. It is used extensively in Netflix and YouTube to suggest videos, Google Search and others. In this article, we will build a sentiment analyser from scratch using KERAS framework with Python using concepts of LSTM.
Machine Learning (ML) Long Short Term Memory (LSTM) Long short-term memory (LSTM) units are units of a recurrent neural network (RNN). An RNN composed of LSTM units is often called an LSTM network. A common LSTM unit is composed of a cell, an input gate, an output gate and a forget gate. It has applications in Speech recognition, Video synthesis
Algorithms Number of arithmetic progression subsequences in a given set of numbers The problem is that given an array of n positive integers. The task is to count the number of Arithmetic Progression subsequence in the array. This can be solved using dynamic programming in linear time complexity.
Algorithms Find the Longest Arithmetic Progression using Dynamic Programming The problem we will solve is that given a set of integers in sorted order, find length of longest arithmetic progression in that set. This can be solved by brute force in O(N^3) while a dynamic programming approach with take O(N^2) time complexity.
Machine Learning (ML) Hierarchical Clustering Hierarchical clustering is a method of clustering. In this method, we find a hierarchy of clusters which looks like the hierarchy of folders in your operating system. This hierarchy of clusters will resemble a tree structure and it is called dendrogram
Machine Learning (ML) Kernel Principal Component Analysis (KPCA) Kernel Principal Component Analysis (KPCA) is a non-linear dimensionality reduction technique. It is an extension of Principal Component Analysis (PCA) - which is a linear dimensionality reduction technique - using kernel methods.