WOLFF DOBSON: Hi, I'm Wolff.
I'm the tech lead for developer relations
for machine learning at Google, which includes the Brain Team.
Brain Team's big project is TensorFlow,
which is an open source library that
builds computational graphs and is
used for machine learning, especially deep learning.
It's free.
It's open source.
You can download it now.
I strongly recommend it.
But I'm not going to teach you to use
TensorFlow in five minutes.
So let's talk instead about why you'd
want to use machine learning in your games
besides that wonderful talk that we just had.
Let me give you five things you can
do with machine learning with your game
right now from easiest to hardest.
Step 0.
We're all engineers-- well, lots of us are.
So we're going to start with 0.
Use analytics to predict stuff.
So modern games can produce all kinds of interesting data.
And if you're smart, you're probably collecting some.
Things you can do are like how much
is this player likely to spend.
Is this player likely to quit.
Is this player cheating.
Is this player being toxic.
These are all things you can find out.
This is super basic stuff that you
can do with TensorFlow or any other tool kit.
And it doesn't even have to be complicated.
A simple linear regression or linear classifier
can help you get a boost and understand your audience
better.
Step 1.
A little bit harder.
Let's grab some open source models--
deep models-- and retrain them to be useful to your game.
So Inception is an award winning--
well, we have awards--
deep network that does image classification.
Because of the contest data, it's kind of
obsessed with dog breeds.
But it is really easy to retrain that and classify images
with, actually, a fairly small amount of data
by deep learning standards just on your laptop.
We have code labs.
We have samples.
All kinds of stuff.
Think about the player activity you want to see.
Think about hand gestures in front of cameras.
Think about all kinds of stuff.
Graph some image data and get classifying.
And if you don't like image processing,
we have other open source models to play with.
Parsey McParseface-- that is its real name--
explains the functional role of each word in a sentence, which
gives you the ability to find meaning
from words and speech and text.
Super neat.
You should totally check it out.
All right, a little bit harder than retraining.
You can use neural networks to give your game art some style.
In neural style transfer, you're taking
advantage of deep neural networks semantic understanding
of a picture as well of both the scene and the style.
So you can apply the style of one image
to the semantics scene data of the other.
So in this case, we have a creepy clown image
and we have a beautiful seaside town.
With style transfer, you can then apply creepy clown style
to seaside town.
You can do that with all kinds of stuff.
Again, there's open-source models.
There's open source examples to do this.
Think how much fun your artists are
going to have coming up with all different ways
to blend pictures that are drawn with art in 2D
and 3D models within your game.
And if you have a good GPU, you can actually
do style transfer in real time.
This dog, Peekaboo, is getting styled transferred
at varied amounts by different amounts when using the sliders.
Now we're getting fun.
So step 3 is dream up new content
for your game using deep learning.
Most people probably run into these weird recursive dream
models which come from sort of running an image recognition
model backwards.
But unless your game is entirely on acid,
you're probably going to need something a little bit more
practical.
One example is actually from the community.
It's a web engineer in Japan--
wanted to learn ML in TensorFlow as his personal hobby.
So in a few months, he was able to build
a deep convolutional generative adversarial network to generate
arbitrary TV popstar faces based on a database of other pop
stars.
Another totally awesome research using adversarial networks
is downsampling photos of people and then learning
the mappings between the low resolution photos
and the high resolution photos.
So then you can edit in low resolution
and generate high resolution photos.
So in this image, ground truth is on the left.
In the middle, you have you have the low resolution version
and on the right, you have the generated image based
on that low resolution image.
If you've got pixel artists, they're
going to have a lot of fun with this.
No time to explain this at all, but as
another adversial model that lets you
do neural editing of faces.
Quickly transform a brunette to a blonde or male
to female with just a few pixels.
There's a link there.
Check it out.
It's totally cool deep learning research.
And again, if images aren't your bag, you can do music.
Google has Project Magenta, which
is an open source project that uses
ML that takes the problem of given n minus one notes, what
is the nth note.
You can train it on all kinds of music from Radiohead to Bach
and use a recurrent neural network
to generate new music for your game.
And finally, step 4--
NPC control.
This is kind of the elephant in the room,
if you think about it.
There's obviously been a lot of super interesting work
from our neighbors in London at DeepMind on AlphaGo.
There's some recent good successes with poker.
I just read a paper about using reinforcement learning
to play Super Smash Brothers.
Totally cool stuff.
One note of caution--
I think is absolutely fascinating research,
but at least in the experiences that I've had with it,
the danger is that cameras in game
play kind of work against you.
That kid in a blue hat?
He has no idea how complicated the neural networks
of the kids around him are.
Just zero idea.
He has got his head down.
He's focused on hopping.
You're going to find that when you start applying
deep learning to NPC control.
Yet super excited about this anyway.
There's going to be a lot of things you can do with this.
Learning animation parameters from video data.
There's interesting work going on here.
Player dropout and take over.
If you have players playing some online game and they disappear,
we need to replace with a copy of them that's
learned from their behavior.
Sidekicks, dialog generation.
You know, we're generating music in the previous example.
There's no reason why you couldn't apply that to dialogue
although obviously, it's a lot more semantically complicated.
Custom content generation for opponents
and levels and stories.
The world is your oyster.
And speaking of oysters, here's where we have ours.
TensorFlow.org is where you can find
tutorials and code and the TensorFlow framework
for doing deep learning.
We have a Udacity course.
I strongly recommend-- if you're interested
in this-- the Stanford CS231 class on GitHub.
They have an amazing introduction
to how machine learning works.
And we also just have a video series
that introduces the basic concepts of machine learning.
And there we are.
Thank you very much.