honest reason

Projects

Generative AI

Natural Language Processing and Sequence Models

Computer Vision

Machine Learning Engineering

An agent for modeling research

An AI agent for Numerai research that proposes experiments, runs training code, evaluates out-of-sample performance, and uses the results to choose what comes next.

What I built

I developed an agent that connects several parts of the modeling workflow: proposing an experiment, executing the training code, evaluating its performance on data outside the training sample, and using that evidence to guide another experiment. The project applies agentic systems to Numerai modeling research.

The interesting problem

Once a system can run its own experiments, the quality of its decisions matters as much as its ability to write code. A better score needs an explanation: what changed, what was held constant, and how much confidence should the result earn? Those questions make research automation an evaluation problem as well as an orchestration problem.

Questions worth exploring

  • How should an agent distinguish a useful result from noise?
  • What experiment history should it retain, and when should it stop exploring?

Structured data from PDFs

Extracting structured information from PDFs using InternVL2 and Mistral.

What I built

I used InternVL2 and Mistral to extract structured data from PDFs. The task sits between document understanding and data engineering: information presented for a person to read has to become something another program can use.

Why the format matters

In a document, layout can carry meaning alongside the words. A value may depend on the heading above it or the row and column around it. InternVL2 provides a multimodal approach to working with visual and textual information. For an extraction system, a well-formed output is only part of the job; the values also need to agree with the source document.

Questions worth exploring

  • How should an extractor represent missing or ambiguous information?
  • How can each extracted field be checked against its source?

Further reading

Training word embeddings

Training a continuous bag-of-words model on the New York Times Corpus to learn vector representations of words.

What I built

I trained word embeddings on the New York Times Corpus using a continuous bag-of-words model. This project worked directly with a foundational language-modeling approach: learning numerical representations of words from the contexts in which they appear.

The method

Continuous bag-of-words uses surrounding words to predict a target word. Training that prediction task produces word vectors that can be compared in a shared space. It is a compact way to examine how statistical patterns in text become useful representations. The corpus matters: vectors learned from newspaper writing reflect the language and coverage of that collection.

Questions worth exploring

  • Which word relationships are captured well, and which are missed?
  • How do vocabulary choices and the context window change the representation?

Further reading

Topics over Time

An expectation-maximization adaptation of Wang and McCallum’s Topics over Time model, applied to U.S. presidential State of the Union addresses.

What I built

I implemented an expectation-maximization adaptation of the Topics over Time model introduced by Wang and McCallum in 2006. I applied it to U.S. presidential State of the Union addresses, a collection in which both the language and the date of a speech matter.

The method

Topics over Time models word patterns together with document timestamps. A topic has both a distribution over words and a distribution over time, allowing temporal information to help identify topical structure. The distinction is useful: discovering topics with dates included is a different task from finding topics first and plotting them on a timeline afterward.

Questions worth exploring

  • How sensitive are the topics to preprocessing and the number of topics chosen?
  • How should a reader distinguish an interpretable pattern from a historical explanation?

Further reading

· In progress

Chessboard to FEN

Recognizing pieces and their positions from 3D chessboard images and converting the board into FEN notation.

What I am building

A computer vision model that identifies the piece and color on each of the board’s 64 squares. The recognized board is represented using the piece-placement field of Forsyth–Edwards Notation (FEN). A single image does not establish the rest of the game state, such as whose turn it is or which castling rights remain.

The interesting problem

The same position can look very different with a lower camera angle, an unusual viewpoint, different piece colors, or a different piece design. Pieces can also obscure one another. I am working with synthetic 3D boards to explore these variations and improve recognition beyond familiar-looking images.

Evaluating the whole board

Correctly identifying most squares is not enough: one wrong piece changes the position. The project therefore considers both square-level predictions and exact-board accuracy, with particular attention to unfamiliar visual conditions.

Recognizing dog breeds

A dog-breed image classifier built with PyTorch, ResNet, and transfer learning.

What I built

I built a dog-breed classifier using PyTorch, a ResNet architecture, and transfer learning. The task is fine-grained image classification: assigning an image to a breed, where the differences between classes can be subtle.

The method

Transfer learning adapts an existing model to a new task. ResNet uses residual connections to make deep networks easier to train. Together, these provide a practical foundation for an image-classification project. The evaluation questions are concrete: whether the model recognizes useful visual features, how it behaves across different kinds of photographs, and which breeds it tends to confuse.

Questions worth exploring

  • Which errors come from similar-looking breeds, and which come from the photograph itself?
  • How should the classifier handle an image outside its intended set of breeds?

Further reading

Advent of Code 2021

Programming puzzles involving algorithms, data structures, and problem solving.

CIFAR-10 Image Classification

Deep learning for image classification using the CIFAR-10 dataset.

NumPy Neural Network for MNIST

A neural network implemented with NumPy for MNIST digit classification.

Hotel Classification

A machine learning project involving hotel classification.

AlexNet

Image classification with the AlexNet convolutional neural network architecture.

CNN/LSTM for Audio

Exploring convolutional and recurrent neural networks for audio data.

Restricted Boltzmann Machine (RBM)

Exploring restricted Boltzmann machines as probabilistic graphical models.

CI/CD Example Repository

An example repository for continuous integration and continuous delivery.

RAG Chatbot

A chatbot using retrieval-augmented generation to answer questions from reference material.