Recent Publications

. Sample-efficient Reinforcement Learning with Stochastic Ensemble Value Expansion. 2018.

Preprint Code

. Is Generator Conditioning Causally Related to GAN Performance?. ICML, 2018.

PDF

. Neural Lattice Language Models. TACL, 2018.

Preprint Code Podcast

. Thermometer Encoding: One Hot Way to Resist Adversarial Examples. ICLR, 2018.

PDF

. Transition-Based Dependency Parsing with Heuristic Backtracking. EMNLP, 2016.

PDF

Recent Posts

In light of the recent discussions on the *ACL reviewing process on Twitter, I want to share some thoughts. Do We Need Peer Review? Specifically, do we need double-blind peer review of the sort that conferences provide? I’m in full agreement with Ryan that it is an essential service for the scientific community. As scientists, our job is to develop and capture knowledge. Peer review ensures that the work of the least-advantaged members of our community is judged by the same standards as the most-advantaged members.

CONTINUE READING

This post is the second of a series; click here for the previous post, or here for a list of all posts in this series. Naming and Scoping Naming Variables and Tensors As we discussed in Part 1, every time you call tf.get_variable(), you need to assign the variable a new, unique name. Actually, it goes deeper than that: every tensor in the graph gets a unique name too. The name can be accessed explicitly with the .

CONTINUE READING

On August 5th, OpenAI successfully defeated top human players in a Dota 2 best-of-three series. Their AI Dota agent, called OpenAI Five, was a deep neural network trained using reinforcement learning. As a researcher studying deep reinforcement learning, as well as a long-time follower of competitive Dota 2, I found this face-off really interesting. The eventual OAI5 victory was both impressive and well-earned - congrats to the team at OpenAI, and props to the humans for a hard-fought battle!

CONTINUE READING

In Tensorflow: The Confusing Parts (1), I described the abstractions underlying Tensorflow at a high level in an intuitive manner. In this follow-up post, I dig more deeply, and examine how these abstractions are actually implemented. Understanding these implementation details isn’t necessarily essential to writing and using Tensorflow, but it allows us to inspect and debug computational graphs. Inspecting Graphs The computational graph is not just a nebulous, immaterial abstraction; it is a computational object that exists, and can be inspected.

CONTINUE READING

This post is the first of a series; click here for the next post, or here for a list of all posts in this series. Click here to skip the intro and dive right in! Introduction What is this? Who are you? I’m Jacob, a Google AI Resident. When I started the residency program in the summer of 2017, I had a lot of experience programming, and a good understanding of machine learning, but I had never used Tensorflow before.

CONTINUE READING