Thomas Brownback

My background is in law and computer science, with interests in intellectual property, trade, international relations, computer security, and philosophy.

A few things I like

XKCD by Randall Munroe
Interactive Bayes Simulator by Nikita Skobelevs
Anki by Damien Elmes
Solarized by Ethan Schoonover
Old genre films

Experiments and drafts

Reverse-engineering the Jane Street Tensor Puzzle (link)

Jane Street published a 5,000-layer, 289-million-parameter PyTorch network connected to an input/output box that produced zero for almost every input. I built tooling to trace how changes in one part of the network propagated to the end. I cataloged and clustered small circuits in the linear and ReLU layers to build composite functions, and wrote an automated parser that reconstructed higher-order functions from linear-layer primitives, recovering the entire "grammar" I could use to compile similar tensor puzzles. Even so, I hit several dead ends because the network was too diffuse: any information going into it was scattered along the way, distributed almost perfectly, like a hash function. Aha! Eventually I realized it wasn't like a hash function. It WAS a hash function. The entire network tested an MD5 hash against a fixed digest. Once I had reconstructed the digest, I went back to brute force, this time with a few more clues to narrow the search. The write-up walks through my full approach and the struggles and setbacks along the way before I finally cracked the puzzle, with strong hints about the winning input.

Training models at cipher identification for cryptanalysis (link)

To study the impact of hyperparameters, I expanded the system to automatically train suites of LSTM models in bulk, hundreds or thousands at a time, each with a slightly different configuration. That created a new problem: how to compare all these models to understand which settings had the most impact on performance. So I built a bespoke visualization tool to quickly see and understand the exact impact of changes to the training data and the hyperparameters. Cipher identification is a great problem for learning about model performance and tuning because labeled training data is trivial to generate. Early findings indicate LSTMs are often robust at distinguishing many classical ciphers with minimal training, though they can struggle when learning to distinguish multiple categories all in one model.

Decompositional analysis of random midjourney prompts (link)

The Internet and other unreliable oracles: Gettier problems in the disinformation age (link)

Military-age male manpower model: Russia vs Ukraine (link)

Contact

thomas.brownback at gmail