Andrej Karpathy
Stanford Ph.D. student, Computer Science

email: karpathy _at_ cs.stanford.edu
office: Gates 114
association: Stanford AI Lab

advisor: Fei-Fei Li
rotation advisors: Daphne Koller, Andrew Ng, Vladlen Koltun, Sebastian Thrun

Bio

2005-2009 Undergrad: CS, Physics and Math at University of Toronto.
2009-2011 Masters: CS at University of British Columbia. I worked with Michiel van de Panne on Motor Control in physically simulated articulated figures.
2011 Google Research: I was a summer intern at Google Research in Mountain View. I worked on a large scale Deep Learning project involving video data.

My main research interests are now in Machine Learning, and my preferred application domain is Vision. I maintain a mostly academic blog for fun. I wish all researchers had one.

As far as my non-academic interests go I write quite a bit of Web/Javascript stuff, iOS/Android apps, random simulations of physical and biological systems, I have entrepreneurial inclinations, I think a lot about the brain/neuroscience/AI, evolution/genetics, tech/gadgets, design, education, robots, space exploration, lifelogging/personal analytics, healthy life style/diet, sustainable energy, and I solve Rubik's cubes under 20 seconds.

Publications


Object Discovery in 3D scenes via Shape Analysis
Andrej Karpathy, Stephen Miller, Li Fei-Fei
ICRA 2013. [pdf,code,data]
Emergence of Object-Selective Features in Unsupervised Feature Learning
Adam Coates, Andrej Karpathy, Andrew Ng
NIPS 2012. [PDF]
Curriculum Learning for Motor Skills
Andrej Karpathy, Michiel van de Panne
AI 2012. [full PDF] [short PDF] [video]
Locomotion Skills for Simulated Quadrupeds
Stelian Coros, Andrej Karpathy, Benjamin Jones, Lionel Reveret, Michiel van de Panne
SIGGRAPH 2011. [project web page] [video]
Teaching Assistant

Stanford Fall 2011, CS 229A: Machine Learning Online Class (assignments)
UBC Spring 2011, CPSC 540 : Graduate Probabilistic Machine Learning
UBC, 2010-2011, 3 x CPSC 121: Discrete Mathematics (taught tutorials)

 

Course Work

Coursera: Genetics and Evolution (statement of accomplishment! :p)

Stanford: Maching Learning (Andrew Ng), Computer Vision (Fei Fei Li), Probabilistic Graphical Models (Daphne Koller, Kevin Murphy), Convex Optimization (Stephen Boyd), Advanced Probabilistic Graphical Models (Kevin Murphy), Startup (Peter Thiel), and Tennis :p

UBC: Machine Learning I (Nando de Freitas), Machine Learning II (Kevin Murphy), Computer Vision I (Bob Woodham), Computer Vision II (David Lowe)

 

Scaling for Multimodal 3D Object Detection (C++)
This was a fun course project for my computer vision class at Stanford. Full report is here in PDF.
Rubik's cube color extractor (Python)
Computer Vision class project for David Lowe's vision class at UBC.
Library for training binary Restricted Boltzmann Machines (MATLAB)
This course project ended up being incorporated into Kevin Murphy's pmtk3 Machine Learning toolbox.

 

Coding
side projects
svmjs: SVMs in Javascript SMO implementation, arbitrary kernels, and also pretty Canvas + HTML5 GUI for visualizing SVMs. (Javascript).
Research Lei (Python, Javascript) is an Academic Papers Management and Discovery System. It helps researchers build, maintain, and explore academic literature more efficiently, in their browser.
NIPS 2012 accepted papers (Javascript+Python), in a much nicer format. Paper thumbnails, LDA topic analysis, tf-idf similar papers ranking. Helps with exploring newly published papers.
I maintain academiccountdown.com (Javascript). It is a nice way to visualize upcoming paper deadlines (at least for Machine Learning and Computer Vision for now).
Random Forest implementation for MATLAB (supports arbitrary weak learners)
Evolutionary Artificial Life Simulator of Predator-Prey dynamics (C++)
simulates evolution of little organisms with neural network brains who can sense and hunt each other.
iPhone app (Objective C). Made over $20,000 on this so far :). I've also ported it to an Android app (phew!)

- Also, I recently released a 2-4 player iPad game called Loud Snakes.
- I also hacked on a photo sharing iPhone app but turns out I underestimated the amount of work necessary :)
Sketcher [video] (Python) simulates a person drawing an image.
Tetris AI [video] (Python) is a Tetris AI player that can hold its own for few hours.
- Also check out my Multiplayer Co-op Tetris Lots of fun! :)
- Update: I now also ported the co-op Tetris to Javascript and to work over network in browser using node.js and socket.io. Play here.
4 seasons animation [video] (Python) simulates a tree through 4 seasons and looks pretty.

- Many more crappy projects I worked on long time ago. [videos]
- and some more on my github


Lectures
I make educational videos on YouTube for fun:
Solving the Rubik's cube :p (Beginner to Expert) (I'm qualified because I solve cubes in ~17seconds on average (example video from a competition here). These have ~4.5 million+ views, which is kinda nice.)
Game Programming in Python Tutorials. Just an experiment. I would rather teach Javascript + HTML5 for game making now.
Fractal Mathematics Tutorials
Machine Learning Tutorials (a bit of a failed experiment, but something that builds on this is on my mind)

Personal

- Advice for doing well in undergrad classes
- Little comic-like things I make for fun sometimes
- My Speedcubing page. This now averages about ~1200 views/day, I'm happy that people find it useful when learning to cube.
- OPML of some of the blogs I follow: Google Reader RSS feeds (can import to GReader)
- Resume