

Ask HN: Can Machine Learning be self taught? - sk2code

If yes, then what are the resources if someone is trying to learn Machine Learning all by himself&#x2F;herself?<p>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?<p>Most of the Job Description about the position of Machine Leaning&#x2F;Data Scientist looks for someone who has done Phd&#x2F;Masters in Computer Science&#x2F;Statistics&#x2F;Maths&#x2F;Physics. Wondering which company will hire someone who is self taught.
======
agibsonccc
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/](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.

~~~
achompas
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?

~~~
agibsonccc
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.

------
namank
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.

------
abracar
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](https://www.coursera.org/course/neuralnets),
plus general CS & Stats classes if you don't have a CS or Maths degree.

------
Nicholas_C
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.

~~~
agibsonccc
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)

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

~~~
agibsonccc
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](https://class.coursera.org/ml/lecture/preview)

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

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

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

------
w_t_payne
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...

