Hi, I'm Jack! I lead the "model psychiatry" team at Anthropic. I'm interested in understanding the cognition of modern language models, so that we can make them more reliable and aligned with human values. Previously, I did my PhD in the Center for Theoretical Neuroscience at Columbia University, where I studied learning mechanisms in the brain and their relationship to machine learning algorithms. For a list of my publications, see my Google Scholar profile.
A computer chess player. The difficulty can be adjusted by setting the time the computer takes for each move. Uses standard techniques for chess AIs (e.g. minimax algorithm with pruning, piece-square tables, etc.) and has been optimized through a repeated genetic algorithm simulation. Rough sense of its playing level: it beats me most games, but I know people who can beat it most games.
A 2D physics simulation program written in Java. Supports collisions between convex polygons and circles, remote attractive/repulsive forces (e.g. universal gravitation), "Earth-style" downward gravitation, springs (damped and simple), and friction. Comes with 6 preconfigured demos of the engine's various capabilities.
Simulates the flow of charges within a conductor. Users can set the charge of the conductor, adjust its shape, and subject it to electric fields produced by external charges. Users can also toggle between viewing the charges particles within the conductor and viewing the charge density along its surface. Can be used to demonstrate various concepts in electromagnetism, including Faraday cages and the fact that charge tends to accumulate at sharp points.
A multiplayer 3D flying/combat game written in java. Graphics courtesy of LWJGL. Can be played by computers connected to the same network. Incorporates a simple 3D physics engine, multi-thread programming on the client side, some basic networking, and quaternion-based flight mechanics.
My first ever programming project (from back in 9th grade)! A program that presents the user with a series of scenarios and then purports to tell him/her which character from Great Expectations he/she most closely resembles. Warning: the program is more frank than it is accurate. Be prepared to have your feelings hurt.
A limited and unfinished/unpolished experiment with natural language processing, powered by OpenNLP and WordNet. It can process simple statements (e.g. "Helen likes big dogs") and then respond to some simple, related questions (e.g. "What does Jim like?"). Warning: only understands stilted (and sometimes incorrect) grammar!
Proprietary automated testing software developed for InfoSnap, a company that facilitates the process of registration and enrollment management for schools. Used a Python scripts, Selenium, and SauceLabs to automatically test updates to InfoSnap's web forms on all major browser/OS combinations.
Performs image classification by sequentially selecting and processing small "glimpse" windows from the image. Attention mechanism is non-differentiable and thus must be trained using reinforcement learning -- specifically, the REINFORCE algorithm. Based on the architecture described in "Recurrent Models of Visual Attention" (Mnih et al., 2014). Model implemented in TensorFlow.
Trains a feedforward network to answer questions about whether certain subjects (e.g. "canary") have certain properties (e.g. "can fly"). After this training, performs hierarchical clustering on the subjects based on their similarity in network's feature space, revealing the formation of abstract categorizations. Written in MATLAB, from scratch. Based on the model described in "The Parallel Distributed Processing Approach to Semantic Cognition" (McClelland and Rogers, 2003).
General-purpose algorithm for reinforcement learning in environments with continuous action spaces. Compatible with the MuJoCo environments in the OpenAI Gym. Based on the "Normalized Advantage Functions" algorithm", described in "Continuous Deep Q-Learning with Model-based Acceleration" (Gu et al., 2016).
Presented at the NIPS 2017 Workshop on Cognitively Informed Artificial Intelligence. Recurrent neural networks with differentiable attention mechanisms have had success in generative and classification tasks. We show that the classification performance of such models can be enhanced by guiding a randomly initialized model to attend to salient regions of the input in early training iterations. We further show that, if explicit heuristics for guidance are unavailable, a model that is pretrained on an unsupervised reconstruction task can discover good attention policies without supervision. We demonstrate that increased efficiency of the attention mechanism itself contributes to these performance improvements. Based on these insights, we introduce bootstrapped glimpse mimicking, a simple, theoretically task-general method of more effectively training attention models. Our work draws inspiration from and parallels results on human learning of attention.
Recurrent neural networks with differentiable attention mechanisms have had success in generative and classification tasks. We show that the classification performance of such models can be enhanced by guiding a randomly initialized model to attend to salient regions of the input in early training iterations. We further show that, if explicit heuristics for guidance are unavailable, a model that is pretrained on an unsupervised reconstruction task can discover good attention policies without supervision. We demonstrate that increased efficiency of the attention mechanism itself contributes to these performance improvements. Based on these insights, we introduce bootstrapped glimpse mimicking, a simple, theoretically task-general method of more effectively training attention models. Our work draws inspiration from and parallels results on human learning of attention.
Analysis of the computational constraints that give rise to the distinctive receptive field patterns in the retina. In progress.
A 3D printed robot created using the MakerBot printer. Contains an ultrasonic sensor on the front that allows it to detect nearby objects. I've programmed it to find the nearest object, approach it, and snap menacingly with its claws. See it in action here.