
Machine Learning in a Year - ingve
https://medium.com/learning-new-stuff/machine-learning-in-a-year-cdb0b0ebd29c
======
K0nserv
I've been doing the Coursera ML course the past few weeks(started on the 22th
of August). I can only give it my highest recommendation, it really is a great
course. I did computer science in university(2.5 years) and have a decent
grasp of calculus and linear algebra. I've also been programming for 9 or so
years. I've found the course to be surprisingly simple and intuitive, but this
probably varies with how comfortable you are with the math in the course.

~~~
noname123
>Coursera ML course the past few weeks(started on the 22th of August). I can
only give it my highest recommendation.

I'm taking the edX series of courses on Machine Learning with Apache Spark. It
is a pretty good class and covers linear algebra and the basic ETL workflow,
plus selection of models, model parameters tweaking parameters etc., study
cases involving user ad clicks prediction and PCA analysis of neural synapse
data of jellyfishes.

However, my biggest fear is that re-learning different matrix manipulations,
walk-through of logistics regression, PCA and SVM will be similar to learning
Spanish in high school without immersion, learning guitar scales without
improvising with it, learning mappings of different Madden key-combo's; I
remember learning all of these mathematical syntactical operations in high
school, and have an eerie feeling of once grasping these concepts concretely
once and yet only knowing it vaguely. It is nice to re-learn these things,
like refreshing myself with a rolodex of Spanish verb conjugation, only to go
back to the CRUD work I deal with on a daily basis and fade back to oblivion.

Not sure about the Coursera class, the structure of the edX courses are
presented in Python Juypter notebooks where you fill in the code snippets. It
is fun and addictive to solve each exercise as a mini-puzzle; but not sure how
much it'll stick vs. if one had to take an concrete problem and take its
pieces and puzzles from start to finish, without the hands-holding.

I think perhaps Cousera courses have "capstone" projects - curious if anyone
have had experience doing one? In lieu of one on the edX course, I think I
plan to grok some papers with some large genomic dataset and/or financial
time-series and try to replicate their result.

~~~
K0nserv
Yeah this is definitely a fear of mine, it does feel like you can get through
the course and mostly understand the concept without getting the tools to
fully apply the learnings. Like drothlis points out the Coursera course it
very hand-holdey too. For the exercises you are given a set of Matlab/Octave
files and your objective is to fill in a few of them with the correct
implementation of specific steps. It doesn't feel like you ever get to perform
the full task, I plan to redo some of the exercises with Python after I
finishes the course.

------
morgante
Here's a different question: is it worth it?

I know enough about machine learning (and scikit-learn) to make simple models
with production deployments. The results are pretty good, but they come almost
exclusively through trial and error—testing different algorithms and
approaches until something works.

Unfortunately, I really don't understand the underlying theory. Every time I
start diving into it, I realize it'll probably take a huge amount of time to
understand (particularly because I'll likely have to do an intensive refresher
on linear algebra and multivariable calculus).

How dangerous is it to be practicing machine learning without deeply
understanding the theory? Is it worth the substantial time investment?

~~~
elliott34
Not dangerous, in my experience. It doesn't take deep theoretical knowledge to
provide value (i.e. value to a customer or to a business) through machine
learning. Assuming here that one knows how to cross validate, check for
overfitting, etc., and not shoot themselves in the foot.

EDIT: Note that it's still EXCEPTIONALLY difficult to provide true, lasting
value to a given organization with this stuff and takes years of experience
(note I didn't mention deep knowledge and experience with the latest
techniques aboard the hype train).

------
Avalaxy
The part about the Coursera course's steep learning curve feels so familiar.
I'm doing the course as well, but it's pretty tough for me. I suck at maths
and I don't know Octave or Python. It's a very good course though, I still try
to watch some lessons every week, but I'm way behind schedule.

I'm impressed by the author's ability to recognize his own failure in
completing a course, because for me it often just keeps dragging on while I
still think "some day I will finish it". I can't accept the fact that I just
failed it. Sometimes I wish I was still in university, being able to dedicate
40 hours per week to just learning this kind of stuff and having teachers
around.

~~~
jules
It is very hard to complete a course without having the prerequisites. If you
took some courses in math and Python you would probably be able to pass it
with much more ease.

~~~
truth_sentinell
Where can I take a math course for the laymen?

~~~
osoba
For Calculus check Coursera - the Ohio State course if you really don't know
absolutelly anything, then do the Penn State course(s) Calculus in a Single
Variable

For Linear Algebra check Gilbert Strang's course on MIT OCW

For Probability/Statistics either John Tsitsiklis' course on MIT OCW (or even
better on edX when it re-runs) or Harvard's Statistics 110: Probability course
on youtube

The level of multivar calculus you'll need is really minimal, just google
these terms "partial derivative", "total derivative", "differentials and
integrals commute" ("Symmetry of second derivatives", "Fubini's theorem") or
take the vector calculus course from MIT OCW

~~~
jules
Indeed you don't need to know much vector calculus for machine learning.
Stokes theorem and the like are mainly relevant for physics, but the Jacobian
and Hessian are good to know.

------
mtrn
Machine learning is an interesting case, in that the gap between theory and
praxis is quite wide.

You can basically create, run and evaluate a model within 10 minutes (e.g.
with scikit-learn or Tensorflow). It would even be an acceptable model that
might solve your company's problem.

But you have to plan in a few years of deliberate practice to work through
statistical learning theory and its prerequisites to get an overview and to be
able contribute to the scientific or open source efforts in that field.

~~~
llasram
And in my experience the opposite applies as well. Having a PhD in a field
providing the necessary background in theory doesn't necessarily imply the
skills and experience required to produce useful models.

~~~
mtrn
In your experience, what personal characteristics, educational background or
personal trait did successful individuals have?

~~~
llasram
That's a really good question. The best people I've seen so far have had a
willingness to rigorously align their models with reality, plus the knowledge
and/or experience to know what to check. Verifying assumptions, picking
evaluation metrics appropriate for the problem, checking for model
interpretability, checking that model decisions are sane, and so on.

------
francogt
I see everyone talking about Andrew Ng's ML course and having some difficulty
with octave. Why is no one trying the new ML with Python series by UW on
Coursera? It seems pretty well structured.

~~~
K0nserv
Honestly Octave/Matlab isn't a problem I've found. If you are vaguely familiar
with any programming languages it shouldn't be a problem. To me Matlab is just
another tool to express my thoughts just like any other programming language.
Sure it as has some things to learn, but it's not like it's a whole new
paradigm or anything. Personally I struggled more with getting the linear
algebra right than the syntax of Matlab

------
mrborgen
Hey, I'm the author of this article. Happy to answer questions if anybody have
any.

~~~
ingve
> "It’s possible to get a good machine learning teacher for around 50 USD per
> hour"

How/where did you find a teacher like this? Finding a machine learning subject
expert is already pretty difficult; knowing how to find one who is also a
_good teacher_ would be a useful skill in its own right.

~~~
mrborgen
Sure, I asked at Reddit/r/machinelearning:

[https://www.reddit.com/r/MachineLearning/comments/4kcrqp/loo...](https://www.reddit.com/r/MachineLearning/comments/4kcrqp/looking_for_a_machine_learning_teachermentor/)

A couple of people contacted me, and the first one I gave a shot was actually
a perfect fit. Maybe I was a bit lucky right there.

------
adamnemecek
/r/machinelearning had a cool list of advanced courses the other day
[https://www.reddit.com/r/MachineLearning/comments/51qhc8/phd...](https://www.reddit.com/r/MachineLearning/comments/51qhc8/phdlevel_courses/)

------
Cozumel
The title makes a refreshing change from 'in 24 hours'!

~~~
cooper12
You might like this:
[http://norvig.com/21-days.html](http://norvig.com/21-days.html)

------
stable-point
I've attempted to do Coursera's ML course, but I am not very good at learning
from videos - I much prefer reading a text book and then attempting the
problems in my own time.

Are there any recommended text books that one can read from start to finish in
order to get a similar introduction to ML?

~~~
iandanforth
For the deep learning segment of ML I can recommend the still-being-written
text [https://www.manning.com/books/grokking-deep-
learning](https://www.manning.com/books/grokking-deep-learning).

Very low math requirement, exercises in Python.

------
caub
Coursera ML course wasn't particularly hard

~~~
larve
Here is the stanford cs229 course, which is a proper deal more in depth:
[https://see.stanford.edu/Course/CS229](https://see.stanford.edu/Course/CS229)

~~~
dfan
Yeah, when I did the Coursera course I supplemented it with the CS229
materials to get more of the theory behind everything, which worked great. If
you want more math rather than less, it's the way to go.

------
criddell
I love the idea of using data to train a machine to recognize patterns and
classify things. It's kind of a bummer though that the application is to help
sales people do their job.

------
baristaGeek
Can anyone tell us how hands-on is Stanford's CS224D please? I found Andrew
Ng's course too theoretical and not so practical.

Right now I'm almost halfway through Udacity's Intro to Data Science and it's
great, so I'm deciding if I should take Udacity's Deep Learning or CS224D

------
steven_pack
There was a great ML presentation at RustConf yesterday where a couple of guys
broke down building a classifier using Python and Rust. It really demystified
the process.

------
voiceclonr
good one!

