Hacker News new | past | comments | ask | show | jobs | submit login
Introduction to Machine Learning for Coders: Launch (fast.ai)
419 points by nafizh 5 months ago | hide | past | web | favorite | 47 comments

Jeremy from fast.ai here - I teach this course. Let me know if you have any questions about it (or else head over to http://forums.fast.ai for the dedicated course forum if it's a more specific technical question).

Hey Jeremy, thanks for this new course. I have some questions:

1. How exactly it is different from Andrew NG's course, other than Octave/Matlab vs Python? As someone who is new to ML and wants an introduction, I am now confused which course I should do.

2. What are the math prerequisites? Do you also cover them in the course or is there any list materials available to prep?

The biggest difference is that Andrew's teaching style tends to be more bottom-up and math-first, whereas mine is top-down and code-first. They both should give you a thorough foundation if you complete the course. Why not watch the first lesson of each and see which presentation suits you best?

Sometimes I'll assume some understanding of basic linear algebra or probability distributions when explaining why something works. Particularly for the naive Bayes section.

The first half of the course assumes only high school math. If you get to a bit where I mention some math you're less confident of, just search for that term on Khan Academy for a lesson. Or just skip that explanation in the course - it won't stop you from being able to apply the concepts even if you don't always follow the math.

Background: I've completed Andrew Ng's introductory ML course. I also have some Python and a couple years of C++ programming experience.

After completing this course (in addition to Andrew Ng's), will I be able to implement state-of-the-art models for real-world problems, where "just ML" (as opposed to Deep Learning) can be used? In other words, would I be competent enough for an entry-level ML engineer position?

Jeremy, thank you for offering this! Question: I'm an experienced programmer who's new to ML. Should I start with your DL course or this one?

Honestly, either is fine. It depends on your learning style and priorities. If you want to jump quickly to getting state of the art results with rich datasets like images and natural language text, then start with the deep learning course. If you want to get a deeper understanding of feature engineering, model interpretation, and (especially) techniques for tabular data, start with the machine learning course.

Also, the machine learning course was originally the initial introduction for a masters program, so it is a little less intensive and fast moving. But it also assumes a little more math background in parts, since everyone in the program already was pretty familiar with linear algebra, probability, and statistics.

In the end, the two courses go together pretty well, so I don't think it matters too much what order you do them in.

> (especially) techniques for tabular data, start with the machine learning course.

Do you think DL techniques are going to better than traditional techniques for tabular data in the future?

This is in reference to your article: http://www.fast.ai/2018/04/29/categorical-embeddings/ and lessons 3 and 4 from the DL course.

Yes probably. For instance, there's been interesting recent examples from Pinterest and Instacart (amongst others) who found that DL-based approaches for tabular data reduced the engineering and maintenance headaches due to less need for manual feature engineering.

Although decision tree approaches maybe will continue to be faster to train in many cases. At the moment, it really helps to be familiar with both approaches.

Thank you for the clarification.

Great answer!.

Jeremy, I live in PA. Do you have online streaming for this course or do we need to be physically in CA

The whole course is freely available online: http://course.fast.ai/ml

This is great - coding isn't even my day job, but I believe getting a better understanding of ML will help me to better communicate with engineering teams.

Thanks for making this available.

At first glance, it looks like good material. I wish more courses like these charged money though

On Udemy, there's a particular course-author I like a great deal (Anthony Alicea iirc) who made a huge difference when I was first learning nodejs & angularjs. Unfortunately, it looks like he only gets to work on these courses here and there - the final project of the Nodejs course has been in-progress for years now at this point.

I can't help but wish that he was able to make more money from these courses so that he would be motivated to develop another 2-3 of them. As-is, it seems like a lot of good teachers end up teaching on a part time basis only (there are some youtube tutorial creators I have in mind here too)

If they charged money, they'd never get famous and you'd never hear about them.

i personally think MOOCs need to tie up with actual well known universities to issue certs that count for credits with colleges. otherwise i see no actual value in "paying" for these vs just following along at my own speed. the google cert for things(for eg android) comes kinda close but whenever i think about pulling the trigger my mind just goes "what employer is looking for this cert?how is it relevant" and i back off instantly

I develop online course materials as well. The big problem is the market for self-study/MOOCs just isn't there so it is really hard to actually monetize these types of courses. For Anthony and other MOOC course developers, we are mostly drive my passion for the subject and the thought of making a difference in the world. Of course this does have an added negative impact in the sense that we have to basically do everything ourselves (write the content, record the videos, develop the graphics, develop the videos - everything) which causes content to be dragged out for years.

The course I am working on has been in development for over a year.

Jeremy, do you see any change in the attitude of employers and recruiters for ML positions or they still want people with advanced degrees like yours even for an entry level position in the field?

This looks a great resource - thanks!

Quick query - both lessons 1 and 7 are titled “Introduction to Random Forests”, is that intentional?

Fixed now, thanks :)

any reason why you guys are on the front page of hn every single day?

I don't think that's close to true? However, this post and https://news.ycombinator.com/item?id=18079479, which is related, made it into the second-chance queue (described at https://news.ycombinator.com/item?id=11662380 and the links back from there). Not for any particular reason; they just looked like two good articles that the community might be interested in, which seems to be the case.

Due to our teaching and research cycle, we do generally release a bunch of related things about once a quarter, around when new courses come out. So generally you won't see any fast.ai related news for a few months, then a few things might pop up in quick succession. That might make it feel like we're appearing on HN "every day".

(In fact, we have a major software release coming up next week - and then nothing planned until well in to 2019.)

That's very natural, and we see this kind of clustering in many contexts on HN. You're right that a few posts in quick succession starts to feel like "all the time". Users come to HN to find unpredictable things, so the feeling of "haven't I just seen something about this" makes them cranky.

This is good stuff. Please don't feel unwelcome. Although the crowd here isn't the best suited for ML honestly (in terms of % distribution), please come join us on reddit.com/r/programming or boards.4chan.org/g

Just wanted to chime in - you mentioned Andrew Ng's Machine Learning Coursera lectures are outdated. I want to say that while this could be true, the reason he does everything in Octave is because he finds that students learn faster when programming in Octave. He's aware that Python is the leading practical machine-learning tool. His focus is on learning the fundamentals and gaining an intuitive feel for the algorithms. I greatly enjoyed using Octave, which I felt was actually faster than if I had done everything in Python.

With that said, I'm so excited to learn from your new course, and can't wait to start.

Andrew's new deep learning courses (http://www.deeplearning.ai) all use Python. When I last spoke to him he was no longer enthusiastic about using Octave/Matlab for teaching.

I also saw that his new deep learning courses are in Python. He may have changed his mind about teaching in Octave for his traditional Machine Learning courses, but I still learned a great deal and I feel like I have a strong intuition of how ML algorithms (and neural nets) work.

There is some truth to Octave having a faster turnaround than Python, if you're new to programming. I feel like with Deep Learning you really have to bite the bullet, but his courses are just fine with Octave/Matlab - with respect to getting an intuitive feel for the algorithms.

Yes I do think his ML course is still wonderful, as I said in the post :) However I don't think that Octave is better than Python for teaching or understanding machine learning concepts.

