Ian Goodfellow

Research Scientist at Google
Mountain View, CA
e-mail: goodfellow@google.com

About Me

I graduated from Université de Montréal with a Ph.D. in machine learning in 2014. At Université de Montréal, I was a member of Yoshua Bengio's LISA lab since 2010. I graduated from Stanford University in 2009 with a B.Sc. and an M.Sc. in Computer Science. At Stanford, I was part of Andrew Ng's research group, where I worked on deep learning and the Stanford AI Robot.

In the media

My 2014 Google internship project that I completed along with the Street Smart team has been featured in online articles from MIT Technology Review, Gizmodo, Vice, Wired, Slate, and Eparsa.

Research Interests

I want to figure out how the brain works and build real artificial intelligence. So far I have mostly worked on that goal by designing new deep learning algorithms.

Book in preparation

I am working on a textbook about deep learning:
Deep Learning
Yoshua Bengio, Ian Goodfellow, and Aaron Courville.
In preparation for MIT Press.
See the draft available free online. Feedback is very welcome.

Conference Papers

Generative Adversarial Networks [ArXiv] [Code / hyperparameters]
Ian J. Goodfellow, Jean Pouget-Abadie, Mehdi Mirza, Bing Xu, David Warde-Farley, Sherjil Ozair, Aaron Courville, Yoshua Bengio
NIPS 2014

On the Challenges of Physical Implementations of RBMs [ArXiv]
Vincent Dumoulin, Ian J. Goodfellow, Aaron Courville, Yoshua Bengio
AAAI 2014

Multi-digit Number Recognition from Street View Imagery using Deep Convolutional Neural Networks [ArXiv]
Ian J. Goodfellow, Yaroslav Bulatov, Julian Ibarz, Sacha Arnoud, and Vinay Shet
ICLR 2014 (Oral presentation)

An Empirical Investigation of Catastrophic Forgetting in Gradient-Based Neural Networks [ArXiv]
Ian J. Goodfellow, Mehdi Mirza, Da Xiao, Aaron Courville, and Yoshua Bengio
ICLR 2014

An empirical analysis of dropout in piecewise linear networks [ArXiv]
David Warde-Farley, Ian J. Goodfellow, Aaron Courville, and Yoshua Bengio
ICLR 2014

Intriguing properties of neural networks [ArXiv]
Christian Szegedy, Wojciech Zaremba, Ilya Sutskever, Joan Bruna, Dumitru Erhan, Ian Goodfellow, Rob Fergus
ICLR 2014

Multi-prediction deep Boltzmann machines [pdf] [bib] [Code / hyperparameters]
Ian J. Goodfellow, Mehdi Mirza, Aaron Courville, and Yoshua Bengio
NIPS 2013 (Previously an oral presentation at ICLR 2013 workshops track)

Challenges in representation learning: a report on three machine learning contests [arXiv preprint] [FER-2013 dataset] [MLC-2013 dataset]
Ian J. Goodfellow, Dumitru Erhan, Pierre Luc Carrier, Aaron Courville, Mehdi Mirza, Ben Hamner, Will Cukierski, Yichuan Tang, David Thaler, Dong-Hyun Lee, Yingbo Zhou, Chetan Ramaiah, Fangxiang Feng, Ruifan Li, Xiaojie Wang, Dimitris Athanasakis, John Shawe-Taylor, Maxim Milakov, John Park, Radu Ionescu, Marius Popescu, Cristian Grozea, James Bergstra, Jingjing Xie, Lukasz Romaszko, Bing Xu, Zhang Chuang, and Yoshua Bengio
ICONIP 2013. Oral presentation by Dong-Hyun Lee.

Maxout Networks. [pdf] [bib] [code/hyperparameters]
Ian J. Goodfellow, David Warde-Farley, Mehdi Mirza, Aaron Courville, and Yoshua Bengio.
ICML 2013 (Full-length oral presentation).

Large-Scale Feature Learning With Spike-and-Slab Sparse Coding. [pdf] [bib]
Ian J. Goodfellow, Aaron Courville, and Yoshua Bengio.
ICML 2012. (Oral presentation at ICML 2012, The Learning Workshop aka Snowbird 2012, and NIPS workshops 2011 in recognition of winning the transfer learning challenge)

Help me help you: interfaces for personal robots. [pdf] [bib]
Ian J. Goodfellow, Nate Koenig, Marius Muja, Caroline Pantofaru, Alexander Sorokin, and Leila Takayama.
HRI 2010.

Measuring invariances in deep networks. [pdf] [bib] [video data]
Ian J. Goodfellow, Quoc V. Le, Andrew M. Saxe, Honglak Lee, and Andrew Y. Ng.
Advances in Neural Information Processing Systems (NIPS) 22.

Journal Papers

Scaling up Spike-and-Slab Models for Unsupervised Feature Learning [preprint pdf]
Ian J. Goodfellow, Aaron Courville, and Yoshua Bengio
IEEE Transactions on Pattern Analysis and Machine Intelligence, special issue on deep learning, 2013

Unsupervised and Transfer Learning Challenge: a Deep Learning approach. [pdf] [bib]
Grégoire Mesnil, Yann Dauphin, Xavier Glorot, Salah Rifai, Yoshua Bengio, Ian Goodfellow, Erick Lavoie,
Xavier Muller, Guillaume Desjardins, David Warde-Farley, Pascal Vincent, Aaron Courville, and James Bergstra.
Journal of Machine Learning Research, Volume 27.

PhD thesis

Deep learning of representations and its application to computer vision. [pdf]
Ian J. Goodfellow. Advisors: Yoshua Bengio and Aaron Courville. Defended Sep. 2, 2014.

Not-yet-published workshop papers and arXiv preprints

Pylearn2: a machine learning research library [pdf]
Ian J. Goodfellow, David Warde-Farley, Pascal Lamblin, Vincent Dumoulin, Mehdi Mirza, Razvan Pascanu, James Bergstra, Frédéric Bastien, Yoshua Bengio
arXiv 2013

Higher-order Spike-and-Slab Boltzmann Machines for Disentangling Factors of Variation
Aaron Courville, Guillaume Desjardins, Ian Goodfellow, and Yoshua Bengio. The Learning Workshop, 2012. Snowbird, Utah.


See my github account for most of my recent work.
I wrote most of Pylearn2, a python library designed to make machine learning research convenient. Its mission is to provide a toolbox of interchangeable parts that provide a lot of flexibility for setting up machine learning experiments, providing enough extensibility that pretty much any research idea is feasible within the context of the library. This is in contrast to other machine learning libraries such as scikits-learn that are designed to be black boxes that just work. Think of pylearn2 as user friendly for machine learning researchers and scikits-learn as user friendly for developers that want to apply machine learning.
I'm a regular contributor to Theano. With Razvan Pascanu, I introduce the R operator used for Hessian Free optimization and other techniques. I also rewrote the symbolic differentiation system from scratch to make it handled undefined gradients and integer-valued variables correctly. I also wrote the 3D convolution code. I regularly submit bug fixes, speed improvements, and debugging tools.
At Stanford, I was a core developer of the STAIR Vision Library.
I've also contributed to ROS and OpenCV.


I have been a teaching assistant / course assistant for the following courses:
IFT 6266 at UdeM, Representation Learning, taught by Yoshua Bengio
CS 147 at Stanford, Compilers, taught by a video recording of Jerry Cain
CS 221 at Stanford, Introduction to Artificial Intelligence, taught by Andrew Ng
CS 229 at Stanford, Machine Learning, taught by Andrew Ng