Transcript for:
Three Key Machine Learning Courses by Charles Weill

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.