Hey, friends. Welcome back to the
channel. My name is Charles Weill. And today, we're going to talk about the
three Machine Learning courses that most impacted my career, getting me
from being a software engineer to a software engineer doing machine learning
full-time at Google Research in New York City. So for those of you don't know me, I make
videos about software engineering, AI, and lifestyle in New York City. Now Machine Learning is the science of
getting computers to act without being explicitly programmed. And it represents
a cornerstone of artificial intelligence. I have actually taken many courses over the
course of my career, but these three courses represent the ones that had the most impact in my
daily activities as a Machine Learning engineer, and so these are the ones that
I'm going to share with you. The first course is going to be Coursera Machine
Learning course as offered by Stanford University. Now, if you scroll down a little bit, we
can look at the instructor, Andrew Ng, and this guy is a total badass. So from his
bio, he is the founder of deeplearning.ai which, first of all, is the coolest name for a website.
He is a Chairman and Co-Founder of Coursera which is this website and adjunct professor at Stanford
University. He was Chief Scientist at Baidu which is the Google of China and the founding
lead of Google Brain team which was Google's Research Skunkworks that then blew up into a huge
organization within Google Research. And last but not least, he is the Co-founder of Coursera
which is the world's largest MOOC platform. So this guy knows what he's talking
about. He's not just some YouTuber who's going on and talking about deep
learning. This guy knows this stuff. This course has been around
for almost 10 years now, and over hundreds of thousands of students have
taken it. And this course is going to be the longest one. It takes about 11 weeks is what
they recommend if you're doing it part-time. I personally took it while I was working a full-time
job at Google just as a regular software engineer. I just followed it week by week.
I would download the lectures onto my phone so that even though I didn't
have network reception in the subway, I could watch the lectures on my commute
to work which is about 45 minutes each way. And then when I get home, I would do the
online quizzes when I had a network connection. What's really cool about this class is that
Andrew Ng is going to teach you the foundation knowledge you need for Machine Learning. And most
people think going into ML, you need to have a ton of math background. You need a PhD in applied
math or physics in order to do well. And while there are some areas of deep ML research that
do require that, especially in learning theory, in order to be a proficient engineer doing Machine
Learning, the level of mathematics you actually need to know in order to make something is
pretty close to the high school level math. So you're going to need to know some basic
calculus, as well as some basic linear algebra in order to do matrix multiplications. But
in this course, you will actually be taught that level of mathematics is the first couple
lectures. Andrew Ng makes sure that you're set up and that the only real prerequisite
is you need to know how to code. I mean, that's basically table stakes
if you're going to be doing ML. But if you're already familiar with Python,
you're going to then do all the programming assignments in the course in a language called
Octave which is very similar to MATLAB if you came from an engineering background. And these
are languages that allow you to operate on arrays natively so that you can do
matrix multiplications very quickly, as opposed to having to do them in for
loops. So it means that you can do matrix multiplications in nanoseconds as opposed
to milliseconds or seconds with Python. He's also going to cover key topics like
logistic regression, neural networks, other Machine Learning algorithms that are
popular. He will cover the main categories of ML like supervised learning, unsupervised learning,
discuss the major algorithms in each bucket. And by the end of this course, Andrew Ng himself will tell you that you
have all the knowledge necessary to get a six-figure job doing ML professionally at a
Silicon Valley startup. So what's not to love? Now that we have our foundation established.,
There are some limitations to Andrew Ng's course, the major one being that most people don't
actually write their neural networks from scratch every time they're creating a new application or
a new Machine Learning pipeline. Rather, they're going to use libraries. Machine Learning engineers
and researchers are going to use professional grade libraries for working with neural networks
and other types of Machine Learning algorithms, such as scikit-learn, TensorFlow, or PyTorch among
the many, many other ML frameworks out there. So the second course is going to be the Machine
Learning Crash Course as taught by Google using TensorFlow APIs. TensorFlow is a high
level library for teaching Machine Learning, and it is what most Machine Learning engineers
at Google use in their day-to-day job. The course is structured as followed. You have
different sort of categories of instruction as offered by Google and Machine Learning, this
one being the Crash Course. Through this, you can go through several video lectures,
and there are some notebooks. So for example, you can watch the video lecture where they
describe how to do things like framing a Machine Learning problem. And then if you
go down, there are going to be programming exercises, and these programming
exercises are available in CoLab. CoLab is a tool that many data scientists
and Machine Learning engineers use for playing around with data training
models. You can even connect to a free CPU offered by Google Cloud
or even the GPU, sometimes, and if you're really fancy, on TPU which is
specialized hardware for Machine Learning. The Machine Learning Crash Course is the course
that I took when I was a Googler trying to get into Machine Learning professionally. And it
taught me all the high level APIs and introduced me to the libraries and algorithms that I needed
to know in order to be a proficient ML engineer. So this is going to be an excellent filler course
once you have your foundation with Andrew Ng's Coursera class. You will be very
comfortable with the most popular Machine Learning library in the world which is
TensorFlow. And you'll be in a good position to start training your own ML
models for your own datasets. So once you have the Coursera course under your
belt and the Machine Learning Crash Course, you're going to be in a pretty good
place in order to start doing ML, but it might not be a good idea to
go straight to production because there are... the gap between theory
and practice, there's still that gap. So what I recommend for your third
course is actually going to be to go to a data science competition website like Kaggle
and start practicing with real-world data in a community of people who are learning Machine
Learning. So the way Kaggle works is it's what you call a data science competition, and a data
science competition is one where someone will submit a dataset for a competition. There'll
be some cash prize awarded to the top 5% of participants. And anyone can compete on these data
sets creating their own Machine Learning models, and they're going to be scored by some evaluation
metrics. So the models that perform the best on that metric are going to be ranked according
to the other participants in the competition. It's very fun to participate in one
of these because you can actually see very clear progress, and they implement
the best practices you need as a ML participant where they're going
to take your data set, and they will pre-split it into a trained test split so
that you don't accidentally leak labels in. And if what I'm saying
doesn't make any sense to you, you're going to learn all about
that in the other two courses. But once you've done that,
you're going to hop to Kaggle, and you can then get started.
So, let's see. Machine Learning. Digit Recognizer, yes. So the
course isn't really a course, but what it is is it's going to be
a kind of a dive into the deep end of doing ML, and you're going to want
to participate in these competitions. So the first one is going to be Titanic which
is going to be predicting Machine Learning using structured data [inaudible 00:08:47] using
structured data. What that means is it's basically data from an Excel sheet that's going
to, say, have columns like... let me see. You have columns like Survival and
Ticket Class, Gender, Age in Years, and what you're going to do is you're going to
try to predict whether or not the passenger on the Titanic ship when it's sank survived
or not, according to these other features. So this is something you can do with a linear
model or a neural network or a random forest. This is a good starting point. Once you're done with the Titanic
data set, you're going to hop to, say, the Digit Recognizer, and this is
going to be a test with the world famous MNIST data set which is handwritten digits from
zero through nine, and you're going to identify them using computer vision. And it's going to be
computer vision that you're going to have written, basically, from scratch using a TensorFlow library
like TensorFlow, using a library like TensorFlow. Or if you're really feeling crazy, you can
take the neural network that you created from scratch in Octave in Andrew Ng's class and
use that on this dataset. It's totally possible. You might not get the top prize. You might not rank number one on the
leaderboard, but you're going to do pretty well. Those were the three courses that I took in order
to get into Machine Learning as a professional software engineer. And I can guarantee you
that if you go through the process of taking Andrew Ng's course and then taking the Machine
Learning Crash Course and then practicing on some Kaggle competitions, you're going to be in a very,
very good place in order to speak the jargon of ML and communicate with other ML engineers and
researchers. You're going to be able to start applying for jobs at startups who are looking for
Machine Learning engineers, and you're going to be able to do your own ML. That's a great way
to then segue into doing your own ML research. The amazing thing about the Machine Learning
community these days is that so much of it is open. If you want to download
the latest state of the art papers, they're all available for free
online on websites like archive.com. So that wraps up my beginner's
roadmap for getting into ML through my three favorite courses. But
I would like to hear what courses you've taken and whether or not you felt they were
impactful in your career. I'm always looking for new courses to take because I'm always
looking forward to learning something new. The path of an AI engineer and researcher
is that of lifelong learning. Just like the field of ML, you always need
to be staying up to date with the latest things. You can never spend too
much time understanding the basics. So with that, I'll leave you. Please let me
know in the comments below what you thought of this video and if here's anything you'd
like to hear, and I'll see you in the next one. So thanks everyone and bye bye.