Hacker News new | past | comments | ask | show | jobs | submit login

You should have the equivalent of an undergraduate degree in mathematical statistics (calculus, linear algebra, et al). It should take about 4 years of full time study to achieve that.

Forget about the code part. It's the least difficult part.




I think that this is a horribly impractical advice, and I keep seeing it everywhere.

With modern tools and frameworks you can start learning and applying what you know on practice almost immediately.

Check out Keras and the book "Deep Learning with Python"[1]. They have enabled me to train my first ANN in 2 days, and get to the point of building a MNIST recognizer in a month(and I was reading it pretty slowly).

Sure, if you're coding it from scratch and must understand every signle detail, you do need like 10 years and 3 PhD's. But that's not a wise way to learn.

I recommend to take the simplest tools, and apply them to practical projects immediately. That will give you the general overview of how things work, and then you will learn the details as needed.

[1] https://machinelearningmastery.com/deep-learning-with-python...


If you don't understand how it works your won't understand how to optimize things, how to do error analysis, how to implement better features and weights out of the box, how to choose the right algorithm from the start, how to do good cross validation ...

Yes, you can take a library and implement it in 10 minutes, but then you're really not learning machine learning, are you?

I will argue you do not need four years of math by any stretch, though. The stumbling block will be notation more than anything else. Relatively basic calculus and linear algebra will suffice.

They were right about one thing: the code is the least important part.


In practicality the OP is right. You won't be on the same level as people with a PhD in a corporate or applied setting. The hardest parts are feature engineering, researching and statistical analysis (presenting research to team). It's hard to gain all those skills without years of experience researching in an academic setting.

As an undergrad, I was doing all those easy ML tutorials and took an undergrad level ML course. I thought I would be useful in actual practice, but knowing the whats/hows of neural nets/clustering/etc. is not enough. Feature engineering/math is the most difficult part. In a corporate setting, if it was a straight forward solution, you wouldn't be doing that work because the solution would be trivial and already implemented.

As an engineer with only a bachelors on a ML team full of PhDs there is a definite difference in skill. I've been reduced to a monkey (a content one) that works on the data pipeline. Learning to deal with real world ML problems would take me years of work that I am not sure I would be willing to do, especially when the pay increases per effort expended learning ML is much lower than with regular software/distributed systems/etc..

On the interest part, you're right that I would never have tried to learn ML if I had known the amount of work that is required to actually be good or if I tried learning the math first. That's the real world though. The useful ML engineers did learn the math. The efficient way to learn ML is to learn the math/statistics first.


It takes four years of full time study to gain universal foundations to approach many different problem types.

For special applications, it is totally OK to learn as you go.




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

Search: