Skip to content

Ask HN: Can Machine Learning be self taught?

16 pointssk2code10 comments
On HN

If yes, then what are the resources if someone is trying to learn Machine Learning all by himself/herself?

The Coursera class on Machine Learning taught by Andrew Ng should be a good starting point but will that be enough to land the job?

Most of the Job Description about the position of Machine Leaning/Data Scientist looks for someone who has done Phd/Masters in Computer Science/Statistics/Maths/Physics. Wondering which company will hire someone who is self taught.

Comments

Not to self advertise, but to use my own case to show that you can do some significant things if you're stubborn enough:

I'm self taught and under 3 years I'm collaborating with people at Stanford Research on an open source Question Answering System (https://github.com/SolrSherlock/) . I've also implemented my own stack for all of NLP that I'm working on contributing (summarization, sentiment analysis, named entity recognition,...)

You don't have to have a PHD to do it. Here's a bit of my background:

Coursera NLP class (first one from Stanford, not the later one)

AI class in college (Dropped out in year 3 though..so no masters or anything crazy)

Machine Learning class from coursera

Implementing and understanding LOTS of papers in the field

So as you can see not much. Most of my understanding is self taught. There's enough free materials out there for you to gain a practical understanding of it. Just take the time to build up your fundamentals and work from there. I have a practical understanding of the mechanics involved and can implement the different optimization algorithms and the like as well as understand the implications of the data.

Congrats, you've definitely worked hard to get where you are!

How do you feel about non-NLP tasks? Are you focusing on NLP as a specialty, or using it to branch out into other tasks?

Definitely as a specialty. However, branching in to other tasks is definitely appealing. My main thing would be computer vision to break in to next.

The main thing I'm going for here is "self-funded scientist" . I want to do something commercially viable while solving problems I enjoy doing.

Being that running a company (even a life style one) takes a decent chunk of time. I can't devote the time to other branches of machine learning that I'd like.

That being said, I'll be investing time in the upcoming computer vision class (albeit to maybe finish the material, the certifications can be a good chunk of time)

I think as time moves on I'll move in to other areas, but if I do some kind of project or even just building out something major, I want to at least have a chance of monetizing the technology.

In this case, with NLP there's a breadth of technologies, apps, and ideas that you can do using that as a baseline platform.

Computer Vision is the same way. Admittedly, I'm not as familiar with the different ways of commercializing it as I am NLP.

It's also something I've been wanting to do for a long time.

When Watson debuted, I had wanted to be in the space for a long time.

We'll see what happens as time goes on.

Right now being able to run something as well as collaborate with some of the smartest people I've ever seen on an open source project has me in a pretty good spot.

Most people looking for machine learning will be looking for the projects you have worked on.

You can approach learning from several perspectives. Learning machine learning from abstract theory is one thing, there is also learning it as part of an application - Coursera has a Recommender System course that just started and I would venture the guess that it's also about machine learning.

Companies are quite desperate to find data scientists, I am sure they will hire anyone who can do the job properly, self-taught or not :) You may want to do more than one class before applying to jobs though - for instance check out stuff like Geoffrey Hinton's course on Neural Networks for Machine Learning https://www.coursera.org/course/neuralnets, plus general CS & Stats classes if you don't have a CS or Maths degree.

Further question for myself, can it be self taught without a degree in comp sci/math? I have a finance degree and knowledge of python/R, but I'm not sure if the concepts are attainable for me. I've had a few stats classes but only one calculus class. ML seems like a very interesting field.

Don't put machine learning on a pedestal. You don't have to have even a full understanding of every little thing as long as you can interpret data.

Most machine learning classifiers are simply understanding how each model maximizes probability to label certain things.

Machine learning in the general sense is very broad. Most models are derived from an understanding of the domain. From there, as long as you can specify the right random variables (mainly through exploration and interpretation just like statistics) just understand how to run the different classifiers. You can start simple and work your way up to even things like deep learning (a buzz word for neural networks)

Thanks, that's good info and relieves some of my discouragement. How would you suggest I go about learning ML?

Not a problem. You are going to want to tackle your fundamentals first.

This includes things like linear algebra and basic matrix operations, statistical inference (correlation, p tests, sampling,probability,..), and then start working your way up the tree for algorithms.

The order in [1] is a good order and will get you familiar with the fundamentals in a fairly easy way. Use [1] for the overviews of different topics as well. Note that [1] isn't a good in depth practice though.

It's a fairly hand holding introduction to machine learning in general. After you get the brief overview down, start looking in to different problems that might interest you.

Depending on how you learn, since you know R, put some things in to practice with R. It has fantastic support for most learning algorithms as direct libraries.

Other than that, depending on what you're interested in (finance, so I'm assuming forecasting?) start looking in to domain specific problems that you're comfortable with.

One thing I've seen people do is use kaggle [2] for the "Knowledge" competitions. Those are essentially tutorials with test datasets.

Since you're in finance, you maybe interested in the signal processing based math that goes in to guessing when something happens within a certain time period.

See [3] for finance specific and [4] for the more general engineering math.

I hope that helps. Independent study is largely based on how you learn and just leveraging resources available coupled with practice in subjects you find interesting to maintain motivation.

Now keep in mind everyone is different. Some like the courses and homework approach, others just like experimenting on something they're interested in to accomplish concrete goals.

[1] https://class.coursera.org/ml/lecture/preview

[2] http://www.kaggle.com/competitions

[3] https://www.coursera.org/course/compinvesting1

[4] https://www.coursera.org/course/scientificcomp

I would hope so, since I am largely self-taught. :-) Although it has taken me 10 years or so; and I have had the privilege of working with some fantastically knowledgeable mentors over that time period...

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.