6 posts

Concepts

2022

Intuition for Linear Programming

Understanding the geometric intuition and algorithms for solving linear programming problems. Covers (1) defining the solution space as the area within a convex polytope space, (2) understanding that the optimal solution occurs at a vertex point and translating that geometric intuition and more efficient search path into the Simplex matrix-based algorithm, (3) the idea of Duality and how it exposes additional information, and (4) how the Interior Point method works not just for linear programs, but also for more general convex optimization problems.


2021

Exploring FPGA Deep Learning Accelerators

I wanted to learn about the process of using FPGA hardware accelerators for more power-efficient deep learning inference. Through this project, I learned about the process of creating and building an image for the Zybo ZYNQ FPGA, PYNQ application development, and Vitis AI development tools. I also surveyed the functionality of FINN, an experimental framework from Xilinx Research Labs to explore quantized deep neural network inference on FPGAs.


Procedural Graph Generation For More Realistic Simulations

Many real world systems can be modeled with graphs. Most stable and complex graphs have small-world (local clustering) and scale-free (hubs) properties. In this project, we (1) identified algorithms that generated small-world and scale-free graphs, (2) studied and implemented generation functions for each type of algorithm, (3) created custom animations of graph generation process, and (4) verified that our graphs exhibited the expected structural properties.


Deep Dive Into Huffman Coding

Huffman coding is a variation on prefix codes that optimize lossless data compression. In this deep dive, we (1) introduced how Huffman Codes work, (2) explored the theoretical limits of Huffman compression, (3) analyzed resilience to error, and (4) followed the evolution of research on using choice of Huffman tables to encode secret messages in MP3 files.


Survey of Data Structures for Large Scale Information Retrieval

A survey of data structures used in large-scale information systems. Covers (i) how the inverted index data structure allows for constant time querying (ii) the need, problems, and clever design details of methods to compress big numbers (focusing on Elias-Fano and Partitioned Elias-Fano), and (iii) BitFunnel, an unusual probabilistic data structure used by the Bing search engine to bypass the curse of inverted index global updates.

5-minute video summary:


1D and 2D Fourier Transforms

Concepts and math behind 1D and 2D discrete Fourier Transforms for signal and image analysis. Overview of mathematical steps, post-processing, assumptions, and reading of phase and magnitude plots.