Natural Language Processing
Information Quality Ratio plot showing statistical dependencies decay as window size increases

Analytical Solution to Word2Vec Softmax & Bias Probing

We provide the first known analytical solution to Word2Vec’s softmax skip-gram objective, introducing the Independent Frequencies Model and deriving a low-cost, training-free method for measuring semantic bias directly from corpus statistics.

Machine Learning
Vintage slot machine with multiple arms representing the multi-arm bandit problem in machine learning

5 Axes of Multi-Arm Bandit Problems: A Practical Guide

Key dimensions that have helped me understand multi-arm bandit problems: action space, problem structure, external information, reward mechanism, and learner feedback.

Machine Learning
NEAT genome encoding diagram showing node genes and connection genes with innovation numbers

A Guide to Neuroevolution: NEAT and HyperNEAT

Discover how NEAT and HyperNEAT changed neuroevolution by automatically designing neural network architectures and scaling them through geometric patterns.

Machine Learning
Diagram showing the three main types of machine learning: supervised, unsupervised, and reinforcement learning

Breaking Down Machine Learning for the Average Person

Understand the pattern recognition behind Netflix recommendations, email spam filters, and game-playing AI through three core machine learning approaches.

Machine Learning
Diagram illustrating knowledge-based agent architecture with knowledge base, reasoning, and action components

Foundations of AI: Knowledge-Based Agents and Logic

Explore the building blocks of classic AI reasoning, from knowledge bases and logic to how systems draw new conclusions from existing knowledge.

Scientific Computing
Cartesian Genetic Programming graph showing input nodes, function nodes, and output nodes with active and inactive connections

Cartesian Genetic Programming in Julia

A fork of Dennis Wilson’s CGP.jl adding the Atari reinforcement-learning experiment layer: experiment variants, fitness functions, and hyperparameter tuning.

Scientific Computing
Radix-2 DIT butterfly diagram showing the fundamental FFT operation with twiddle factor multiplication

FFTW Compiler in Haskell

A Haskell reimplementation of FFTW’s genfft metaprogram, generating straight-line optimized C kernels for FFTs via a symbolic DAG and algebraic simplification.

Scientific Computing
Flowchart diagram showing the recursive backtracking algorithm for constraint satisfaction in schedule generation

Term Schedule Optimizer

A scraper and recursive backtracking search over Drexel’s Term Master Schedule, enumerating every course schedule that satisfies a set of hard and soft constraints.