[MUSIC PLAYING]
LAURENCE MORONEY: Today I'm in the Big Apple
meeting with Josh Gordon from Google
to talk about machine learning, where
we will dig into how it works, why it's important,
and where you can learn all about it.
Welcome to Coffee with a Googler in New York City.
I'm Laurence Moroney, and I'm here today
speaking with Joshua Gordon.
Now, it's something that a lot of people
don't really understand what machine learning is
in a concrete manner.
JOSHUA GORDON: So machine learning
is all about learning from examples
rather than writing manual rules.
LAURENCE MORONEY: Got it.
JOSHUA GORDON: So the short way of saying
that is regular programming is you write a lot of manual rules
to solve a problem.
In machine learning, you let the algorithm
find those rules for you.
LAURENCE MORONEY: Got it.
JOSHUA GORDON: From examples.
LAURENCE MORONEY: So pattern matching.
It might be visual, or it might be other patterns
that are hidden in data.
JOSHUA GORDON: Absolutely.
And so the input to machine-- so the beauty of machine learning,
and the real secret sauce, is that an algorithm that
learns patterns from data can solve thousands
of different problems.
And the reason is if I write a Python program to recognize
digits, my program is hard coded to work with digits.
LAURENCE MORONEY: Got it.
JOSHUA GORDON: But if I write an algorithm to learn patterns
from data, I can use that for speech recognition, image
recognition, medicine.
Basically, anything that you can start with examples,
just tell apart A and B, my same algorithm that I wrote just
once can tackle all these problems.
And that's a really special and actually fairly profound thing.
LAURENCE MORONEY: Absolutely.
Now, one of the things in your classes that you're
talking about that you're starting with language.
You're starting with Java and Python,
I think it was, that you said?
JOSHUA GORDON: Yes, absolutely.
LAURENCE MORONEY: So how's the class
going to be structured for people
who want to be these data scientists of the future?
JOSHUA GORDON: Absolutely.
So first of all, there are zero prerequisites.
Well, that's not true.
There's one prerequisite.
LAURENCE MORONEY: My favorite.
Oh, OK.
Well, what's the one prereq?
JOSHUA GORDON: Basic programming ability in Java or Python.
And by basic, I mean you can run scripts and you can tweak them.
That's it.
A little bit of high school math.
And that means like basic algebra, basic geometry.
When I say basic geometry, to be totally honest,
if you asked me, like, what sine and cosine,
I would have to Google it.
I don't remember, honestly.
So just basic familiarity, and that's it.
And we're going to teach the class in three ways.
We're going to teach it totally from the ground up.
So one problem I had with some of the academic classes I took
is that they'll talk about a fancy algorithm,
like neural networks, but they'll
talk about it in terms of math.
And so at the end of the class, I don't know how to build that.
I can't really do it.
We're doing it in a reverse way.
We're building it step by step, and we're
explaining only the math that's really necessary as we go.
And instead of equations, we're going use visual examples.
LAURENCE MORONEY: Perfect.
JOSHUA GORDON: So an equation could
be like if you talk about gradient descent,
gradient descent basically means finding
the minimum of a function.
So if I just say that, like as a developer, I'm like, all right,
what does that mean?
So you can think of any equation,
like x cubed plus y squared plus whatever equals 7.
There's some value of x and y.
LAURENCE MORONEY: That's going to be the bottom of that curve,
right?
JOSHUA GORDON: Or not equals 7.
Equals some value.
Right.
Anyway, you can find the bottom of that curve
literally by thinking as a bowl.
You can drop a piece of fruit in a bowl
and it will roll to the bottom.
And gradient descent just means finding
where this function is 0.
And you can actually describe that really simply
in only like 10 or 12 lines of Python,
actually, instead of five slides of equations.
LAURENCE MORONEY: And I think it's also
important to understand why you need to find
the bottom of the curve.
JOSHUA GORDON: Absolutely.
LAURENCE MORONEY: And just focus on that example.
JOSHUA GORDON: Absolutely.
So that's difficult to describe concisely.
LAURENCE MORONEY: Right.
JOSHUA GORDON: So in machine learning,
let's say you're writing an algorithm.
Let's say it's to distinguish apples from oranges.
You always want to know, how accurate is my algorithm?
Like, I can solve that problem in one line.
I can just say, return math.random.
So one line, math.random.
LAURENCE MORONEY: That would be the perfect one.
JOSHUA GORDON: My accuracy is crap.
LAURENCE MORONEY: 50%.
JOSHUA GORDON: Right.
Yeah, it's 50%.
LAURENCE MORONEY: Between an apple and an orange.
JOSHUA GORDON: It's a one liner.
But really, we want to get-- another way
of describing accuracy is you can think
about it n terms of error.
High accuracy means low error.
And you can have an equation that describes your error.
And the minimum of that equation is
going to give you the highest accuracy.
So you can write your machine learning algorithm
to try and minimize the equation that describes the error.
LAURENCE MORONEY: Got it.
JOSHUA GORDON: And we'll make that super concrete
in the class, but that's where minimization comes in
and that's where gradient descent comes in.
LAURENCE MORONEY: So one of the things
you're saying in the class, you're
teaching just a pure Java, Python version.
But there's also a version where you're
bringing in preexisting libraries
that have come from academia.
JOSHUA GORDON: Absolutely.
LAURENCE MORONEY: That will solve a lot of this for you,
right?
JOSHUA GORDON: Absolutely.
So I want to do a couple things.
One is I want to provide the TLDR.
So honestly, as a developer, I like to get up
and running really fast.
So we're also going to use open source libraries from just
different universities.
There's one in New Zealand that I really love.
We're going to you how to build, basically first, everything
from the ground up step by step from scratch.
And the reason we do that is because it keeps us honest.
If you build every single piece, you
have some understanding of every single piece.
LAURENCE MORONEY: And if you're relying on somebody else
having done the work, you don't fully get to understand it
yourself.
JOSHUA GORDON: Exactly.
Now, another thing is using the open source libraries,
honestly, you can solve probably 80% or 90%
of the machine learning problems you would as a data scientist.
LAURENCE MORONEY: Nice.
JOSHUA GORDON: Now, when you get to the really gigantic
problems, then really it makes sense to use the cloud.
So we're also going to teach how to solve
problems using Google APIs.
But that's at the very end of the class,
and it's totally optional.
LAURENCE MORONEY: This is all on YouTube, right?
JOSHUA GORDON: All on YouTube.
There might be some ads on it, but that's literally it.
We think it's going to be awesome.
LAURENCE MORONEY: Like source code and stuff
that you've done?
JOSHUA GORDON: The source code will be on GitHub.
LAURENCE MORONEY: It's all on GitHub.
Perfect.
JOSHUA GORDON: It will all be on GitHub.
And the reason I was hesitating is
I'm writing all this as we're speaking,
so I'm totally exhausted.
But yes, it's totally, 100% out there.
LAURENCE MORONEY: Well, you're still looking energetic to me.
JOSHUA GORDON: I've had a lot of coffee with a Googler.
Good for you.
LAURENCE MORONEY: Well, I for one
am really looking forward to this course.
I'm looking forward to learning what you have to teach.
I've had the same kind of struggles
as you in trying to understand the math behind this
and why I'm doing the math, which
is why I had those pointed questions earlier.
JOSHUA GORDON: Absolutely.
LAURENCE MORONEY: So thanks, Josh.
That was a whole lot of fun.
And I've learned so much about machine
learning just from these few minutes with you,
so I'm really looking forward to your class.
JOSHUA GORDON: Thanks so much.
LAURENCE MORONEY: If you've enjoyed this episode of Coffee
with a Googler and if you want to learn machine learning
for yourself, if you have any questions for Joshua,
or if you've any questions for me,
please leave them in the comments below.
And tune into the Google Developers channel
for more great videos, including episodes
of Coffee with a Googler.
Thank you.
[MUSIC PLAYING]
JOSHUA GORDON: You really can learn machine learning,
and it's faster and easier than you think.
We've gone through a ton of classes, textbooks, and blog
posts to bring you the clearest and most concise explanations
of the hard concepts.
We really think you're going to be able to learn it and have
some fun on the way.
Click here to get started.