I just don't think his courses deserve a knock, or that your course will be better because it uses Python. Both courses can be great :)

I'm going to go out on a limb and say that it's probably for similar reasons that you chose PyTorch over Tensorflow :)

Thankfully, someone has translated the assignment skeletons from Andrew's course into Python, so there's no need to use Octave if you go through that excellent course today:


Just wanted to say the quality of your previous courses has been fantastic and thank you for all the work that you and Rachel do.

Jeremy, you're awesome. Thanks for all your continued high-quality work.

Slightly OT question: At some point after DL1 pt 2 was released and before DL2 pt 1 was released, I recall you saying it was probably better to wait on starting the DL series since the new DL series (at the time) was going to be completely revamped with just PyTorch.

Would you say something similar about what I presume to be DL3 pt 1 coming out soon-ish? If so, when would you say that threshold is (i.e. if you start before this date, do DL2 pt 1, if you start after, wait for DL3 pt 1 to come out).

Hopefully that made sense.

v3 of the DL course, which should be out early in 2019, will largely be a superset of the current course, but updated for the release version of the fastai library (coming out very soon). Pytorch hasn't changed too much in the interim. So I'd just go ahead and start with the current course, rather than waiting.

Lesson 1 is a decision tree, isn't a little too advanced?

Shouldn't we start we something like linear regression?

Linear regression is a tricky algorithm to use effectively. Many courses have started with this algorithm, but we think it's a mistake. We cover it later in the course.

Decision trees are much easier to use correctly, and can be easily implemented from scratch without relying on any external libraries (as we do in a later lesson).

Completely agree with this. To really learn linear regression, you need to be comfortable with linear algebra (for OLS) and calculus (gradient descent).

I actually wrote most of the machine learning content at Dataquest (where I work) and I started with k-nearest neighbors because it's way more approachable (https://www.dataquest.io/course/machine-learning-fundamental...). Little math, very visual, easy to program, etc. I used this easier-to-approach algorithm to teach the key other ideas in ML (test/train, cross validation, error metrics, etc).

Happy to chat more about different pedagogical approaches to teach machine learning!

> I actually wrote most of the machine learning content at Dataquest (where I work) and I started with k-nearest neighbors because it's way more approachable

That's a great idea. It's actually what I did in an earlier version of the USF course. It worked great. Especially because a decision tree is basically just KNN with a different distance measure (loosely defined) so it can flow well

However it turned out that jumping straight to decision trees worked out well too, so I'm happy with the change.

Makes a lot of sense actually. Decision trees are also incredibly visual and a lot more intuitive to understand.

>Completely agree with this. To really learn linear regression, you need to be comfortable with linear algebra (for OLS) and calculus (gradient descent).

There is no need to know gradient descent to learn OLS. All you need to be able to is take derivatives (and "matrix" derivatives)

It's not the only ML course that starts off with decision trees: https://courses.cs.ut.ee/2014/ml/spring/Main/Lecture-1

From an educational point of view, I think it's best not to do a survey of models; rather, it's best to pick one and learn all of the stuff surrounding the model first (training, testing, preparing data etc...)

Been watching the course from the sideline, but now I am very eager to jump in as I am currently finishing up the Andrew Ng course on Coursera. My learning objective would be grok PyTorch so that I can leverage it in my Medical Imaging work. Many Thanks from the bottom of my heart.

You'd almost certainly be better off with the deep learning course (http://course.fast.ai) then, not the machine learning course discussed in this post. I spent quite a bit of time in medical imaging, and lots of radiologists and medical imaging researchers have done the DL course and are using it now. (Actually at the recent SIIM conference on medical image computing I gave the keynote, and asked if anyone had done our DL course - about half the audience put their hands up, much to my surprise!)

Thank You!. I am actually doing the deeplearning.ai, specialization(on the first course) and will be doing this in parallel. Thanks again for your advice and also your community service by offering Free, Quality education for all of us!.

I totally read this as "Introduction to Machine Code for Learners"

Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact