HN Academy

Online courses recommended by Hacker News users. [about]

Learn Machine Learning

Coursera · Stanford University · 350 HN points · 117 HN comments

Machine learning is the science of getting computers to act without being explicitly programmed. In the past decade, machine learning has given us self-driving cars, practical speech recognition, ...

HN Academy may receive a referral commission when you make purchases on sites after clicking through links on this page. Most courses are available for free with the option to purchase a completion certificate.

Hacker News Comments about Learn Machine Learning

All the comments and stories posted to Hacker News that reference this course.

I'm biased, because I took the course when it was called "ML Class" in 2011:

https://www.coursera.org/learn/machine-learning

Everything is done in Octave (ie - open-source matlab-like language); primitives are vectors and matrices - so you'll have to wrap your head around that.

But that course gave me the first explanation as to how neural networks actually worked that I could understand; I had been reading about neural networks for years from various sources - books, online, videos, etc - and nothing ever "clicked" for me (mainly around how backprop worked). For some reason, this did it for me.

Since then, I have taken other MOOCs centered around ML and Deep Learning, mainly with a focus on self-driving vehicles.

Oh - ML Class also led one individual to implement this during the course, as the ALVINN vehicle was mentioned in more than a few ways:

https://blog.davidsingleton.org/nnrccar/

While Singleton does mention its "vintage-ness", I still think it's a sound project for inspiration and learning how to apply a neural network to a simple self-driving vehicle system, not to mention the fact that it replicated a system from the 1980s using today's commodity hardware; I recall reading about ALVINN when I was a kid, with wonderment about how it "worked" - it was one of several 1980s projects in the space that got me hooked on wanting to learn how to make computers learn.

If you want a great introduction, check out Andrew Ng's Coursera course:

https://www.coursera.org/learn/machine-learning

This is the same course that was originally called "ML Class" in 2011 when it was offered via Stanford (it, plus the other course called "AI Class" - helped to launch Coursera and Udacity, respectively). It uses Octave as it's development language to teach the concepts.

Octave has as it's "primitives" the concept of the Vector and Matrix; that is, it is a language designed around the concepts of linear algebra. So, you can easily set a variable to the values that make up a vector, set another to say the identity matrix, multiply them together, and it will return a matrix.

But the course is initially taught showing how to do all of this "by hand" (much like this tutorial) - using for-next loops and such; essentially rolling your own matrix calcs. Then, once you know that, you are introduced into how to use the built-in calcs provided by octave, etc.

It is really a great course, and I encourage you to try it. It opened my eyes and mind to a lot of concepts I had been trying to grasp for a while that just didn't click until I took that course in 2011.

Of course, once it did, I was like "that's it? why couldn't I see that?" - such is the nature of learning I guess!

His method of building up from the basics all the way to a neural network using Octave will be a good foundation for further learning or playing with other tools like TensorFlow; I ended up taking a couple of other later MOOCs offered by Udacity (focused mainly on self-driving vehicle concepts), and ML Class (and what I took of AI Class) really helped to prepare me.

It also showed me things I was deficient in (something I need to correct some day). But that's a different story.

Suffice to say, that course will "unveil the magic"; it was really an amazing course that I am glad I took. Oh - and to show you what you can do with what you learn in that course, a fellow student during that time ended up making this (and the course was not even finished when he did it):

https://blog.davidsingleton.org/nnrccar/

Throughout the course, the ALVINN autonomous vehicle was referenced quite often, and it inspired him to recreate it successfully in miniature. It also serves to show just how far computer technology has come - what used to take a van-load of equipment can now be played around with using a device that fits in your pocket!

avmich

This is a great course, I took it once a few years ago and sometime think if I should take it again. Wonder how it changed over time. It was eye-opening training a small NN by hand on MNIST dataset and getting it to recognize digits surprisingly well.

However even understanding all that doesn't allow one using modern frameworks by itself, they seem to carry too much additional assumptions, terminology which aren't quite explained with similar level of patience.

This. I can tell anybody thinking about taking this course, do it! The way Jeremy Howard explains things is so down to earth and clear, you'll be surprised at how easy all this ML/DL nonsense is :)

But seriously, there's a lot to learn here, and if you are looking to make your entry into the hype field of the decade I would strongly suggest starting here first

(Alternatively, for the more math inclined, perhaps take Andrew Ng Coursera course first: https://www.coursera.org/learn/machine-learning )

cr0sh

I second the Andrew Ng Coursera course; I took it in 2011 when it was called "ML Class" (pre-Coursera) - yep, I was one of the beta testers!

This'd be a safe bet https://www.coursera.org/learn/machine-learning

It's worth noting that the popular Coursera course "Machine Learning" taught by Andrew Ng uses Octave as its tool. This is mentioned in the Octave book's preface; see https://www.coursera.org/learn/machine-learning if you're interested in the course itself. It is possible to use MATLAB instead, but there's often no real reason to do so. I think a lot of people have already decided to use Octave instead, because it solves their problems just fine.

I've heard good things about Andrew Ng's Coursera machine learning class, and it's free:

https://www.coursera.org/learn/machine-learning

There is a free intro to data science class on Udacity as well:

https://www.udacity.com/course/intro-to-data-science--ud359

Lastly, there's always Kaggle, which has plenty of resources to learn from, and competitions as well:

https://www.kaggle.com/

gamedna

I can vouch for Andrew Ng's class. Its really top notch.

I enjoyed Andrew Ng's class on Coursera, which introduces basic concepts. For "real world," maybe find a dataset on data.world and try to figure out how to answer a question that is interesting to you?

https://www.coursera.org/learn/machine-learning

mortivore

I'm going through this one right now, and really enjoying it. Being able to learn at my own pace is great. The course is math heavy, but that's to be expected. I'm enjoying using Octave for the programming.

Understanding the notation is only the first little step in understanding the underlying principles. There are a lot of machine learning books/classes that will cover the underlying principles you need to understand what's covered in the book. Exactly which one to recommend depends on your background, but Andrew Ng's Coursera Course [1] has been a staple for people without a lot of math background.

[1] https://www.coursera.org/learn/machine-learning?authMode=log...

sqrt17

Ng's Coursera course will teach you what happens in Deep Learning and Machine Learning, but at least the Deep Learning course is very very light on the math side and avoids scary mathematics rather than making it accessible.

Without having read it, I'd recommend the "preliminary maths" part of Bengio et al's Deep Learning book - it teaches both the letters and the language, so to speak, and if the language isn't for you, you'd better throw away the papers and completely concentrate on reading and understanding the implementations that are our there, using the implementation first and foremost and the paper only as a backup to provide explanations when the implementation does mysterious or unexplained things.

You can do deep learning productively without having a PhD, but you won't be able (nor obliged) to read and understand PhD-level academic papers unless you have a solid (i.e., maths or physics or math-rich CS BSc) maths background.

sonabinu

I tried to overcome the notation issue by taking a ML class as a non- degree seeking student from the CS dept of a good university. I took it for credit, so invested a lot of time on hw and paper reading. I’m more comfortable with the notation now and am better at learning independently. I also did calc, linear algebra and Differential equations classes at a community college prior to this.

faceplanted

It's the first little step but you can't discount it, I struggled through my CS degree being "bad at symbols" until I found the book in the top comment and things got significantly easier, because even the mathematical courses that don't expect much maths background are taught by people who do have that background and often fall back on those symbols and the vocabulary they've got the experience with.

Honestly it's weird getting this far without knowing the symbols well, I went to a significantly poorer and less well staffed school that most of my fellow students, and you're kind of between a rock and a hard place sometimes, because no-one sees it as their job to catch you up, and the people who do know it learned it long ago manually and don't exactly have an easy time teaching you if you ask.

andyjohnson0

+1 for Andrew Ng's ML course.

I did the course earlier this year, and I can confirm that you don't need much more than high-school level maths knowledge. If you understand concepts like functions and summation then you're most of the way there, and if you've got some calculus then it should be easy. I came out of it with better mathematical comprehension than when I went in.

I found that I spent a lot of time on the course converting mathematical notation into code (octave/matlab), which is a great way to validate your understanding of the maths. If you're understanding is wrong then it either throws an error, or runs slowly because you failed to map summations etc onto the appropriate parallelised operations.

ML has moved on a bit since the course was designed, but it's still a good way to get familiar with the basics.

Some attribution seems to be there in the beginning of the README

> "In most cases the explanations are based on [this great]( https://www.coursera.org/learn/machine-learning ) machine learning course."

EDIT: It was added 6hrs ago https://github.com/trekhleb/machine-learning-octave/commit/f...

trekhleb

Yes, links to the Andrew Ng course is on every README of the repo: on top of the main README.md and in the "References" section of each internal README.md.

Here are some others that are also commonly recommended on HN:

Andrew Ng's Machine Learning MOOC: https://www.coursera.org/learn/machine-learning

Andrew Ng's Deep Learning Courses: https://www.deeplearning.ai/

David Silver's Reinforcement Learning Youtube Series: http://www0.cs.ucl.ac.uk/staff/d.silver/web/Teaching.html

Fast.ai Courses on ML and Deep Learning: https://www.fast.ai/

MotwaniSuhas

Thanks for sharing!

Andrew Ng shares his impressive knowledge on Coursera (which he is a co-founder of). For those interested:

- https://www.coursera.org/learn/machine-learning (Machine Learning Course)

- https://www.coursera.org/specializations/deep-learning (Deep Learning Specialization)

madeuptempacct

I didn't find the machine-learning course to be that great, but I don't know anything about machine learning.

clatan

It's only the best resource it there

odyssey7

Additional perspective: I consider it to be the best online course that I've taken. (I've taken a dozen or so.)

I thought both of these two courses on coursera were quite good:

https://www.coursera.org/learn/machine-learning/

https://www.coursera.org/specializations/deep-learning

First one is a bit older school, but takes you through all the fundamentals and actually explains a lot of the math involved. It also gets you thinking a lot more about how to solve problems from a Linear Algebra standpoint and the types of problems machine learning is good for tackling.

Second one is a much more modern day set of courses specifically focused on Deep Learning techniques and problem solving.

I thought both were great. First one is free as well...

"Machine Learning" by Andrew Ng, Standford

https://www.coursera.org/learn/machine-learning

Introduction to Mathematical Thinking ( https://www.coursera.org/learn/mathematical-thinking ). Aims to teach you what it is like to think like a mathematician. Covers the elements of topics that you probably encounter in the first semester of an undergraduate maths degree: logic, induction, proof construction, real analysis, etc.

Machine Learning ( https://www.coursera.org/learn/machine-learning ). I'm still working through this course but am finding it extremely interesting. I find that having to implement things in matlab/octave gives you a deeper understanding than using a framework like tensorflow or keras.

Both of the above courses have good instructors, which I think is the main factor that makes a good mooc.

The "Bitcoin and Cryptocurrency Technologies" on Coursera helped me gain an understanding cryptocurrencies. Until I took that course I knew very little about the subject.

It's possibly a little dated now, but it's a good primer.

https://www.coursera.org/learn/cryptocurrency/

I'd love to hear what other cryptocurrency courses others recommend.

As many others mentioned, Andrew Ng's course on Machine Learning on Coursera was also very good.

https://www.coursera.org/learn/machine-learning

ctchocula

Second this. Doing the homework assignments (especially the first one) helped me understand how transactions work and are validated.

chabes

You might appreciate the Digital Currency MOOC from University of Nicosia, with Andreas Antonopoulos and Antonis Polemitis.

https://digitalcurrency.unic.ac.cy/free-introductory-mooc/

Latest live stream (with Andreas Antonopoulos) goes into Ethereum and alternative uses of the blockchain:

https://www.youtube.com/watch?v=PxyPNS5QmAI

Edit - Actually, the latest live stream is this one:

https://www.youtube.com/watch?v=h2aeToagyaA

Figured I'd leave both, since they cover similar topics

miltosgm

very interesting

suddensleep

Not a cryptocurrency course per se, but Dan Boneh's course on Cryptography[1] is an excellent introduction to most of the building blocks of cryptosystems, including the technology underlying most cryptocurrencies.

In terms of level, it is more than a little technical (programming exercises in both cryptography and cryptanalysis await you!), while still remaining far from rigorous (compared to, say, a graduate-level cryptography text).

[1] https://www.coursera.org/learn/crypto

Andrew Ng's Machine Learning Course on Coursera: https://www.coursera.org/learn/machine-learning

Hey!

I'd suggest starting with this excellent course:

https://www.coursera.org/learn/machine-learning

And then dive into competitions on kaggle.com.

Then following up with the deeplearning.ai specialization here: https://www.coursera.org/specializations/deep-learning

and the http://www.fast.ai/ courses.

You'll be up to speed in no time :)

Just recently I have written a "Machine Learning for Web Developers in JavaScript" blog post [0]. If you or someone else is a web developer, it might be interesting. It outlines my approach of learning it and gives a couple of great resources for JavaScript enthusiasts. Otherwise, I will just post a couple of the materials I used for myself to learn about ML below.

- [0] https://www.robinwieruch.de/machine-learning-javascript-web-... .

Podcast:

- http://ocdevel.com/podcasts/machine-learning

Courses:

- https://www.coursera.org/learn/machine-learning

- https://eu.udacity.com/course/machine-learning-engineer-nano... .

- https://www.coursera.org/specializations/deep-learning

- http://course.fast.ai/

Books:

- https://www.amazon.com/gp/product/B014X01SS0/

- http://www.deeplearningbook.org/

- http://neuralnetworksanddeeplearning.com/

- https://www.safaribooksonline.com/library/view/deep-learning... .

Math:

- http://www.fast.ai/2017/07/17/num-lin-alg/

- https://www.khanacademy.org/math/linear-algebra

- https://www.khanacademy.org/math/statistics-probability

- https://www.khanacademy.org/math/calculus-home

JavaScript ML:

- https://bri.im/

- https://github.com/javascript-machine-learning

Mar 09, 2018 · 2 points, 1 comments · submitted by mosselman

I wanted to continue the course in the app and it didn't let me. Then I logged into the website and I can't seem to open the course. Is it gone? Is there an alternative method to buy/get the course materials?

https://www.coursera.org/learn/machine-learning

mosselman

It seems to be back. I am confused, but happy ;)

This looks like a well put-together course, and a good way to learn TensorFlow. Keras and TensorFlow are top of my list of technologies to explore in the very near future.

Is anyone here doing Andrew Ng's Machine Learning course [1]? I'm about half-way through and really enjoying it. I'm particularly appreciating that the programming exercises are done in MatLab/Octave, so I feel that I'm really understanding the fundamentals without an API getting in the way, and developing some good intuition. Obviously frameworks are the way to go for production ML work, but I wonder whether ML people here think this bottom-up approach is advisable or could it be misleading when I move on to Keras/TensorFlow/whatever?

[1] https://www.coursera.org/learn/machine-learning

Edit: brevity

johnx123-up

I used to download all ML videos for offline ad hoc watching. But, this crash course videos cannot be downloaded using 'youtube-dl'. Any recommendations?

abhishekjha

Where are the videos anyway? I don't see any play button or ay console to play the videos.

choutos

Use the time you spend trying to find how to download the videos actually watching them, doing the readings and practising the exercises.

mark_l_watson

Andrew Ng’s older machine learning MOOC class was excellent. I took it once, and took it again a few years later. In the last 8 months I also took his new deep learning set of courses. All really good stuf! (I have been working in the field since the 1980s, but constantly refreshing helps me. And Andrew’s lectures are great fun, he is a teaching artist.

swyx

i completed the andrew ng course recently, and felt that the difficulty dropped a lot in the second half of the course (for example, he stops giving homeworks). im hoping for more in his new DL courses

Choco31415

I've taken the CNN and RNN (parts 4 and 5) classes of his new DL specialization, and they both area about as rigorous as you wanted. I do have to give a warning though that the last class starts so see some confusing mistakes in the HW. For example, the expected output given is from an outdated HW version.

swyx

sigh. well i hope the support is good.

bkanber

I teach ML and am currently writing my 2nd book on it.

I always advocate learning the fundamentals. Machine learning is math, and neural networks in particular rely on linear algebra and vector calculus. (You can build a NN without using linear algebra directly, likely it'll be slower and besides, the concept still relies on linear algebra).

Frameworks abstract away a lot of the mathiness, which is a net good for society (ie, exposing lots of developers to neural networks), but I consider that a net-negative for the individual developer.

When working on anything but trivial toy problems, you should make sure you understand your problem domain and implementation thoroughly. Is the activation function you've chosen ideal for your problem domain? If not, choose a better one. If no better one exists, you can invent it; but you'll also need to know how to design the backpropagation algorithm for that new activation function (which requires some vector calculus).

Learning the math, as you have, helps you tune your algorithm based on actual knowledge rather than guesswork. I don't think it will be misleading when you move on to a framework. The frameworks are built on the same math.

That said -- if all you're looking to do is play around, then you don't need the math as much.

andyjohnson0

Thanks for taking the time to write such a comprehensive reply - much appreciated. "ML is maths" is something that I'm getting used to now. I do have some real uses in mind for what I'm learning' both in my job and some side projects, particularly image feature recognition, and I'm looking forward so seeing how it all works in out. Thanks again!

bkanber

Image feature recognition is not quite solved but I feel it's very close. It's easier, obviously, if the problem domain is very specific.

In the past, like when I started on ML, the best tip was to make sure to do some edge detection with a few convolutions before feeding an image to a neural network. Now, we have convolutional neural networks that kinda do that for you automatically.

Sometime in between those two dates, someone figured out how to get the convolutions trained via backpropagation -- and they did that by deriving the gradient of an arbitrary convolution (or more likely, looking it up). And that let us put convolutions right in the neural net and have the convolutions automatically train themselves along with the rest of the network. And we observe that the convolutions do things that we would do, like remove unnecessary detail and highlight edges or exaggerate colors.

Anyways; I believe the current state-of-the-art for generic image feature recognition is an ensemble of convolutional neural networks. I believe Google leads the pack on the commercial side so maybe look into how they do it.

p1esk
not quite solved is the right way to put it.

If you look at capsules papers, you will realize that convnets are not very good at recognizing transformations (e.g. 3d rotations) of the same object. That's probably why so many training examples are required to make them work well.

Also, if you look at errors made by state of the art models, some of them are obvious (to a human) objects, classified as something entirely different and unrelated. Which leads me to believe that object recognition is not completely solved until a model has some kind of common sense, either build in, or acquired during training.

Good post. I want to add several great resources.

- Grokking Deep Learning

https://www.manning.com/books/grokking-deep-learning

This is a fantastic book that assumes no prerequisites other than knowing python, and takes you through the fundamentals of DL. It has very intuitive and easy to follow explanations, and doesn't use any libraries other than NumPy, so you're building the whole thing yourself, from scratch.

- Deep Learning With Python

https://machinelearningmastery.com/deep-learning-with-python...

This is kind of the opposite of the previous one, it doesn't go into math and theory, instead it guides you through building several practical projects with a very simple to use DL library(keras). It's a great way to gain practical experience in addition to theory from the previous book. Also has no prerequisites other than python, and makes it very easy to get started.

- 3blue1brown videos on neural networks:

https://www.youtube.com/playlist?list=PLZHQObOWTQDNU6R1_6700...

Extremely brilliant high-level concise overview of how ANNs work. I highly recommend you get started here. You should also check out his videos on calulus and linear algebra, they're fantastic way to learn the math you need.

- Khan Academy videos - one of the easiest ways to learn the math prerequisites.

Calculus:

https://www.khanacademy.org/math/calculus-home

Linear Algebra:

https://www.khanacademy.org/math/linear-algebra

Probability and Statistics:

https://www.khanacademy.org/math/statistics-probability

- Hands-On Machine Learning with Scikit-Learn and TensorFlow

http://shop.oreilly.com/product/0636920052289.do

I haven't read this one yet, but it looks very promising, and a lot of people seem to find it very useful.

- Andrew Ng's Coursera course

https://www.coursera.org/learn/machine-learning

Everyone knows about this one, I just think every article on AI resources should mention it, one of the most popular ways to get started with ML.

- New MIT courses on Self-Driving cars and AGI

https://selfdrivingcars.mit.edu

https://agi.mit.edu

- The Master Algorithm

https://www.audible.com/pd/Science-Technology/The-Master-Alg...

Excellent high-level overview of ML field and algorithms.

====

Other great stuff:

- Artificial Intelligence: A Modern Approach

http://aima.cs.berkeley.edu/

The leading textbook in Artificial Intelligence. It's not the fastest way to get started, but it's considered one of the best AI textbooks ever written.

- Stanford AI course (CS 188)

https://www.youtube.com/playlist?list=PLIeooNSdhQE5kRrB71yu5...

Brilliant course based on AIMA. Not DL, but solid fundamentals of AI and ML.

- Couple of great playlists on DL, just to complete the collection:

Machine Learning with Python

https://www.youtube.com/playlist?list=PLQVvvaa0QuDfKTOs3Keq_...

Neural Networks Demystified

https://www.youtube.com/watch?v=bxe2T-V8XRs&index=1&list=PLi...

https://www.coursera.org/learn/machine-learning

this one?

marrowgari

this one... https://www.coursera.org/learn/neural-networks-deep-learning...

Just recently I have written a "Machine Learning for Web Developers in JavaScript" blog post [0]. If you or someone else is a web developer, it might be interesting. It outlines my approach of learning it and gives a couple of great resources for JavaScript enthusiasts. Otherwise, I will just post a couple of the materials I used for myself to learn about ML below.

- [0] https://www.robinwieruch.de/machine-learning-javascript-web-...

Podcast:

- http://ocdevel.com/podcasts/machine-learning

Courses:

- https://www.coursera.org/learn/machine-learning

- https://eu.udacity.com/course/machine-learning-engineer-nano...

- https://www.coursera.org/specializations/deep-learning

- http://course.fast.ai/

Books:

- https://www.amazon.com/gp/product/B014X01SS0/

- http://www.deeplearningbook.org/

- http://neuralnetworksanddeeplearning.com/

- https://www.safaribooksonline.com/library/view/deep-learning...

Math:

- http://www.fast.ai/2017/07/17/num-lin-alg/

- https://www.khanacademy.org/math/linear-algebra

- https://www.khanacademy.org/math/statistics-probability

- https://www.khanacademy.org/math/calculus-home

JavaScript ML:

- https://bri.im/

- https://github.com/javascript-machine-learning

Yes, see: https://www.coursera.org/learn/machine-learning

It starts out reaaaally basic but give a thorough grounding of the maths and the intuition behind it.

This is kind of a masters degree course i created for myself to get knowledge of Machine Learning from bottoms up

First, you need a strong mathematical base. Otherwise, you can copy paste an algorithm or use an API but you will not get any idea of what is happening inside Following concepts are very essential

1) Linear Algebra (MIT https://ocw.mit.edu/courses/mathematics/18-06-linear-algebra... ) 2) Probability (Harvard https://www.youtube.com/watch?v=KbB0FjPg0mw )

Get some basic grasp of machine learning. Get a good intuition of basic concepts

1) Andrew Ng coursera course ( https://www.coursera.org/learn/machine-learning )

2) Tom Mitchell book ( https://www.amazon.com/Machine-Learning-Tom-M-Mitchell/dp/00... )

Both the above course and book are super easy to follow. You will get a good idea of basic concepts but they lack in depth. Now you should move to more intense books and courses

You can get more in-depth knowledge of Machine learning from following sources

1)Nando machine learning course ( https://www.youtube.com/watch?v=w2OtwL5T1ow )

2)Bishops book ( https://www.amazon.in/Pattern-Recognition-Learning-Informati... )

Especially Bishops book is really deep and covers almost all basic concepts.

Now for recent advances in Deep learning. I will suggest two brilliant courses from Stanford

1) Vision ( https://www.youtube.com/watch?v=NfnWJUyUJYU )

2) NLP ( https://www.youtube.com/watch?v=OQQ-W_63UgQ )

The Vision course by Karparthy can be a very good introduction to Deep learning. Also, the mother book for deep learning ( http://www.deeplearningbook.org/ )is good

emurillo510

hey neel8986, I know linear algebra is very important for large scale calculations. But how much calculus and statistics do you need for ML? Also, if you can touch what applications of calculus and statistics are used in ML that would be awesome :]. THANKS!

neel8986

Regarding calculus, I think basic multivariable calculus can be enough for starting. If you need a refresher you can look for ( https://ocw.mit.edu/courses/mathematics/18-02sc-multivariabl... )

Also the basic idea of chain rule is important for deep learning.

Regarding statistics, I already mentioned the probability course which describes most of the important statistics concept you need. Also, some idea of Hypothesis testing can be helpful

emurillo510

right on thanks neel8986.

Just recently I have written a "Machine Learning for Web Developers in JavaScript" blog post [0]. If you are a web developer, it might be interesting for you. It outlines my approach of learning it and gives a couple of great resources for JavaScript enthusiasts. Otherwise, I will just post a couple of the materials I used below. It's not only video courses, because I believe it's always useful to stimulate all senses.

- [0] https://www.robinwieruch.de/machine-learning-javascript-web-...

Podcast:

- http://ocdevel.com/podcasts/machine-learning

Courses:

- https://www.coursera.org/learn/machine-learning

- https://de.udacity.com/course/machine-learning-engineer-nano...

- https://www.coursera.org/specializations/deep-learning

- http://course.fast.ai/

Books:

- https://www.amazon.com/gp/product/B014X01SS0/

- http://www.deeplearningbook.org/

- http://neuralnetworksanddeeplearning.com/

- https://www.safaribooksonline.com/library/view/deep-learning...

Math:

- http://www.fast.ai/2017/07/17/num-lin-alg/

- https://www.khanacademy.org/math/linear-algebra

- https://www.khanacademy.org/math/statistics-probability

- https://www.khanacademy.org/math/calculus-home

JavaScript ML:

- https://bri.im/

- https://github.com/javascript-machine-learning

getting your feet wet

andrew ng's machine learning course: https://www.coursera.org/learn/machine-learning

to get up to date on convnet architecture

Fei-Fei Li and Karpathy's cs231n: https://cs231n.github.io/

if you want to go deep

geoff hinton's neural networks for machine learning coursera: https://www.coursera.org/learn/neural-networks

Jan 13, 2018 · 323 points, 40 comments · submitted by rayalez

Hi there! I'm looking for an easy way to get started with AI/ML/DL.

I don't necessarily need to go super deep into details, I'm more interested in a practical high-level overview.

I know about Andrew Ng course [1], 3blue1brown videos [2], and Berkeley AI course [3]. What else would you recommend?

[1] https://www.coursera.org/learn/machine-learning

[2] https://www.youtube.com/playlist?list=PLZHQObOWTQDNU6R1_67000Dx_ZCJB-3pi

[3] https://www.youtube.com/playlist?list=PLIeooNSdhQE5kRrB71yu5yP9BRCJCSbMt

aaronsnoswell

If you're interested in learning Reinforcement Learning, then I can't recommend David Silver's lecture series highly enough. Youtube videos and slides are available for the entire thing. http://www0.cs.ucl.ac.uk/staff/D.Silver/web/Teaching.html

deepGem

I wouldn't really classify this as an introductory course. Some background in A* search, Markov processes etc is required. David has a fantastic narration style and this is one of those courses where I had to step out because I had other responsibilities and not because I got bored with the content.

visarga

Have you tried Andrew Ng's course? And I don't mean the one from the start of Coursera, but the original Stanford ML Course he taught at the blackboard. This ML course has all the math done by hand instead of skipped over.

https://www.youtube.com/view_play_list?p=A89DCFA6ADACE599

WhitneyLand

bad link?

evex
https://www.youtube.com/playlist?list=A89DCFA6ADACE599
joshuaeckroth

If you want to see projects coded in Python (random forests, word2vec, convolutional neural nets), I recently finished producing this set of videos: https://www.packtpub.com/big-data-and-business-intelligence/...

DLTarasi

I'll give another recommendation for http://www.fast.ai/

I went through the first phase of the course as an intro to AI/DL and thought it was really great from a high-level perspective. If you have a decent understanding of Python you'll have a working model running on AWS within the first few hours of the course which is very rewarding.

It does a better job than I expected explaining the underlying intuition of the math, but doesn't dive deep into the actual formulas. There are obviously tradeoffs to this approach and if you want to continue in the field you'll need to do something to fill in this background, but as far getting your hands dirty and understanding the basics I really liked the fast.ai approach.

hackernewsacct

As a beginner I cannot recommend this class in its current form. The first lecture with its setup walk through is outdated and I have trouble understanding how to do a work around.

tinymollusk

Part 1v2 was just released, it uses pytorch. Check it out, I was in the fall fellowship and can heartily recommend it.

hackernewsacct

This is welcomed news, thank you for the update. Can you link to v2? On the site I just see part 1, v1 with the AWS set up. This is the beginner unfriendly/outdated one I am referring to, and I don't see the updated version you're referring to.

tinymollusk

I just checked the course forum, and Jeremy asked us not to share on high traffic sites until theyve finished the new website. I think it'll be out within a week or so, so check the fast.ai site for updates. Should be soon!

hackernewsacct

Okay, I will check in a week or so. Thanks.

kmax12

One important skill you will need is feature engineering. Formal methods for it aren’t typically in ML ciriculums, but it’s worth understanding if you’re interested in applications if ML.

Deep learning addresses it to some extent, but isn’t always the best choice if you don’t have image / text data (eg tabular datasets from databases, log files) or a lot of training examples.

I’m the developer of a library called Featuretools ( https://github.com/Featuretools/featuretools ) which is a good tool to know for automated feature engineering. Our demos are also a useful resource to learn using some interesting datasets and problems: https://www.featuretools.com/demos

cuchoi

I am playing with an encrypted dataset, so this comes very useful. Any tips on how to take advantage of it or about its strengths and weaknesses?

max_

MIT 6.034 Artificial Intelligence, Fall 2010

https://www.youtube.com/watch?v=TjZBTDzGeGg&list=PLUl4u3cNGP...

f00_

getting your feet wet

andrew ng's machine learning course: https://www.coursera.org/learn/machine-learning

to get up to date on convnet architecture

Fei-Fei Li and Karpathy's cs231n: https://cs231n.github.io/

if you want to go deep

geoff hinton's neural networks for machine learning coursera: https://www.coursera.org/learn/neural-networks

daniyalnawaz

Andrew Ng's deeplearning.ai course is pretty accessible for beginners.

TheAlchemist

If you speak french, I would recommend Hugo Larochelle channel:

https://www.youtube.com/user/hugolarochelle

zengid

I'll add another vote for course.fast.ai since I'm currently working through it. The instructors are serious about delivering a practical course that will get you right into the process of training and playing around with the code. Also, one of the best parts of their courses (they're offering a few simultaneously) is the community of learners that hang around on the forums.

trias

this talk really enlightened me: https://www.infoq.com/presentations/neural-networks-introduc...

it is not a full course, but more an introduction.

shrumm

tried fast.ai?

mindcrime
http://www.fast.ai/

https://www.udacity.com/course/intro-to-machine-learning--ud...

https://agi.mit.edu/

https://www.youtube.com/watch?v=eLbMPyrw4rw&list=PL6EE0CD029...

https://www.youtube.com/watch?v=2pWv7GOvuf0&list=PL7-jPKtc4r...

https://www.youtube.com/watch?v=NfnWJUyUJYU&list=PLkt2uSq6rB...

igravious

fast.ai Making neural nets uncool again. fast.ai is dedicated to making the power of deep learning accessible to all.[0]

Udacity. Intro to Machine Learning: Pattern Recognition for Fun and Profit[1]

MIT 6.S099: Artificial General Intelligence[2]

Lecture Series on Artificial Intelligence by Prof. P. Dasgupta, Department of Computer Science & Engineering, Indian Institute of Technology, Kharagpur[3]

DeepMind. Reinforcement Learning Course by David Silver[4]

Stanford Winter Quarter 2016 class: CS231n: Convolutional Neural Networks for Visual Recognition.[5]

[0] http://www.fast.ai/

[1] https://eu.udacity.com/course/intro-to-machine-learning--ud1...

[2] https://agi.mit.edu/

[3] https://www.youtube.com/watch?v=eLbMPyrw4rw&list=PL6EE0CD029...

[4] https://www.youtube.com/watch?v=2pWv7GOvuf0&list=PL7-jPKtc4r...

[5] https://www.youtube.com/watch?v=NfnWJUyUJYU&list=PLkt2uSq6rB...

FabHK

I liked Yaser Abu-Mostafa's Caltech ML course. A bit dated (2012), but solid introduction to the basics (such as VC dimensions). However, given your stated preferences, other recommendations (such as fast.ai) are probably better suited.

https://work.caltech.edu/telecourse.html

Eridrus

I found this course pretty interesting, since it gives some perspective on what sorts of guarantees people want that DL doesn't provide, but I wouldn't necessarily recommend starting with it unless you have a theory bent.

rwieruch

Just recently I have written a "Machine Learning for Web Developers in JavaScript" blog post [0]. If you are a web developer, it might be interesting for you. It outlines my approach of learning it and gives a couple of great resources for JavaScript enthusiasts. Otherwise, I will just post a couple of the materials I used below. It's not only video courses, because I believe it's always useful to stimulate all senses.

- [0] https://www.robinwieruch.de/machine-learning-javascript-web-...

Podcast:

- http://ocdevel.com/podcasts/machine-learning

Courses:

- https://www.coursera.org/learn/machine-learning

- https://de.udacity.com/course/machine-learning-engineer-nano...

- https://www.coursera.org/specializations/deep-learning

- http://course.fast.ai/

Books:

- https://www.amazon.com/gp/product/B014X01SS0/

- http://www.deeplearningbook.org/

- http://neuralnetworksanddeeplearning.com/

- https://www.safaribooksonline.com/library/view/deep-learning...

Math:

- http://www.fast.ai/2017/07/17/num-lin-alg/

- https://www.khanacademy.org/math/linear-algebra

- https://www.khanacademy.org/math/statistics-probability

- https://www.khanacademy.org/math/calculus-home

JavaScript ML:

- https://bri.im/

- https://github.com/javascript-machine-learning

jacek

Not a video course, but an excellent book: "Hands-On Machine Learning with Scikit-Learn and TensorFlow" by Aurélien Géron. Provides a gentle and high quality introduction to Machine Learning with practice from the very beginning. I wish I had this book when I was starting. It explains everything from data engineering, through how algorithms work, to practical applications. Everything in Python 3, covering pandas, scikit-learn, tensorflow. It is absolutely wonderful!

[1] http://shop.oreilly.com/product/0636920052289.do

colmvp

As a person who did a lot of Deep Learning... learning in 2017, I think this was my favorite.

Fast.ai was fine, but I felt like most of my learning for the things I cared about came from reading research papers, watching Karpathy's CS231n lectures, and blog posts that went into detail on particular concepts.

But when at certain points I felt confused on certain concepts, Geron's book did a pretty good job explaining things slowly and in great detail, especially with respects to the code he wrote. It's still a book I'll pick up for 20-40 minutes every other day to help my mind recall about how something works.

Funnily enough, I've spent the last few months reading Sutton/Barto's Intro to Reinforcement Learning (along with Silver's lectures on DeepMind's YouTube Channel) and only realized Geron touches upon RL a little bit in the latter part of the ML book.

jack_pp

I've learned a ton from https://www.kadenze.com/courses/creative-applications-of-dee...

Lausbert

A pretty short introduction to machine learning created by myself: http://lausbert.com/2018/01/14/the-shortest-introduction-to-...

ivan_ah

I found the "Bay Area Deep Learning School" 2-day lecture series to be very good:

https://www.youtube.com/watch?v=eyovmAtoUx0

https://www.youtube.com/watch?v=9dXiAecyJrY

nl

Fast.ai

dnl_pozzobon

How about Microsoft's AI School https://aischool.microsoft.com

aficionado

Ideal to practice, learn, and teach machine learning:

https://bigml.com/ml101 https://bigml.com/education/videos

oscgonfer

I took the coursera specialisation one week ago. It takes you from the very basics to some more complex modules like keras or tensorflow. If you are into it and have time, the whole 4 courses can be done in the free week: https://www.coursera.org/specializations/deep-learning

nshr

Fast.ai, you can checkout the forum here: http://forums.fast.ai/

alexnewman

As much as I love Ng, I vastly prefer Hinton’s lectures. Something about that English accent.

kanodiaayush

Can we name the links so that we know what each is? @mindcrime

mindcrime

I would have but I was half asleep when I first posted that. Luckily someone else came along and labeled them in a reply. :-)

FullMtlAlcoholc
https://cs231n.github.io/

Brushing up on your math will definitely help! But it's not strictly necessary. It really depends on how deep you want to go.

For the Neural Network type stuff we used in this work, I would recommend Michael Nielsen's awesome website as a starting point http://neuralnetworksanddeeplearning.com/ and keras https://keras.io/ is the easiest NN library to pick up and get something going with. Andrew Ng's mooc https://www.coursera.org/learn/machine-learning is also a good starting point for some slightly more general machine learning background.

If you want to avoid the math (not my personal recommendation), I would start there and just mess around. Build small things and start reading more as you get comfortable. Its definitely an area I would encourage learning in an iterative way: try to learn a small amount, try and apply it, repeat.

Here are the resources I found useful: ========================================== Advices from Open AI, Facebook AI leaders

Courses You MUST Take:

Machine Learning by Andrew Ng ( https://www.coursera.org/learn/machine-learning ) /// Class notes: ( http://holehouse.org/mlclass/index.html )

Yaser Abu-Mostafa’s Machine Learning course which focuses much more on theory than the Coursera class but it is still relevant for beginners.

( https://work.caltech.edu/telecourse.html )

Neural Networks and Deep Learning (Recommended by Google Brain Team) ( http://neuralnetworksanddeeplearning.com/ )

Probabilistic Graphical Models ( https://www.coursera.org/learn/probabilistic-graphical-model... )

Computational Neuroscience ( https://www.coursera.org/learn/computational-neuroscience )

Statistical Machine Learning ( http://www.stat.cmu.edu/~larry/=sml/ )

From Open AI CEO Greg Brockman on Quora

Deep Learning Book ( http://www.deeplearningbook.org/ ) ( Also Recommended by Google Brain Team )

It contains essentially all the concepts and intuition needed for deep learning engineering (except reinforcement learning). by Greg

2. If you’d like to take courses: Linear Algebra — Stephen Boyd’s EE263 (Stanford) ( http://ee263.stanford.edu/ ) or Linear Algebra (MIT)

( http://ocw.mit.edu/courses/mathematics/18-06sc-linear-algebr... )

Neural Networks for Machine Learning — Geoff Hinton (Coursera) https://www.coursera.org/learn/neural-networks

Neural Nets — Andrej Karpathy’s CS231N (Stanford)

http://cs231n.stanford.edu/

Advanced Robotics (the MDP / optimal control lectures) — Pieter Abbeel’s CS287 (Berkeley)

https://people.eecs.berkeley.edu/~pabbeel/cs287-fa11/

Deep RL — John Schulman’s CS294–112 (Berkeley) http://rll.berkeley.edu/deeprlcourse/

anothertraveler

This list is solid, and could keep you busy for a few years.

I am sitting in the same boat. Being a web developer for a couple of years, I wanted to try out a different domain. So I started to take Andrew Ng's course on Coursera [0]. Highly recommended. I supplement the course with audio and text by listening to the Machine Learning Guide Podcast [1] and by reading The Master Algorithm [2].

In addition, I started to apply my learnings in JavaScript [3]. Even though it's not the best language for ML, it makes it simpler to learn only one new thing and stick to known technologies for the rest. I have lined up ~7 articles about ML in JavaScript, so if you are interested, you can keep an eye on it :)

- [0] https://www.coursera.org/learn/machine-learning/

- [1] http://ocdevel.com/podcasts/machine-learning

- [2] https://www.goodreads.com/book/show/24612233-the-master-algo...

- [3] https://www.robinwieruch.de/linear-regression-gradient-desce...

Intro to AI

https://www.udacity.com/course/intro-to-artificial-intellige...

Machine Learning

https://www.coursera.org/learn/machine-learning

The Pacman programming exercises in python

http://ai.berkeley.edu/project_overview.html

And the Kaggle Titanic Survivability dataset

https://www.kaggle.com/c/titanic

But if you desire an even gentler intro. Try Daniel Shiffman's Nature of Code in P5

http://natureofcode.com/

best of luck ;)

I highly recommend Andrew Ng's Coursera courses for both Machine Learning and Deep Learning. Good for beginners, Math is taught along with the course, and gets you a solid foundation:

https://www.coursera.org/learn/machine-learning/

https://www.coursera.org/learn/neural-networks-deep-learning...

dagw

Andrew Ng's courses are excellent. Another pretty good Coursera course is Machine Learning Foundations from the University of Washington. It is very high level and novice friendly. While it covers non of the math and very little programming it does give a nice quick introduction to the most popular ML techniques out there and when to use them. It all depends on what level you are interested in starting. They also have follow up courses that go deeper into the different techniques.

ravishk

+1 for this recommendation.

I would specifically recommend Machine Learning Foundations: A Case Study Approach - It is fantastic and helped me greatly start my ML journey last year.

Turi is awesome, I hope Apple is doing something great with it.

hackathonguy

Thank you! Should I start with the Machine Learning one?

icc97

From my experience Andrew Ng wiped the floor with every other lecturer I've had. Both the ML and his new Deep Learning course.

If the lecturers aren't very interesting Coursera can be as hard as any other lectures. I gave up on the Scala functional programming and disappointingly have stalled with Geoffrey Hinton's Neural Networks courses.

But I really can't understate how good Andrew Ng is, he has a very relaxed manner and manages to make some very complex topics seem almost trivial.

The worst of the mathematics is derivatives and matrix multiplication. You can even avoid matrix multiplication mostly in the ML course, but in his Deep Learning course he takes you through the 300x performance benefit you get from using NumPy and matrix multiplication vs loops.

fargo

I would recommend starting with deep learning first since that's what you are interested in and it covers all the ML principles you need to be familiar with. If you want to go deeper and get familiar with other ML techniques too you can easily follow the old course afterwards.

binarymax

At your level yes, I would recommend starting with the ML course. It is really beneficial to understanding how the mathematics work.

The two most important things to remember, since the courses are challenging: 1) don't be in a hurry, and 2) don't give up! Take the time to learn every detail presented, do the optional exercises, and dig deep.

xeromal

It's definitely challenging. The math and just seeing the complicated formulas really push me, but the reward is good too. I'm tired of pushing pixels and doing some meaty stuffy like ML is a nice change of pace.

What? No. Why in the world do people even ask this kind of question. To a first approximation, the answer to "is it too late to get started with ..." question is always "no".

If no, what are the great resources for starters?

The videos / slides / assignments from here:

http://ai.berkeley.edu/home.html

This class:

https://www.coursera.org/learn/machine-learning

This class:

https://www.udacity.com/course/intro-to-machine-learning--ud...

This book:

https://www.amazon.com/Artificial-Intelligence-Modern-Approa...

This book:

https://www.amazon.com/Hands-Machine-Learning-Scikit-Learn-T...

This book:

https://www.amazon.com/Introduction-Machine-Learning-Python-...

These books:

http://greenteapress.com/thinkstats/thinkstats.pdf

http://www.greenteapress.com/thinkbayes/thinkbayes.pdf

This book:

https://www.amazon.com/Machine-Learning-Hackers-Studies-Algo...

This book:

https://www.amazon.com/Thoughtful-Machine-Learning-Test-Driv...

These subreddits:

http://artificial.reddit.com

http://machinelearning.reddit.com

http://semanticweb.reddit.com

These journals:

http://www.jmlr.org

http://www.jair.org

This site:

http://arxiv.org/corr/home/

Any tips before I get this journey going?

Depending on your maths background, you may need to refresh some math skills, or learn some new ones. The basic maths you need includes calculus (including multi-variable calc / partial derivatives), probability / statistics, and linear algebra. For a much deeper discussion of this topic, see this recent HN thread:

https://news.ycombinator.com/item?id=15116379

Luckily there are tons of free resources available online for learning various maths topics. Khan Academy isn't a bad place to start if you need that. There are also tons of good videos on Youtube from Gilbert Strang, Professor Leonard, 3blue1brown, etc.

Also, check out Kaggle.com. Doing Kaggle contests can be a good way to get your feet wet.

And the various Wikipedia pages on AI/ML topics can be pretty useful as well.

https://www.coursera.org/learn/machine-learning

Not a book but excellent primer course

rajeshp1986

Everybody point towards this course. I started this few times but was never able to complete it due to commitment at work. Is there a guide/tutorial which gives a more gentle introduction to these topics and could be finished in a day or two?

You can also dive in first and then cover the math behind ML, by taking Andrew Ng's courses. https://www.coursera.org/learn/machine-learning https://www.coursera.org/specializations/deep-learning

I consider Andrew Ng's ML course - https://www.coursera.org/learn/machine-learning the best place to start, in addition to his https://deeplearning.ai courses.

Andrew Ng's tutorials[1] on Coursera are very good.

If you're into python programming then tutorials by sentdex[2] are also pretty good and cover things like scikit, tensorflow, etc (more practical less theory)

[1] https://www.coursera.org/learn/machine-learning [2] https://pythonprogramming.net/data-analysis-tutorials/

For those who are unfamiliar with coursera or interested in just the videos (and NO certificate) you can enroll in "AUDIT" mode:

AUDIT MODE: http://image.ibb.co/iwm0xF/ng.png

The deep-learning course consist of 5 subcourses:

https://www.coursera.org/learn/neural-networks-deep-learning

https://www.coursera.org/learn/deep-neural-network

https://www.coursera.org/learn/machine-learning-projects

https://www.coursera.org/learn/convolutional-neural-networks

https://www.coursera.org/learn/nlp-sequence-models

The deep-learning course is a different course than the prerequisite machine-learning course:

https://www.coursera.org/learn/machine-learning

flor1s

Thanks for the links! It seems like you can already browse the lecture videos of the first three courses!

smithsmith

Can the certificate be received by completing the course in audit mode and then paying at the end of the course.

ryanschneider

BTW, if you want to audit, you need to search for each course individually (or click seycombi's links above) and click the Enroll button there, there's no Audit option if you click Enroll on the full Specialization.

jjuel

Thank you for pointing this out! Was looking for the way to just audit it and could not figure it out.

forgotmysn

fast.ai also has a quality ML course

supermdguy

I love fast.ai's course, but I also appreciate having a solid and thorough free machine learning course. While fast.ai is good for getting onto the cutting edge of deep learning quickly, it doesn't go through a lot of material that most people in the machine learning industry are assumes to know.

This one appears to be (but it's also not available for enrollment just yet). Then, for example, his ML course ( https://www.coursera.org/learn/machine-learning ) is available for purchase: http://collabshot.com/show/1hWhMQ

The courses are not yet live. Meanwhile, here is a list of 23 Deep Learning online courses aggregated (aggregated by my company): https://www.class-central.com/report/deep-learning-online-co...

Also, link to Andrew Ng's original ML class: https://www.coursera.org/learn/machine-learning

tannranger

Anybody have a clue when these will actually be up? I really enjoyed his ML course.

flor1s

For the first three courses the first week is already accessible.

Andrew Ng has an excellent ML course on coursera [1] that is very light on math.

[1]: https://www.coursera.org/learn/machine-learning

May 29, 2017 · 9 points, 0 comments · submitted by aarohmankad

Yes, I did my research but there is no such interactive tutorial online like Treehouse or Codecademy. There are so many tutorials but none of it tells you the whole path.

Here are the resources I found useful:

========================================== Advices from Open AI, Facebook AI leaders

Courses You MUST Take: Machine Learning by Andrew Ng ( https://www.coursera.org/learn/machine-learning ) /// Class notes: ( http://holehouse.org/mlclass/index.html )

Yaser Abu-Mostafa’s Machine Learning course which focuses much more on theory than the Coursera class but it is still relevant for beginners.( https://work.caltech.edu/telecourse.html )

Neural Networks and Deep Learning (Recommended by Google Brain Team) ( http://neuralnetworksanddeeplearning.com/ )

Probabilistic Graphical Models ( https://www.coursera.org/learn/probabilistic-graphical-model... )

Computational Neuroscience ( https://www.coursera.org/learn/computational-neuroscience )

Statistical Machine Learning ( http://www.stat.cmu.edu/~larry/=sml/ )

From Open AI CEO Greg Brockman on Quora

Deep Learning Book ( http://www.deeplearningbook.org/ ) ( Also Recommended by Google Brain Team )

It contains essentially all the concepts and intuition needed for deep learning engineering (except reinforcement learning). by Greg

2. If you’d like to take courses: Linear Algebra — Stephen Boyd’s EE263 (Stanford) ( http://ee263.stanford.edu/ ) or Linear Algebra (MIT)( http://ocw.mit.edu/courses/mathematics/18-06sc-linear-algebr... )

Neural Networks for Machine Learning — Geoff Hinton (Coursera) https://www.coursera.org/learn/neural-networks

Neural Nets — Andrej Karpathy’s CS231N (Stanford) http://cs231n.stanford.edu/

Advanced Robotics (the MDP / optimal control lectures) — Pieter Abbeel’s CS287 (Berkeley) https://people.eecs.berkeley.edu/~pabbeel/cs287-fa11/

Deep RL — John Schulman’s CS294–112 (Berkeley) http://rll.berkeley.edu/deeprlcourse/

From Director of AI Research at Facebook and Professor at NYU Yann LeCun on Quora

In any case, take Calc I, Calc II, Calc III, Linear Algebra, Probability and Statistics, and as many physics courses as you can. But make sure you learn to program.

JJarrard

Thank you!

atarian

What does physics have to do with ML/AI?

kevinphy

"The Extraordinary Link Between Deep Neural Networks and the Nature of the Universe" https://www.technologyreview.com/s/602344/the-extraordinary-...

https://www.coursera.org/learn/machine-learning

One word: https://www.coursera.org/learn/machine-learning

iamjk

That isn't a word, per se bruh.

ice109

per se: in and of itself as such: exactly.

you meant as such.

CCing

How much it costs exactly ?

tchaffee
https://www.coursera.org/learn/machine-learning

Machine Learning by Andrew Ng (Stanford)

https://www.coursera.org/learn/machine-learning

Mar 18, 2017 · flor1s on Ask HN: Best books on AI?

The course is also quite easy to follow without buying the book. I love the exercises in which you are programming an intelligent agent to move through a maze. It reminded me of how we learned programming in university using Karel The Robot.

This alongside Andrew Ng's Machine Learning course was my first exposure to the field. https://www.coursera.org/learn/machine-learning

I can also recommend Sebastian Thrun's Artificial Ingelligence for Robotics course: https://www.udacity.com/course/artificial-intelligence-for-r...

One of our guys started a tutorial series on writing an AI to play the game, DOOM. It assumes very little knowledge and is a fun exercise to do when taking a break from some of the great courses posted here. It's no replacement for the excellent course work, but it is fun.: https://www.codelitt.com/blog/doom-ai/

My favourite course for grasping the foundations of the concepts was Andrew NG's course (although it seems like you're beyond this now): https://www.coursera.org/learn/machine-learning

I think the best way to learn, is to build things though. Have you checked out the Kaggle challenges? https://www.kaggle.com/ Those will give you great practical skills.

colobas

Thanks for the insight!

I noticed that Andrew's course is still available.

https://www.coursera.org/learn/machine-learning

Is it still a good introduction to machine learning? It's several years old now. Are there better courses available?

nl

It's a good course.

The only(?) real criticism of it is the reliance on Matlab/Octave.

yomly

And even then, I can see why they use it - the syntax is pretty light and largely gets out of the way of the problem-space.

The only problem is that modern applied ML is dominated by Python...

malandrew

I'm curious why there hasn't been a push towards more efficient compiled languages like golang?

I don't work with machine learning and AI, but I used to do a lot of server-side programming with dynamic language. Switching to golang has been great. I'm far more productive with it and the CPU and memory savings have been great. Isn't ML the kind of domain where CPU cycles and memory matter?

p1esk

Because of GPUs.

ktta

That course is a very good basic machine learning course. It has many of the stepping stones to complex machine learning problems, no matter which specific field.

So yes, it is a good intro to machine learning. There are new advances coming up all the time. But you will definitely need to know most of the topics in that course. That is, if you want to properly understand most of the latest techniques.

visarga

It also works great psychologically - concretely, Andrew is capable of inspiring enthusiasm and confidence.

mwambua

I see what you did there. :)

Someone even made a drinking game out of it: https://www.reddit.com/r/mlclass/comments/lvxuz/mlclass_drin...

Andrew Ng's Coursera course simply titled "Machine Learning" is good - it addresses the mathematics of fundamental algorithms and concepts while giving practical examples and applications: https://www.coursera.org/learn/machine-learning

Regarding books, there are many very high quality textbooks available (legitimately) for free online:

Introduction to Statistical Learning (James et al., 2014) http://www-bcf.usc.edu/~gareth/ISL/

the above book shares some authors with the denser and more in-depth/advanced

The Elements of Statistical Learning (Hastie et al., 2009) http://statweb.stanford.edu/~tibs/ElemStatLearn/

Information Theory: Inference & Learning Algorithms (MacKay, 2003) http://www.inference.phy.cam.ac.uk/itila/p0.html

Bayesian Reasoning & Machine Learning (Barber, 2012) http://web4.cs.ucl.ac.uk/staff/D.Barber/pmwiki/pmwiki.php?n=...

Deep Learning (Goodfellowet al., 2016) http://www.deeplearningbook.org/

Reinforcement Learning: An Introduction (Sutton & Barto, 1998) http://webdocs.cs.ualberta.ca/~sutton/book/ebook/the-book.ht...

^^ the above books are used on many graduate courses in machine learning and are varied in their approach and readability, but go deep into the fundamentals and theory of machine learning. Most contain primers on the relevant maths, too, so you can either use these to brush up on what you already know or as a starting point look for more relevant maths materials.

If you want more practical books/courses, more machine-learning focussed data science books can be helpful. For trying out what you've learned, Kaggle is great for providing data sets and problems.

Do this course and you'll get a very good idea of what's happening, and it's free: https://www.coursera.org/learn/machine-learning

I am taking Machine Learning on coursera by Andrew Ag. Initially I was intimidated by the idea of ML as I had no prior programming experience. I started learning data science stuff less than 6 months ago. I started to feel motivated and confident about ML by taking this course. I highly recommend it.

https://www.coursera.org/learn/machine-learning

erebrus

Thanks. I'll look that up. However, how much time does that takes you (weekly)?

mindcrime

It's self-paced, so it's kinda up to you. There are "deadlines" to help keep you on track, but they're optional. To pass, you just have to pass all the graded assignments by the end date. But if you're getting close to the end and are behind, you can always shift your enrollment to the following session - but you keep all your progress and everything. It's pretty cool in that regard. Very low pressure.

erebrus

That's cool. Can you tell me how much time you spend on it per week in average? Just so I get a general idea...

mindcrime

It's been a while since I took it, but I think I spent an hour or two a week watching the videos and reading notes and whatever, and then maybe another 3-5 hours on the programming assignment. It was probably less than that on the earlier programming assignments, and more on the later ones as things got more complicated later on. And I might have spent more time on the videos on certain sections, because of re-watching sections that weren't intuitively clear to me right away. In particular, some of the math'ier stuff where he explained the stuff about using partial derivatives to calculate the error gradients for neural networks... that stuff I had to put more work into since my math background isn't real strong (I never took multi-variable calculus).

All of that said, you can get through the class and learn and understand the material at the level he teaches it, even without completely understanding partial derivatives (a point he makes in the lecture). But having a strong calculus background certainly wouldn't hurt.

boniface316

I spend about min an hour a day. The general timeline is about 4 hrs per lectures, reading 1 hr reading (mostly optional) and 3 hrs per assignment. I take longer time on assignment since I am new. Sometimes I have to watch lectures over and over again to understand. In general I spend about 10 hrs/week.

I don't think there is any value in paying for the certification, since its an introductory course.

Machine Learning by Andrew Ng https://www.coursera.org/learn/machine-learning

The maths is fairly straightforward and the concepts are explained well.

posterboy

I started that one and feel like the format doesn't take much advantage of the medium: the videos are very much like traditional lectures. Of course being free is an immense plus, but then so are many books.

Specifically, I take issue with NG's foreign accent. That's just me looking for a reason, but it's the second time after Agarwal on MITx (and that wanted me to purchase his book). Also, I can already record lectures and play them back at will, only I have to leave the house for that. Besides that, these courses were rather classical university courses, it seems.

My gripe is, the videos are too long and my attention span too short. The first 2 weeks I could even pass just from what I learned reading HN, so I suppose I really prefer the socratic method instead of frontal education. Many would claim I was simply lazy and they'd be right, alas also derogitory.

posterboy

note to myself: otoh, paying a fee for the effort to run a course is most reasonable if the value added comes in form of a book to keep. Actually that's what I am missing in those courses, where instructors don't provide even scripts.

TL;DR - read my post's "tag" and take those courses!

---

As you can see in my "tag" on my post - most of what I have learned came from these courses:

1. AI Class / ML Class (Stanford-sponsored, Fall 2011)

2. Udacity CS373 (2012) - https://www.udacity.com/course/artificial-intelligence-for-r...

3. Udacity Self-Driving Car Engineer Nanodegree (currently taking) - https://www.udacity.com/course/self-driving-car-engineer-nan...

For the first two (AI and ML Class) - these two MOOCs kicked off the founding of Udacity and Coursera (respectively). The classes are also available from each:

Udacity: Intro to AI (What was "AI Class"):

https://www.udacity.com/course/intro-to-artificial-intellige...

Coursera: Machine Learning (What was "ML Class"):

https://www.coursera.org/learn/machine-learning

Now - a few notes: For any of these, you'll want a good understanding of linear algebra (mainly matrices/vectors and the math to manipulate them), stats and probabilities, and to a lessor extent, calculus (basic info on derivatives). Khan Academy or other sources can get you there (I think Coursera and Udacity have courses for these, too - plus there are a ton of other MOOCs plus MITs Open Courseware).

Also - and this is something I haven't noted before - but the terms "Artificial Intelligence" and "Machine Learning" don't necessarily mean the same thing. Based on what I have learned, it seems like artificial intelligence mainly revolves around modern understandings of artificial neural networks and deep learning - and is a subset of machine learning. Machine learning, though, also encompasses standard "algorithmic" learning techniques, like logistic and linear regression.

The reason why neural networks is a subset of ML, is because a trained neural network ultimately implements a form of logistic (categorization, true/false, etc) or linear regression (range) - depending on how the network is set up and trained. The power of a neural network comes from not having to find all of the dependencies (iow, the "function"); instead the network learns them from the data. It ends up being a "black box" algorithm, but it allows the ability to work with datasets that are much larger and more complex than what the algorithmic approaches allow for (that said, the algorithmic approaches are useful, in that they use much less processing power and are easier to understand - no use attempting to drive a tack with a sledgehammer).

With that in mind, the sequence to learn this stuff would probably be:

1. Make sure you understand your basics: Linear Algebra, stats and probabilities, and derivatives

2. Take a course or read a book on basic machine learning techniques (linear regression, logistic regression, gradient descent, etc).

3. Delve into simple artificial neural networks (which may be a part of the machine learning curriculum): understand what feed-forward and back-prop are, how a simple network can learn logic (XOR, AND, etc), how a simple network can answer "yes/no" and/or categorical questions (basic MNIST dataset). Understand how they "learn" the various regression algorithms.

4. Jump into artificial intelligence and deep learning - implement a simple neural network library, learn tensorflow and keras, convolutional networks, and so forth...

Now - regarding self-driving vehicles - they necessarily use all of the above, and more - including more than a bit of "mechanical" techniques: Use OpenCV or another machine vision library to pick out details of the road and other objects - which might then be able to be processed by a deep learning CNN - ex: Have a system that picks out "road sign" object from a camera, then categorizes them to "read" them and use the information to make decisions on how to drive the car (come to a stop, or keep at a set speed). In essence, you've just made a portion of Tesla's vehicle assist system (first project we did in the course I am taking now was to "follow lane lines" - the main ingredient behind "lane assist" technology - used nothing but OpenCV and Python). You'll also likely learn stuff about Kalman filters, pathfinding algos, sensor fusion, SLAM, PID controllers, etc.

I can't really recommend any books to you, given my level of knowledge. I've read more than a few, but most of them would be considered "out of date". One that is still being used in university level courses is this:

http://aima.cs.berkeley.edu/

https://www.amazon.com/Artificial-Intelligence-Modern-Approa...

Note that it is a textbook, with textbook pricing...

Another one that I have heard is good for learning neural networks with is:

https://www.amazon.com/Make-Your-Own-Neural-Network/dp/15308...

There are tons of other resources online - the problem is separating the wheat from the chaff, because some of the stuff is outdated or even considered non-useful. There are many research papers out there that can be bewildering. I would say if you read them, until you know which is what, take them all with a grain of salt - research papers and web-sites alike. There's also the problem of finding diamonds in the rough (for instance, LeNet was created in the 1990s - but that was also in the middle of an AI winter, and some of the stuff written at the time isn't considered as useful today - but LeNet is a foundational work of today's ML/AI practices).

Now - history: You would do yourself good to understand the history of AI and ML, the debates, the arguments, etc. The base foundational work come from McCulloch and Pitts concept of an artificial neuron, and where that led:

https://en.wikipedia.org/wiki/Artificial_neuron

Also - Alan Turing anticipated neural networks of the kind that wasn't seen until much later:

http://www.alanturing.net/turing_archive/pages/reference%20a...

...I don't know if he was aware of McCulloch and Pitts work which came prior, as they were coming at the problem from the physiological side of things; a classic case where inter-disciplinary work might have benefitted all (?).

You might want to also look into the philosophical side of things - theory of mind stuff, and some of the "greats" there (Minsky, Searle, etc); also look into the books written and edited by Douglas Hofstadter:

https://en.wikipedia.org/wiki/G%C3%B6del,_Escher,_Bach

There's also the "lesser known" or "controversial" historical people:

* Hugo De Garis (CAM-Brain Machine)

* Igor Aleksander

* Donald Michie (MENACE)

...among others. It's interesting - De Garis was a very controversial figure, and most of his work, for whatever it is worth - has kinda been swept under the rug. He built a few computers that were FPGA based hardware neural network machines that used cellular automata a-life to "evolve" neural networks. There were only a handful of these machines made; aesthetically, their designs were as "sexy" as the old Cray computers (seriously).

Donald Michie's MENACE - interestingly enough - was a "learning computer" made of matchboxes and beads. It essentially implemented a simple neural network that learned how to play (and win at) naughts and crosses (TIC-TAC-TOE). All in a physically (by hand) manipulated "machine".

Then there is one guy, who is "reviled" in the old-school AI community on the internet (take a look at some of the old comp.ai newsgroup archives, among others). His nom-de-plume is "Mentifex" and he wrote something called "MIND.Forth" (and translated it to a ton of other languages), that he claimed was a real learning system/program/whatever. His real name is "Arthur T. Murray" - and he is widely considered to be one of the earliest "cranks" on the internet:

http://www.nothingisreal.com/mentifex_faq.html

Heck - just by posting this I might be summoning him here! Seriously - this guy gets around.

Even so - I'm of the opinion that it might be useful for people to know about him, so they don't go to far down his rabbit-hole; at the same time, I have a small feeling that there might be a gem or two hidden inside his system or elsewhere. Maybe not, but I like to keep a somewhat open mind about these kinds of things, and not just dismiss them out of hand (but I still keep in mind the opinions of those more learned and experienced than me).

EDIT: formatting

ep103

Oh man, thank you! Thank you!

Without doubt do the Andrew Ng course on Machine Learning.

https://www.coursera.org/learn/machine-learning

It's excellent.

jypepin

I've started it already, seems like this one and the AI udacity course are the two best ones for now :) Thanks!

Perhaps not exactly the right link, but Andrew Ng's Machine Learning course (also from Stanford) teaches exactly the required things in the first three weeks: https://www.coursera.org/learn/machine-learning

therockhead

It's been a while since I did any serious maths, would I be lost in course like this ?

espeed

See this course on linear algebra:

http://codingthematrix.com/

https://cs.brown.edu/video/channels/coding-matrix-fall-2014/

And this one on Machine Learning:

http://work.caltech.edu/telecourse.html

stagger87

Probably not. I'm currently about halfway through and the majority of required mathematics revolves around linear algebra (matrix multiplication almost exclusively) and basic algebra. There is a linear algebra refresher as well.

metafunctor

No. The basic linear algebra and calculus concepts used on the course are rather simple, and the videos hold your hand through the math quite well. You don't need deep understanding of the math to pass the course.

jamra

I got 100% on the course and don't really do math myself. He skips over the derivations and gives the formula. The way you interact with the math is by turning a formula into code. It's actually fun and refreshing.

> As someone who's interested in taking the Udacity course, would your recommend it?

So far, yes - but that has a few caveats:

See - I have some background prior to this, and I think it biases me a bit. First, I was one of the cohort that took the Stanford-sponsored ML Class (Andrew Ng) and AI Class (Thrun/Norvig), in 2011. While I wasn't able to complete the AI Class (due to personal reasons), I did complete the ML Class.

Both of these courses are now offered by Udacity (AI Class) and Coursera (ML Class):

https://www.udacity.com/course/intro-to-artificial-intellige...

https://www.coursera.org/learn/machine-learning

If you have never done any of this before, I encourage you to look into these courses first. IIRC, they are both free and self-paced online. I honestly found the ML Class to be easier than the AI class when I took them - but that was before the founding of these two MOOC-focused companies, so the content may have changed or been made more understandable since then.

In fact, now that I think about it, I might try taking those courses again myself as a refresher!

After that (and kicking myself for dropping out of the AI Class - but I didn't have a real choice there at the time), in 2012 Udacity started, and because of (reasons...) they couldn't offer the AI Class as a course (while for some reason, Coursera could offer the ML Class - there must have been licensing issues or something) - so instead, they offered their CS373 course in 2012 (at the time, titled "How to Build Your Own Self-Driving Vehicle" or something like that - quite a lofty title):

https://www.udacity.com/course/artificial-intelligence-for-r...

I jumped at it - and completed it as well; I found it to be a great course, and while difficult, it was very enlightening on several fronts (for the first time, it clearly explained to me exactly how a Kalman filter and PID worked!).

So - I have that background, plus everything else I have read before then or since (AI/ML has been a side interest of mine since I was a child - I'm 43 now).

My suggestion if you are just starting would be to take the courses in roughly this order - and only after you are fairly comfortable with both linear algebra concepts (mainly vectors/matrices math - dot product and the like) and stats/probabilities. To a certain extent (and I have found this out with this current Udacity course), having a knowledge of some basic calculus concepts (derivatives mainly) will be of help - but so far, despite that minor handicap, I've been ok without that greater knowledge - but I do intend to learn it:

1. Coursera ML Class 2. Udacity AI Class 3. Udacity CS373 course 4. Udacity Self-Driving Car Engineer Nanodegree

> Do you think the course prepares you enough find a Self-Driving developer job?

I honestly think it will - but I also have over 25 years under my belt as a professional software developer/engineer. Ultimately, it - along with the other courses I took - will (and have) help me in having other tools and ideas to bring to bear on problems. Also - realize that this knowledge can apply to multiple domains - not just vehicles. Marketing, robotics, design - heck, you name it - all will need or do currently need people who understand machine learning techniques.

> Would you learn enough to compete/work along side people who got their Masters/PhD in Machine Learning?

I believe you could, depending on your prior background. That said, don't think that these courses could ever substitute for graduate degree in ML - but I do think they could be a great stepping stone. I am actually planning on looking into getting my BA then Masters (hopefully) in Comp Sci after completing this course. Its something I should have done long ago, but better late than never, I guess! All I currently have is an associates from a tech school (worth almost nothing), and my high school diploma - but that, plus my willingness to constantly learn and stay ahead in my skills has never let me down career-wise! So I think having this ML experience will ultimately be a plus.

Worst-case scenario: I can use what I have learned in the development of a homebrew UGV (unmanned ground vehicle) I've been working at on and off for the past few years (mostly "off" - lol).

> Appreciate your input.

No problem, I hope my thoughts help - if you have other questions, PM me...

i was quite put off by it. i feel like the teaching technique is pretty poor and the focus in on all the wrong things. mainly the tech gets in the way for learning. i don't want to figure out how to learn numpy when i'm trying to learn how to understand deep learning, that in itself is hard enough. i quite after a week (i did the stanford course first and this was going to be my second).

i would recommend the coursera course by andrew ng. i had an amazing time. the code stays out of your way and he walks you through the algorithms and explains the theory very well.

i just started the fast.ai by jeremy howard, and literally have been blown away but the course. it is AMAZING! by lesson 3 i'm able to build cnn models and score on top 20% in kaggle competitions. not bad for a complete novice. HIGHLY RECOMMENDED.

once im done with the fast.ai course i may look back around to google's deep learning course. i think it may be easier for more experienced users to digest its info.

https://www.coursera.org/learn/machine-learning

http://course.fast.ai/

Edit: added fast.ai link

These 3 are the most well know and well regarded 0-to-hero type intro courses online, and high-school math is sufficient to follow along (but pick only one and go start to finish!):

* https://www.udacity.com/course/intro-to-artificial-intellige... (by Peter Norvig - director of research @ Google & Sebastian Thrun - lead dev of google self driving car and founder of google x, now at gerogia tech uni) - great if you want a more "deep thinking" style intro to AI

* https://www.udacity.com/course/intro-to-machine-learning--ud... (Sebastian Thrun & Katie Malone - former physicist and data scientist great at explaining stuff so that anyone can grok it) - great if you want a more "down to earth" engineering style intro with simple clear examples

* https://www.coursera.org/learn/machine-learning (Andrew Ng @ Stanford & chied scientist at Baidu, former Google researcher) - great if you want a "bottom up", from math, through code/engineering, with less fuzzy big picture stuff - this is a great intro, even if Andrew Ng is less of a rock-star-presenter, if you want to start from math details up take this one!

Oh, and kaggle: https://www.kaggle.com/ . If you get stuck on anything, google the relevant math, pick up just enough to have an intuition and carry on.

You're still in college so you have plenty of time to learn well the required math, it's better to get a broad picture of the field ASAP imho! Then when you'll take the math classes, you'll already have "aha, this feels my gap about X and Y" and "aha, now I get why Z" and you'll really love that math after you already know what problems it solves!

(PS if you're less of a "highly logico-intuitive" person and more "analytical rigorous thinker" instead, just ignore my last paragraph and focus on the math, but try to get some deep intuition of probability along the way)

CN7R

I'll try to do the coursera course on ML -- last time I tried I got swamped by schoolwork. Thanks for the suggestions.

The Coursera Machine Learning course just started (I assume you could still join). I just finished the second week (I'm trying to keep a week ahead due to the somewhat unpredictable nature of my schedule lately), and have been enjoying it so far.

The first couple weeks are all about univariate and multivariate linear regression (as well as an optional linear algebra refresher on matrix operations).

https://www.coursera.org/learn/machine-learning/

cr0sh

I second this course; I took it when it was put on in 2011 in association with Stanford, and called the "ML Class" - its success was the catalyst for the creation of Coursera.

I'll tell you how I started my journey:

I took the Stanford ML Class in 2011 taught by Andrew Ng; ultimately, Coursera was born from it, and you can still find that class in their offerings:

https://www.coursera.org/learn/machine-learning

On a similar note, Udacity sprung up from the AI Class that ran at the same time (taught by Peter Norvig and Sebastian Thrun); Udacity has since added the class to their lineup (though at the time, they had trouble doing this - and so spawned the CS373 course):

https://www.udacity.com/course/intro-to-artificial-intellige...

https://www.udacity.com/course/artificial-intelligence-for-r...

I took the CS373 course later in 2012 (I had started the AI Class, but had to drop out due to personal issues at the time).

Today I am currently taking Udacity's "Self-Driving Car Engineer" nanodegree program.

But it all started with the ML Class. Prior to that, I had played around with things on my own, but nothing really made a whole lot of sense for me, because I lacked some of the basic insights, which the ML Class course gave to me.

Primarily - and these are key (and if you don't have an idea about them, then you should study them first):

1. Machine learning uses a lot of tools based on and around probabilities and statistics.

2. Machine learning uses a good amount of linear algebra

3. Neural networks use a lot of matrix math (which is why they can be fast and scale - especially with GPUs and other multi-core systems)

4. If you want to go beyond the "black box" aspect of machine learning - brush up on your calculus (mainly derivatives).

That last one is what I am currently struggling with and working through; while the course I am taking currently isn't stressing this part, I want to know more about what is going on "under the hood" so to speak. Right now, we are neck deep into learning TensorFlow (with Python); TensorFlow actually makes things pretty simple to create neural networks, but having the understanding of how forward and back-prop works (because in the ML Class we had to implement this using Octave - we didn't use a library) has been extremely helpful.

Did I find the ML Class difficult? Yeah - I did. I hadn't touched linear algebra in 20+ years when I took the course, and I certainly hadn't any skills in probabilities (so, Kahn Academy and the like to the rescue). Even now, while things are a bit easier, I am still finding certain tasks and such challenging in this nanodegree course. But then, if you aren't challenged, you aren't learning.

Wazzymandias

Thank you for the comprehensive response! I have a lot to learn but it's exciting.

Learn Python stack: scipy, numpy, pandas, scikit-learn, jupyter, matplotlib/seaborn.

Learn machine learning tools: XGBoost, Scikit-learn, Keras, Vowpal Wabbit.

Do data science competitions: Kaggle, DrivenData, TopCoder, Numerai.

Take these courses: https://www.coursera.org/learn/machine-learning http://work.caltech.edu/telecourse.html

Work on soft skills: Business, management, visualization, reporting.

Do at least one real-life data science project: Open Data, Journalism, Pet project.

Contribute to community: Create wrappers, open issues/pull reqs, write tutorials, write about projects.

Read: FastML, /r/MachineLearning, Kaggle Forums, Arxiv Sanity Preserver.

Implement: Recent papers, older algorithms, winning solutions.

As a software engineer you have a major advantage for applied ML: You know how to code. AI is just Advanced Informatics. If you want to become a machine learning researcher... skip all this and start from scratch: a PhD. Else: Learn by doing. Only those who got burned by overfit, will know how to avoid it next time.

For a ML intro Coursera's machine learning course https://www.coursera.org/learn/machine-learning is great. I have not been through the entire course but for someone who has no background in it, its a good intro as the video themselves are solid.

Gain background knowledge first, it will make your life much easier. It will also make the difference between just running black box libraries and understanding what's happening. Make sure you're comfortable with linear algebra (matrix manipulation) and probability theory. You don't need advanced probability theory, but you should be comfortable with the notions of discrete and continuous random variables and probability distributions.

Khan Academy looks like a good beginning for linear algebra: https://www.khanacademy.org/math/linear-algebra

MIT 6.041SC seems like a good beginning for probability theory: https://www.youtube.com/playlist?list=PLUl4u3cNGP60A3XMwZ5se...

Then, for machine learning itself, pretty much everyone agrees that Andrew Ng's class on Coursera is a good introduction: https://www.coursera.org/learn/machine-learning

If you like books, "Pattern Recognition and Machine Learning" by Chris Bishop is an excellent reference of "traditional" machine learning (i.e., without deep learning).

"Machine Learning: a Probabilistic Perspective" book by Kevin Murphy is also an excellent (and heavy) book: https://www.cs.ubc.ca/~murphyk/MLbook/

This online book is a very good resource to gain intuitive and practical knowledge about neural networks and deep learning: http://neuralnetworksanddeeplearning.com/

Finally, I think it's very beneficial to spend time on probabilistic graphical models. Here is a good resource: https://www.coursera.org/learn/probabilistic-graphical-model...

Have fun!

Courses You MUST Take:

1. Machine Learning by Andrew Ng ( https://www.coursera.org/learn/machine-learning ) /// Class notes: ( http://holehouse.org/mlclass/index.html )

2. Yaser Abu-Mostafa’s Machine Learning course which focuses much more on theory than the Coursera class but it is still relevant for beginners.( https://work.caltech.edu/telecourse.html )

3. Neural Networks and Deep Learning (Recommended by Google Brain Team) ( http://neuralnetworksanddeeplearning.com/ )

4. Probabilistic Graphical Models ( https://www.coursera.org/learn/probabilistic-graphical-model... )

4. Computational Neuroscience ( https://www.coursera.org/learn/computational-neuroscience )

5. Statistical Machine Learning ( http://www.stat.cmu.edu/~larry/=sml/ )

If you want to learn AI: https://medium.com/open-intelligence/recommended-resources-f...

pedrosorio

If you want to get started with machine learning you MUST take computational neuroscience? I don't think so.

You can start with free coursera course https://www.coursera.org/learn/machine-learning/ , it starts 17 oct

and then continue with https://www.coursera.org/learn/neural-networks/

If you want to jump right in with "hello world" type TensorFlow (a tool for machine learning), see https://news.ycombinator.com/item?id=12465935 (how to fit a straight line using TensorFlow)

If you like to study/read: the famous Coursera Andrew Ng machine learning course: https://www.coursera.org/learn/machine-learning

If you just want course materials from UC Berkeley, here's their 101 course: https://news.ycombinator.com/item?id=11897766

If you want a web based intro to a "simpler" machine learning approach, "decision trees": https://news.ycombinator.com/item?id=12609822

Here's a list of top "deep learning" projects on Github and great HN commentary on some tips on getting started: https://news.ycombinator.com/item?id=12266623

If you just want a high level overview: https://medium.com/@ageitgey/machine-learning-is-fun-80ea3ec...

akhilcacharya

Regarding deep learning, what are some resources for learning strategies about improving network architectures?

I read all of these architectures in research papers, but I'd really love to learn how to start iterating on them for a particular domain.

sanderjd

What is a good "hello world" project for machine learning? That is, what problem can I solve or question can I answer with minimal ceremony, and ideally with multiple techniques / technologies so that I can compare them? Is it this house price estimation like in your last link, or is there something better than that?

tsm

The Iris data set [1] is very famous and a popular way to test out classification techniques. It's not "big data", but can be used to familiarize yourself with some basic data mining techniques.

[1] – https://en.wikipedia.org/wiki/Iris_flower_data_set

sgk284

Kaggle has a number of starter challenges. See https://www.kaggle.com/c/titanic for one related to predicting the survival of passengers on the Titanic.

dschiptsov

Lol. Predicting the survival of passengers on the Titanic is meaningless and misleading - there is literally no connection to reality, despite the framing of the task which suggests a certain connection. There is absolutely nothing that could be predicted. It is just a simulation of oversimplified model which describes nothing, but an oversimplified view of a historical event. It is as meaningless as the ant simulator written by Rich Hickey to demonstrate features of Clojure - it has that much connection to real ants.

edgyswingset

Huh? Why would a connection to reality be required to get started with machine learning?

dschiptsov

Because otherwise it should be called machine hallucinations?

The process of learning could be defined as a task of extraction of relevant information (knowledge) about reality (shared environment) not mere accumulation of a fancy nonsense or false beliefs.

BickNowstrom

So knowledge like: Did the passenger have kids on board? Was the passenger nobility? Was the passenger travelling first class? Where was the passenger located on the ship after boarding? And how do these factors influence survivability?

And reality like: The actual sinking of the Titanic?

If your model concludes that nobility, traveling first class, close to the exits, without family, has a higher chance of surviving, then this is fancy nonsense or a false belief?

You make a really strange case for your view.

dschiptsov

Correlations does not imply causation. There were many more relevant but "invisible" variables, which, probably, related to some genetic factors, like ability to sustain exposure to the cold water, ability to calm oneself down to avoid panic and self-control in general, strong survival instinct to literally fight the others, etc. The variables you have described, except the age of a passenger, are visible but irrelevant. And pure luck must have a way bigger weight and it is, obviously, related to the genetic favorable factors, age, health and fitness.

BickNowstrom

This challenge is not about causal inference. I do agree it is more of a toy dataset, to get started with the basics, and that there are a lot of other variables that go into survivability. But to say these variables, except for age, are irrelevant is mathematically unsound: You can show with cross-validation and test set performance that your model using these variables generalizes (around 0.80 ROC AUC). You can do statistical/information theoretical tests that show the majority of these variables is a significant signal for predicting the target.

In real life it is also very rare to have free pickings of the variables you want. Some variables have to substituted with available ones.

The Titanic story is to make things interesting for beginners. One could leave out all the semantics of this challenge, anonymize the variables and the target, and still use this dataset to learn about going from a table with variables to a target. In fact, doing so teaches you to leave your human bias at the door. Domain experts get beaten on Kaggle, because they think they need other variables, or that some variables (and their interactions) can't possibly work.

Let the data and evaluation metric do the talking.

taeric

How does this not violate [1]? That is, this seems specifically anti-statistical. The best you can come up with on this is a predictive model that you then have to test on new events. In this case, that would likely mean new crashes.

[1] https://en.wikipedia.org/wiki/Testing_hypotheses_suggested_b...

BickNowstrom

Because we are not doing hypothesis testing, we are doing classification on a toy dataset. Sure, one could treat this as a forecasting challenge, but then one would need another Titanic sinking in roughly the same context, with the same features... That demand is as unreasonable as calling this modeling knowledge competition meaningless.

And if you see classification as a form of hypothesis testing, then cross-validation is a valid way of testing if hypothesis holds on unseen data.

taeric

I think that is a rub. With the goal just being to find some variables that correlate together, it is a neat project. But, ultimately not indicative of a predictive classification. If only due to the fact that you do not have any independent samples to cross validate with. All samples being from the same crash.

This would be like sampling all coins from my pockets and thinking you could build a predictive model of year printed to value of coin. Probably could for the change I carry. Not a wise predictor, though.

None
BickNowstrom

You are right, but only in a very strict, not-fun, manner :). Even if we had more data on different boats sinking, the model would not be very useful: We don't go with the Titanic anymore and plotted all icebergs. Still, if a cruise ship were to go down, I'd place a bet on ranking younger women of nobility traveling first class higher for survivability than old men with family traveling third class, wise predictor or no.

This dataset is more in line with what you are looking for: https://www.kaggle.com/saurograndi/airplane-crashes-since-19...

taeric

Makes sense. And yes, I completely meant my points in a pedantic only manner. :)

YeGoblynQueenne

>> Domain experts get beaten on Kaggle, because they think they need other variables, or that some variables (and their interactions) can't possibly work.

That sounds a bit iffy. A domain expert should really know what they're talking about, or they're not a domain expert. If the real deal gets beaten on Kaggle it must mean that Kaggle is wrong, not the domain expert.

Not that domain experts are infallible, but if it's a systematic occurrence then the problem is with the data used on Kaggle, not with the knowledge of the experts.

I mean, the whole point of scientific training and research is to have domain experts who know their shit, know what I mean?

None
BickNowstrom

The people who win Kaggle competitions are consistently machine learning experts, not domain experts.

Notably: https://www.kaggle.com/c/MerckActivity

> Since our goal was to demonstrate the power of our models, we did no feature engineering and only minimal preprocessing. The only preprocessing we did was occasionally, for some models, to log-transform each individual input feature/covariate. Whenever possible, we prefer to learn features rather than engineer them. This preference probably gives us a disadvantage relative to other Kaggle competitors who have more practice doing effective feature engineering. In this case, however, it worked out well.

http://blog.kaggle.com/2012/11/01/deep-learning-how-i-did-it...

> Q: Do you have any prior experience or domain knowledge that helped you succeed in this competition? A: In fact, no. It was a very good opportunity to learn about image processing.

http://blog.kaggle.com/2016/09/15/draper-satellite-image-chr...

> Do you have any prior experience or domain knowledge that helped you succeed in this competition? I didn't have any knowledge about this domain. The topic is quite new and I couldn't find any papers related to this problem, most probably because there are not public datasets.

http://blog.kaggle.com/2015/09/16/icdm-winners-interview-3rd...

> Do you have any prior experience or domain knowledge that helped you succeed in this competition? M: I have worked in companies that sold items that looked like tubes, but nothing really relevant for the competition. J: Well, I have a basic understanding of what a tube is. L: Not a clue. G: No.

http://blog.kaggle.com/2015/09/22/caterpillar-winners-interv...

> We had no domain knowledge, so we could only go on the information provided by the organizers (well honestly that and Wikipedia). It turned out to be enough though. Robert says it cannot happen again, so we’re currently in the process of hiring a marine biologist ;).

http://blog.kaggle.com/2016/01/29/noaa-right-whale-recogniti...

> Through Kaggle and my current job as a research scientist I’ve learnt lots of interesting things about various application domains, but simultaneously I’ve regularly been surprised by how domain expertise often takes a backseat. If enough data is available, it seems that you actually need to know very little about a problem domain to build effective models, nowadays. Of course it still helps to exploit any prior knowledge about the data that you may have (I’ve done some work on taking advantage of rotational symmetry in convnets myself), but it’s not as crucial to getting decent results as it once was.

http://blog.kaggle.com/2016/08/29/from-kaggle-to-google-deep...

> Oh yes. Every time a new competition comes out, the experts say: "We've built a whole industry around this. We know the answers." And after a couple of weeks, they get blown out of the water.

http://www.slate.com/articles/health_and_science/new_scienti...

Competitions have been won without even looking at the data. Data scientists/machine learners are in the business of automating things -- so why should domain knowledge be any different?

Ok, sure it can help, but it is not necessary, and can even hamper your progress: You are searching for where you think the answer is -- thousands are searching everywhere and finding more than you, the expert, can.

None
dschiptsov

> You can show with cross-validation and test set performance that your model using these variables generalizes (around 0.80 ROC AUC).

It shows only that given set of variables (observable and inferred) could be used to build a model. The given data set is not descriptive, because it does not contain more relevant hidden variables, so any predictions or inferences based on this data set are nothing but a story, a myth made from statistics and data.

nl

It's very closely correlated to reality.

If you work through the data, you'll find things like women, children and first class passengers had a higher survival rate than men with lower class tickets[1].

This matches exactly the stories of what happened: Staff took first class passengers to the lifeboats first, then women and children. Then they ran out of lifeboats.

So the data shows correlation, and eye-witness accounts shows causation. That's close to the ideal combination: eyewitness accounts can be unreliable because we can't know how widespread they are, and correlation doesn't show causation.

But the combination of them both is pretty much the best case for studying something which can't be replicated.

[1] See examples like https://www.kaggle.com/omarelgabry/titanic/a-journey-through...

dschiptsov

This is only one of many aspects of that event. The data reflects that the efforts of organized evacuation in the beginning were efficient.

But any attempt to frame it as a "prediction", an accurate model of the event or adequate description of reality is just nonsense.

To call things by its proper names (precise use of the language) is the foundation of the scientific method. This is mere oversimplified, non-descriptive toy model of one aspect of historical event, made from of statistics of partially observable environment. A few inferred correlations reflects that there was not a total chaos, but some systematic activity. No doubt about it. But this is absolutely unscientific to say anything else about the toy model, let alone claim that any predictions based on it have any connection to reality.

nl

That is absolute nonsense.

There is clear correlation between gender and survival rates. Given the data, a decent prior would absolutely take that into account.

Yes, there are other factors. But the foundation of statistical models is simplification, and descriptive statistics are an important foundation of that.

In any case, it isn't exactly clear that there are magical hidden factors which predicted survival. It appears you maybe unfamiliar with the event, because basically those who got into a lifeboat survived, and those who didn't, didn't survive.

To quote Wikipedia:

Almost all those who jumped or fell into the water drowned within minutes due to the effects of hypothermia.... The disaster caused widespread outrage over the lack of lifeboats, lax regulations, and the unequal treatment of the three passenger classes during the evacuation..... The thoroughness of the muster was heavily dependent on the class of the passengers; the first-class stewards were in charge of only a few cabins, while those responsible for the second- and third-class passengers had to manage large numbers of people. The first-class stewards provided hands-on assistance, helping their charges to get dressed and bringing them out onto the deck. With far more people to deal with, the second- and third-class stewards mostly confined their efforts to throwing open doors and telling passengers to put on lifebelts and come up top. In third class, passengers were largely left to their own devices after being informed of the need to come on deck.

Even more tellingly:

The two officers interpreted the "women and children" evacuation order differently; Murdoch took it to mean women and children first, while Lightoller took it to mean women and children only. Lightoller lowered lifeboats with empty seats if there were no women and children waiting to board, while Murdoch allowed a limited number of men to board if all the nearby women and children had embarked

All this behavior matches exactly what the model tells us about the event.

I'd be very interested if you can point to something specific that is wrong about it.

All models are wrong, but some are useful.

taeric

I think you are making the point for him. If you look at the predictive models people make on these, they make a big deal about your sex and status being the main indicators of who survived. The reality is that the main causal indicator for survival was access to a lifeboat.

Now, it so happens that that correlated heavily with class. But, not as much as with sex. Though, there were some places where being male hurt your chances (as you point out in the one officer not allowing men on boats), by and large these were secondary and correlated with success, not predictors of it.

dschiptsov

> All models are wrong, but some are useful.

Exactly.

All predictions are wrong and make no sense for partially observable, multiple causation, mostly stochastic phenomena. It will never be the same.

nl

Except that this model was useful.

The Titanic's sister ship (the Brittanic) was torpedoed during WW1 and sunk. However, the lesson of the Titanic (too few lifeboats) had been learnt, and only 26 people died.

I don't know what point you are trying to make - yes, I agree that history never repeats, but lessons can be learnt from it, and they can be quantified and they can be useful.

https://www.ncbi.nlm.nih.gov/pmc/articles/PMC1291331/

dschiptsov

My point was in my first comment.

OK, tell me, please, what it is that you can predict? That some John Doe, having the first class ticket in a cabin next to the exit would survive the collision of the next Titanic with a new iceberg? That being a woman gives you better chances to secure a seat in a lifeboat? What is the meaning of the word "predict" here?

nl

Yes.

YeGoblynQueenne

>> The Titanic's sister ship (the Brittanic) was torpedoed during WW1 and sunk. However, the lesson of the Titanic (too few lifeboats) had been learnt, and only 26 people died.

This happened because they made a _statistical_ model of the Titanic disaster, and learned from it? Like, they actually crunched the numbers and plotted a few curves etc, and then said "aha, we need more boats"?

I kind of doubt it, and if it wasn't the case then you can't very well talk about a "model", in this context. It's more like they had a theory of what factor most heavily affected survival and acted on it. But I'd be really surprised to find statistics played any role in this.

nl
This happened because they made a _statistical_ model of the Titanic disaster, and learned from it?

No - statistics as the discipline that we think of today wasn't really around until the work of Gosset[1] and Fisher[2] which was done a few years after this.

I'm sure you noted that I was very careful with what I claimed: "the lesson of the Titanic (too few lifeboats) had been learnt".

These days we'd quantify the lesson with statistics. Then, they didn't have that tool.

Instead, we have testimony[3] relaying the same story: Just one question. Have you any notion as to which class the majority of passengers in your boat belonged? - (A.) I think they belonged mostly to the third or second. I could not recognise them when I saw them in the first class, and I should have known them if there were any prominent people. (Q.) Most of them were in the boat when you came along? - (A.) No. (Q.) You put them in? - (A.) No. Mr. Ismay tried to walk round and get a lot of women to come to our boat. He took them across to the starboard side then - our boat was standing - I stood by my boat a good ten minutes or a quarter of an hour. (Q.) At that time did the women display a disinclination to enter the boat? - (A.) Yes."

So yes, I agree - it was a theory, which our modern modelling tools can show matched well with what the statistics showed happened.

My whole point is that this is very useful, unlike the OP who dismissed it as useless.

[1] https://en.wikipedia.org/wiki/William_Sealy_Gosset

[2] https://en.wikipedia.org/wiki/Ronald_Fisher

[3] http://www.titanicinquiry.org/BOTInq/BOTInq33Header.php

BickNowstrom

You seem to be saying a whole lot without backing up your argument. If anything, your view is meaningless.

https://en.wikipedia.org/wiki/Ant_colony_optimization_algori...

https://en.wikipedia.org/wiki/Artificial_ants

dschiptsov

There is a very important notion from The Sciences of the Artificial book by Herbert A. Simon, that the visible (to an external observer) behavior of an ant (its tracks, if you wish) is not due to its supposed intelligence, but mostly due to the obstacles in the environment.

Most of the models mimic and simulate (very naively) that observable behavior, not its origin.

When people cite "the map is not the territory" they mean this. Simulation is not even an experiment. It is mere an animation of a model - a cartoon.

BickNowstrom

It is swarm intelligence: How does the system keep finding successful paths in a changing environment? Can we take inspiration from this behavior to create better optimization algorithms?

Simulation can be a very beneficial experiment. See for instance: https://papers.nips.cc/paper/5351-searching-for-higgs-boson-...

dschiptsov

Why not. I remember a paper which compares the behavior of foraging ants (they send more or less ants according to the rate of returned with food) to adjustment of the window size based on the data rate in TCP.

Simulations are not experiments. It is an animation of a formalized imagination, if you wish.

sanderjd

Nice, that is a great pointer.

kbaker

You could watch the 'Hello World' Machine Learning Recipes videos by Josh Gordon at Google. Very approachable!

The first lesson is a classifier to separate apples and oranges.

https://www.youtube.com/watch?v=cKxRvEZd3Mw&list=PLOU2XLYxms...

highd

I would be pretty hesitant to start talking about TensorFlow and Deep Learning before confirming, for example, at least a rudimentary understanding of Linear Algebra.

allenleein

Oh btw, I think it's too annoying to 'follow the pace' on Moocs so I recommend you can download all the courses right here:

http://academictorrents.com/browse.php?search=machine+learni...

gcr

I actually recommend jumping right into the excellent Scikit-learn tutorials, http://scikit-learn.org/stable/tutorial/

Unlike some of the other complicated tools, sklearn is just a "pip install" away and includes all sorts of examples of different problems. Classification? Regression? Clustering? Representation learning? Perceptual embedding? Odds are, some part of sklearn covers all of that.

geebee

The scikit-learn tutorials are great. Another nice thing about scikit-learn is that the api for a lot of different ML algorithms is very similar, almost identical.

This means that you can set up a train and and test set and swap in and out random forest, svm, naive bases, logistic regression, and various others.

Read about them one by one, try to understand the algorithms generally, test them out, see how they perform differently on different data sets.

It all depends on how you like to approach a new subject, but I think this is more fun and motivating than going straight into the mathematics behind the algorithms right away (which is more along the lines Andrew Ng's excellent course). I'd say once you're into it and using the algorithms, then dig deeper into the core mathematics, you'll have a better context for it.

wooter

having done ML R&D for a few years, they're docs are great for orienting newcomers to the field

kevindeasis

I don't know anything about tensor flow except the very tip of the iceberg.

Can you know nothing about ml, ai, data analysis, and stats then give tensor flow some input and it will give you some input and pretty much apply it to your app?

Or do you have to know these subjects before even starting tensor flow?

jotto

Yes, you can use TensorFlow directly and not know much, here are more examples https://github.com/aymericdamien/TensorFlow-Examples

It's OK to jump in and try it without having background information. See how far you get and start researching when you hit a wall or find sudden interest.

kevindeasis

Brilliant!

Thanks for the link

It really depends on how you learn.

Traditionally the best answer is to do Andrew Ng's Machine Learning course[1]. It's a great course, and you won't regret doing it, but it is kind of annoying that it is in a language (Matlab/Octave) you'll (hopefully) never use again.

A lot of people now recommend working through CS229[2]. I haven't looked at it depth, but I've been impressed with a lot of the class projects.

If you like books, then Statistical Learning in R [3] is generally well regarded.

If you like doing stuff, then Kaggle and SciKit-Learn will throw you in the deep-end. Just be aware you can't just program, though - you really do need to understand some theory. It's good to run into a problem, and then really, really understand the reasons behind what you are seeing.

[1] https://www.coursera.org/learn/machine-learning

[2] http://cs229.stanford.edu/

[3] http://www-bcf.usc.edu/~gareth/ISL/

ShaneOwens

Thank you.

madenine

If you want to do Andrew Ng's ML course, but want to do it in python: https://github.com/icrtiou/coursera-ML

So I've been feverishly researching both topics, and how to learn them. I've decided to take these 2 courses from Coursera (starting soon, in Oct 2016). Both are free, and for the ML course, one can pay after completing it and get a certificate (there's no certificate for the Bitcoin course).

https://www.coursera.org/learn/machine-learning

https://www.coursera.org/learn/cryptocurrency#

Hope you too will join these, and post updates on this thread right here.

Sep 01, 2016 · 5 points, 3 comments · submitted by kumaranvpl

I am a python programmer who is now interested in learning machine learning. I came across two courses. One is from Andre NG hosted in coursera https://www.coursera.org/learn/machine-learning and another one is Data Science Curriculum from Microsoft hosted in edx https://www.edx.org/microsoft-data-science-curriculum.. So which one is better for me to study?

boniface316

I am taking Microsoft's course at the moment. I find it as more statistics course and focused on data science. I cant comment anything on Andrew's course, but I heard it is pretty solid. I am beginner and have no programming experience, therefore I am starting with Microsoft's course to get some basic understanding. Hope this was useful to you.

brudgers

There's no rule that prevents a person from taking both.

Good luck.

sandwell

I completed Andrew Ng's Machine Learning course on Coursera over this summer and thoroughly recommend it. The course is free unless you pay for the optional certificate.

Andrew's course makes extensive use of GNU Octave which is also free (you can use Matlab), but the material is easily transferable to other environments.

Andrew spends a lot of time explaining how and why the algorithms work, so you are fully prepared when it comes to implementing them for the assignments, rather than just showing you how to call a method or use a wizard.

This course will help you understand the mathematical principles behind the ML techniques that are covered, which I found particularly helpful.

Do you know about Coursera Machine Learning Course:- https://www.coursera.org/learn/machine-learning

> Is there any way for those of us with average intelligence to contribute to tools like this?

The people doing this aren't magical geniuses; they've just put the time and work into the subject and have been able to get themselves into a position they can do this all day surrounded by others they can collaborate with.

As with most human endeavors, the trick is to just get started, and not get frustrated and give up when it turns out you don't know anything at first. Some people don't mind starting with a ton of abstract learning about the subject, others prefer trying to accomplish specific tasks, learning the theory along the way.

For your specific question, as with all software, there's likely a lot to be done that has little to do with the main task of the tool and is just the everyday tasks of ease of use, interoperation with other tools, testing, etc. If on the other hand you want to get into the scary world of AI, like many others I'd recommend the Coursera machine learning course as a great place to start[1]

[1] https://www.coursera.org/learn/machine-learning

BOBOTWINSTON

I completed that course awhile back. Definitely a really great course if you can keep up. It is quite difficult, and I was quite terrible at it.

I don't think I have any affinity for the topic, but at least now I can read/discuss the topic without being completely blind. There are also a lot of smaller components in the course that I found useful even not working directly in AI/ML. Just some general data modelling and linear algebra stuff was nice to pick up on the ride.

visarga

Some AI professors recommend first jumping into a ML framework such as scikit-learn or Keras, which are more approachable, playing with them to the point where a little practical intuition will develop, and only then follow up with theory. Works better in practice than loading up on courses and math at the beginning, and helps the student form practical interest in the field and be more emotionally invested. In other words, first, hack your way in, and only then open the books.

ChristianGeek

Good advice for life in general.

achr2

I think this is the exact reason most people tend to struggle with any type of learning. Even topics like math and science which require building block approaches can benefit from taking a high level view and refining where appropriate.

haraball

The course on coursera uses Octave for the exercises. This guy has rewritten all the exercises in Python: http://www.johnwittenauer.net/machine-learning-exercises-in-...

said

Thank you for the link that course!

bratsche

> The people doing this aren't magical geniuses

Says the person named 'magicalist'. :)

_audakel

double upvote

Thank you, I actually just found him on Coursera( https://www.coursera.org/learn/machine-learning ) before your reply. I will definitely check it out.

I don't think that I want to make the switch, just know what is what and dabble a little bit.

it's very good, but personally I'd start with the Andrew Ng and Hinton courses

https://www.coursera.org/learn/machine-learning https://www.coursera.org/learn/neural-networks

I think the Udacity course is best if you know principles of machine learning and want to apply them in a more professional toolchain and learn Tensorflow

None

One hypothesis is that there is a trend of non ML-familiar developers currently working on getting more grasp on ML. Such repositories provide something that e.g. web developers can take a look at, with reduced friction.

Disclaimer: I'm such a developer! (currently going through the last bits of https://www.coursera.org/learn/machine-learning ) - but I've noticed other around me recently.

Here is a list of top 16 machine learning books aimed at the data scientist (not what you asked but there is a short description with each book). These books are used by universities like Stanford, Caltech, MIT, Harvard, etc.

And just to make sure that you are aware of it, there are lots of opencourseware with lecture notes and videos.

Caltech/Yaser Abu-Mostafa book info + lecture video at https://work.caltech.edu/telecourse.html

Stanford/Andrew Ng for course info see http://cs229.stanford.edu/ for video lectures see https://www.coursera.org/learn/machine-learning

The article mentions https://www.coursera.org/learn/machine-learning

does anybody know:

- How much work is required by week?

- Pre-requisite?

- Programming language used?

Other feedbacks?

thibaut_barrere

I'm currently going through the course (at week 5 at the moment).

Work per week: can vary between 6 to 12 hours depending on the week and your background and willingness to dive into some demonstrations.

Pre-requisite: first, you definitely need to save some quality time otherwise you'll drop out (I heard the completion rate is around 10%). I feel that having a bit of matrix computations, algebra background helped. Some parts are easy, other parts are harder (but YMMV).

Programming language used: octave; while it's nice to work at that level of abstraction, I found the "feedback loop" very slow when you submit exercises, so in the end I used https://github.com/MOxUnit/MOxUnit with http://entrproject.org/ to have a faster feedback loop (anyone can email me at [email protected] to get more details). This is especially useful when dealing with vectorization of computations.

Overall I found that the course is great for me (coming from an ETL, programming background with some solid maths exp at some point), and I'm learning quite a bit; a good introduction with a pragmatic viewpoint.

zzh8829

I just finished the course last week. I really liked Andrew's teaching style and enjoyed it very much. The work load is light compare to on campus courses at my school. I strongly recommend anyone interested in ML/AI to take the course.

Delmania

There's no prerequisites, Andrew manages to make all the maths self contained. He uses MATLAB/Octave, and the assignments can take around 8 hours or so of work.

You can work through the Coursera variant of Andew Ng's course without a deep math background: https://www.coursera.org/learn/machine-learning

More in-depth videos of the course are on YouTube: https://www.youtube.com/playlist?list=PLA89DCFA6ADACE599

If you are interested in learning the basics of Machine Learning I really recommend Andrew Ng's course on Coursera[0]. It starts off very basic and requires almost no prior knowledge other than some linear algebra. It evolves to more advance topics like Neural Networks, Support Vector Machines, Recommender Systems, etc. It is amazing how much you can do after just a few weeks of lessons. It's a very practical course with real world examples and exercises each week. The focus is mostly on using and implementing machine learning algorithms and less so on how and why the math behind them works. (To me this is a negative, but I'm sure some people will appreciate that.)

[0] https://www.coursera.org/learn/machine-learning

It's part of the course URL when you're enrolled at the course home, e.g:

  https://class.coursera.org/algs4partI-010 -> algs4partI-010
  https://www.coursera.org/learn/machine-learning/home/welcome -> machine-learning
(see https://github.com/coursera-dl/coursera-dl/wiki )

The ML course has quite some time ago been made available as an untimed "always-on" course at

https://www.coursera.org/learn/machine-learning

joshvm

Are the quizzes etc free still? My impression from the post was that the new site has stripped access to the exercises unless you pay up.

LionessLover

I don't know about this course, in general you now have courses where the quizzes are no longer accessible unless you pay and courses where they still are.

I just started the Coursera Machine Learning course. I know that it's probably a bit under your skill level, but the second half of the class might give you some broad education about what's possible in the field of machine learning. https://www.coursera.org/learn/machine-learning/

mlennox

I started this course to learn the maths, technical terms, approaches and 'philosophy' of machine learning. I'd highly recommend it even with the stats knowledge you have, you'll still get a lot out of it. I wanted to be able to understand articles about deep learning and this course allowed me to do that.

I recommend watching the videos at a higher speed at least, and you can skip ahead if you are not doing the course to get a validated grade, although I suggest working through the whole choose.

civilian

Oh yeah, Ng talks pretty slow. 1.25 is a minimum cruising speed and I often go faster.

macromaniac

After taking Andrew Ngs course I highly recommend you take cs231n afterwards.

Assuming you know a little bit of calculus you'll be able to create and train fully connected networks, convolution networks, recurrent networks, and long short term memory networks using only numpy. You will feel very comfortable with deep learning after taking this class.

http://cs231n.stanford.edu/syllabus.html

The lecture videos for the course got taken down due to complaints, but you can recover them via google

lampington

+1 to that. I'm on week 4 and every week apart from the first one I've learned interesting stuff that wasn't covered in my undergrad CS course.

I believe that the best way to learn ML is by first learning to program the algorithms and then learning the math. This is the opposite to what people is used to do, but I think it's better. The reason is because programming ML is easy, but the math behind it is very complex. I would suggest to start with scikit tutorial http://scikit-learn.org/stable/tutorial/ and later with Ng course https://www.coursera.org/learn/machine-learning . Then a good book is Pattern Recognition and Machine Learning, from Bishop.

Helpful FYI: If you're interested in learning about Machine Learning (so you can use TensorFlow and Rescale, etc), I've found this to be an incredible resource: https://www.coursera.org/learn/machine-learning/

ganeshkrishnan

If you specifically want to learn about tensorflow then you can enrol for this course by Google https://www.udacity.com/course/deep-learning--ud730

To actually learn machine learning algorithms i found the coursera (stanford) course to be excellent. Minimal programming and math knowledge needed.

https://www.coursera.org/learn/machine-learning/home/info

josso

I also recommend Welch Labs’ Neural Network Demystified-series[0]. It is a combination of the Coursera course and the YouTube videos. It get’s into some of the math, while still keeping it basic.

[0]: https://www.youtube.com/watch?v=bxe2T-V8XRs&list=PLiaHhY2iBX...

The possibility of deep NLP suggest that there are tremendous opportunities for building a personal assistant. For Deep NLP, I would suggest course CS224D at Stanford on YouTube (going on now but also delivered last year: https://www.youtube.com/watch?v=kZteabVD8sU

For Deep NLP, you will need to be solid on linear algebra and machine learning. For introduction to machine learning, check out Andrew Ng at Coursera: https://www.coursera.org/learn/machine-learning and my favorite talks on Linear Algebra are the ones done by Gilbert Strang: http://ocw.mit.edu/courses/mathematics/18-06-linear-algebra-...

For web crawling, there are plenty of open source libraries. If you are not familiar with it, check out the Common Crawl: http://commoncrawl.org/ This is a great source of data to crawl.

If you focus solely on NLP and data from the Common Crawl (or even Wikipedia), then you will see where you stand as the smoke clears and you feel comfortable with the state of the art techniques.

Ignore all the naysayers. The good news is that it has never been easier to get started in deep NLP. Once you have the experience of training a model and seeing how well it works, you can decide on the next steps. Perhaps, you will find a niche that is not well-served that you can go after as a first step of a personal assistant.

Good luck.

If I didn't get this course[1], I wouldn't understand what you are talking about.

[1] - https://www.coursera.org/learn/machine-learning

Andrew Ng's Coursera course on Machine Learning:

https://www.coursera.org/learn/machine-learning

There's also this course on Neural Networks by Geoffrey Hinton:

https://www.coursera.org/course/neuralnets

If you do the Andrew Ng course, you'll have to learn/know Octave (or Matlab). Otherwise, Python is very heavily used in ML these days and you could do a lot worse than learning Python. R and Octave are both very useful as well. And, as you note, there is a lot of machine learning software available in the JVM world as well. Scala in particular seems to be gaining some ground in this world.

Mar 25, 2016 · 2 points, 0 comments · submitted by olalonde

If you haven't already, you should check out the first and second week of Andrew Ng's Coursera Course on Machine learning. He exclusively talks about gradient descent the first few weeks. https://www.coursera.org/learn/machine-learning

mindcrime

Second the motion. Ang really explains gradient descent very well in that course.

As far as the equations go, if you don't know multi-variable calculus, you might not be able to follow the actual derivations, but I don't think that's all that crucial, depending on what your goals are. Certainly you can apply this stuff without knowing the calculus behind it. And in the ang course, he gives you all the derivations you need to implement gradient descent for various purposes.

Anyway, here's my quick and dirty, way too high level overview of the whole calc business:

All you're really trying to do is optimize (minimize) a function. Given a point on the graph of that function, you need to know which direction to move in in order to get a smaller (more minimal) output. To do that, you calculate the slope at that point. Calculating the slope at a point on a curve is exactly what calculus does for you. If you were working with only one variable, the derivations would be trivial, but once you get into higher dimensional spaces and the need for partial derivatives, that's where the calculus gets a little trickier. But in concept, you're always just doing the same thing... calculating the slope so you know where to move, and by how much (the steeper the slope, the bigger the hop you make in a given iteration).

Mar 06, 2016 · godzillabrennus on Q&A: Andrew Ng

Andrew Ng has a machine learning course online if you are interested: https://www.coursera.org/learn/machine-learning

Gratsby

Probably one of the best online courses available. He's very engaging and makes some pretty tough concepts seem straightforward.

curuinor

I took the in-person course at stanford. I recall the first problem set in cs229 was about as hard as the entirety of the Coursera course combined...

icebraining

Well, everyone can judge by themselves, the actual CS229 lectures are also available online: https://www.youtube.com/view_play_list?p=A89DCFA6ADACE599

EDIT: And so are the problem sets: https://see.stanford.edu/Course/CS229

argonaut

There is nothing to indicate the Coursera class and CS 229 are the same. CS 229 is a grad-level machine learning class that assumes heavy math prerequisites; the syllabus is completely different.

The Coursera class is closest to CS 229a at Stanford.

icebraining

Fair enough, I just wanted to note that people can also watch the CS229 lectures online.

lazaroclapp

(Disclaimer: I have only seen part of the material, for both courses) This seems true in terms of difficulty, mostly because CS229 assumes a much stronger math background and provides more of the theory for a lot of the ML techniques being used. However, if you want to know the "technique space" of usual ML algorithms and when/how to apply them, the Coursera course seems to be 70-90% of the way there in terms of breadth of the material (with a bias towards the most commonly used methods, so perhaps 70% of the techniques, applicable to more than 90% of the use cases).

So, if you want to do ML in industry, applied to common problems, the Coursera course will get you there. If you want to become an ML researcher, the Coursera course will fall way short of that, while CS229 might be at least a first step (followed by CS229T/STATS231 [1]).

[1] Lecture notes online, too: https://web.stanford.edu/class/cs229t/

curuinor

It's notable that there are actually no enforced prerequisites for 229, besides basically being OK at math. Which meant that I knew an education major who sat down, tried to take it and sort of crashed and burned in the third week.

consz

Are there any enforced requirements at Stanford? I don't think I ever had any formal review of the classes I signed up for making sure I actually met the requirements -- there must've been at least a handful of classes I had signed up for that I didn't have the official prereqs for.

jwcrux

I've been taking this course recently. Due to time constraints, I haven't kept up with the rest of the course, but the content is phenomenal.

If you want to learn machine learning, check out the course.

Part of self-teaching may include taking formal online coursework voluntarily. For example I'm currently halfway through https://www.coursera.org/learn/machine-learning

Feb 29, 2016 · 3 points, 0 comments · submitted by e19293001

MOOCs.

I see Andrew Ng's class is being offered again for the first time in a few years ( https://www.coursera.org/learn/machine-learning ), but other great classes aren't, like LAFF http://www.ulaff.net/ , Thiel's startup class etc.

Seems like a travesty that these incredible classes are created by our best minds, but then aren't continuously offered. (the materials are available for self-study, but not the graded homework, support forums, TAs, certificates of accomplishment etc.)

Coursera, the prof, the university, have no incentive to keep it going. Philanthropists should really fund continuing development of the best-of-the-best MOOCs so students can keep learning, best practices can keep improving.

There is no good central discovery and reputation for MOOCs. There needs to be a place I can go and see that e.g. LAFF is the most popular / highest rated for intro to linear algebra, and here's how much work it represents.

There are universities who start online programs, but what we really need is an online 'degree' grantor who can say, OK, you've taken these online MOOCs from various institutions, I can tell from the fact that you logged in with your finger, your device's camera, metrics like typing style, word frequency for essays, etc. that you actually did the work, these courses are worth X number of points, here's a 'degree' or a few numbers describing the quantity and quality of your work in various disciplines at various places.

And then the best of the best should be able to tap funds to be continuously offered.

It seems more like an object for a non-profit startup (should be self-sustaining but doesn't seem like the sort of thing that should be in IPO candidate or revenue-maximizing, will turn into University of Phoenix)

Andrew Ng's popular Machine Learning course goes over most of the topics in the slides: https://www.coursera.org/learn/machine-learning

Linear and logistic regression, gradient descent, clustering, support vector machines, bias and variance (one of the slides was taken from the course), neural networks, etc...

lectrick

You know... I believe I started this class once and didn't finish it due to time constraints. I think it's time to try again...

I signed up for this last night. Really looking forward to it.

https://www.coursera.org/learn/machine-learning

unsignedint

His machine learning course is amazing! I really enjoy lectures and I feel like I'm learning a lot. So far I have better understanding of some statistical concept way better than I ever have in the past. (even only third week into the course!)

Basic question(s) as I am not a data scientist but have just taken a machine learning course ( https://www.coursera.org/learn/machine-learning/ )

Won't trying different combinations of hyper parameters/lambda (over a small range) help us arrive better instead of manually tuning it? Or is that what the author meant by manual tuning?

dasboth

Depends what you're tuning. If it's something like the number of trees in a random forest, definitely do that automatically. If it's the number of clusters in a clustering problem, that's where you'd be asking an expert something like "how many distinct groups of customers do you think we should try to split them into?" and go from there. But even in that scenario, the expert's opinion might just be your starting point for automatic tuning.

dswalter

Author here: whether the hyperparameter tuning is done automatically or manually is not as important for what I was trying to say here. But yes, any of {grid-search, random-search, bayesian-optimization, etc} is likely to be more effective than manually tuning to squeeze out those last ounces of performance.

rjbwork

I'm not a data scientist per se, but I've been working with some (boss and co-worker) to get some stuff operationalized and into production, so I've been responsible for generating inputs, helping analyze/visualize outputs, and building linear optimization models, so I've got some very basic experience.

As I understand it, one of the pitfalls of automatic tuning is that it becomes hard to account for seasonality and you will likely end up with useless parameters - for instance a customer ID is rarely a good parameter to optimize on, even as a categorical variable, except in very specific cases. It is probably a proxy variable for one or more other ones that you need to tease out of the rest of the data.

(warning, potentially me talking nonsense coming up) Automatic tuning is no substitute for a talented analyst who knows the data well and understands the goal. But if you've got hundreds to millions of parameters, you may not have another choice really.

Links,

Andrew Ng's ML Class - https://www.coursera.org/learn/machine-learning

Daphne Koller's PGM Class - https://www.coursera.org/course/pgm

Dan Jurafsky's and Christopher Manning's NLP Class - https://www.coursera.org/course/nlp

Nov 20, 2015 · 3 points, 0 comments · submitted by unsignedint

To install http://tensorflow.org/get_started/os_setup.md

They have some general walkthrough tutorials http://tensorflow.org/tutorials/mnist/beginners/index.md

and a nice overview on machine learning. you will need to setup an account. It is free and very informative. https://www.coursera.org/learn/machine-learning/home/week/1

hundreds of resources for machine learning can be found here http://www.machinelearningsalon.org/assets/the-machine-learn...

TIME SENSITIVE note --

The guide's primary recommended course is Andrew Ng's Machine Learning course. Current session started November 2nd, you must enroll by the 7th. Another session is starting November 30th.

https://www.coursera.org/learn/machine-learning

Cheers!

argonaut

It's not time-sensitive at all. After the course has ended, you can still enter the course and do everything; you just won't get the certificate (which doesn't matter).

hangtwenty

Good point, people should know that.

What I had in mind is that some people get a lot from the the community features on Coursera, more active while a class is in session. So that's all I meant.

metamet

What exactly is the appeal of the certificate? Do they hold any weight?

cgag

Precomitting to finish the course for the certificate is a good motivational hack

I'm about to start the assignment for the 5th week of Machine Learning on Coursera https://www.coursera.org/learn/machine-learning

pyvek

That's awesome! I hope to go through that course soon. I just finished 2nd week assignments of Algorithms- Design and Analysis on Coursera - https://www.coursera.org/course/algo

A new session of Andrew Ng's Machine Learning class (a version of his Stanford class) starts at Coursera on Monday. It's a quite manageable introduction to the field, with some hands-on programming involved. There's just the right mix of math and theory in there, with some refresher material for some of the math.

It's as good a place to start as any, and the benefit of a scheduled class is that you'll have a community doing the same work at the same time to help you out.

https://www.coursera.org/learn/machine-learning/

Thanks for this. Incidentally, the second paper you link to is co-auhored, among others, by Daphne Koller, who teaches [this great course on probabilistic graphical models]( https://www.coursera.org/course/pgm ) and Andrew Ng, who teaches [the best-known intro MOOC in machine learning]( https://www.coursera.org/learn/machine-learning/home/welcome ).

I am learning the course of Machine Learning [1] at Coursera. I didn't know he co-founded Coursera. Can't believe this awesome course is free. Andrew Ng is really a good teacher. Thank you Andrew Ng and Coursera.

[1] https://www.coursera.org/learn/machine-learning/

I'm taking his machine learning course [1] and it's absolutely fantastic. It's one of the mondern wonders of the internet that you can have such a tutor for free. Plus it's fascinating to see what people go on to do after the course [2].

[1]: https://www.coursera.org/learn/machine-learning/

[2]: https://syrah.co/joshdickson40/5604e5e10fc1786b0152a51a

copperx

I've heard that the course is diluted compared to the brick-and-mortar school one, is this true?

For those that don't know-- although Octave is interpreted, the interpreted part acts as an interface to highly optimized vector operations under the covers. Signal processing and a lot of other tasks come down to manipulating large arrays of data using similar operations across the entire array. Although Octave is interpreted, these kinds of operations execute very nicely inside Octave. Octave also lets you write those kinds of operations at a very high level, like a = b * c, and under the covers it's doing millions of operations.

If you'd like to give Octave a try and learn about Machine Learning at the same time, try this excellent and fun free course! https://www.coursera.org/learn/machine-learning

One of the later lessons in that class is a mind-blowing signal processing thing. In that exercise, they show how you can put multiple mics in a room, with multiple people talking over each other, and the computer separates out the different sources of sounds, and outputs a clean wav file for each sound source with the sounds isolated from each other. It blew my mind, and was implemented in Octave. And they teach you exactly how to do it yourself.

All the above concepts can, of course, be done in C++ or NumPy or whatever, they just use Octave to teach the course.

brudgers

If that's not cool enough, GNU Octave is available for Android devices.

https://play.google.com/store/apps/details?id=com.gnuroot.oc...

drudru11

I don't believe that exercise is part of the course anymore.

swsieber

That's really sad. I was hoping to something similar to that. Do you happen to have any of those materials around?

unoti

Here are a couple of resources to get you started. Looking at these might give you ideas of what else to search for.

http://www.technologyreview.com/view/537101/deep-learning-ma...

http://m.youtube.com/watch?v=VO0d6EuGpO0 Signal Processing for Machine Learning - YouTube (even though this is for marlab, octave is designed to be compatible)

The group is held by Prof. Ng which has a ML course on coursera https://www.coursera.org/learn/machine-learning - lecture notes of the in class course are here http://cs229.stanford.edu/materials.html (but without the lecture it may be.. without the lecture:))

aswanson

Ng is one of those great profs that combine the rare gifts of being able to teach as well as be a leader in the field at the same time. I've had profs that are far less accomplished and far more arrogant. There's probably a correlation between those features, now that I think about it.

DoggettCK

Definitely worth it. I had to drop out around week 5 due to a lack of time, but just started a new job that'll take me back to 40-hour weeks (down from 80-100), so I'll give it another shot next time they run the course.

haraball

The latest session started today, from 5 Oct to 27 Dec.

For anyone interested, I have been really interested in deep learning and have been using the following resources:

For image processing (CNN) https://cs231n.github.io/

For natural language processing (RNN) http://cs224d.stanford.edu/syllabus.html

I also found the following coursera helpful https://www.coursera.org/course/neuralnets https://www.coursera.org/learn/machine-learning

aswanson

Thank you, a lot of the papers in DL/Sparse Coding aren't as clear as the sources you shared.

JPKab

Thanks. I really appreciate it when folks like you on HN post learning materials in the comments.

theviajerock

Thanks, i will see it, seems very interesting.

Omnipresent

These are great resources. There is also a ML class offered by Georgia Tech at Udacity under the OMSCS program. https://www.udacity.com/wiki/ml/GT

wodenokoto

Does anyone know how to access past courses on coursera if you didn't sign up in a timely manner?

aethertap

It depends on the course, some courses are kept available and others are shut down after the action is over. I think the choice is left up to the instructors. I started downloading all of the videos when I sign up for a course for this reason actually, because I tend to go through them too slowly to finish with the main group.

lopuhin

I think you just sign in and click on a big green button "Go to Course" on the right - at least it worked for me with neuralnets course by Hinton, which is really great.

Here might be a good place to start learning: https://www.coursera.org/learn/machine-learning/

Much of what research is, is understanding what you're working on in the first place. Getting a solid foundation is a must, or you risk being very lost for some time, and will be fundamentally limited in what you can contribute.

gamekathu

learning from that awesome course. on week 6 now :)

I think you are talking about Andrew Ng's course.

I completed it and can't recommend it more highly. It is a really excellent, dense course and Ng is a very good teacher.

https://www.coursera.org/learn/machine-learning

joshz

Geoffrey Hinton's archived course is all about neural nets, I think you can enroll in the archived version, no code, just theory.

https://www.coursera.org/course/neuralnets

artmageddon

I've completed the course as well - have you used any of the knowledge from it on anything in particular after you completed the course?

zardo

I'm taking the Coursera course right now. The course page at Stanford has a lot of student projects. The breadth of applications is pretty huge, definitely worth a check if you're looking for an idea.

http://cs229.stanford.edu

Sep 09, 2015 · pigs on Free Data Science Books

This course is great: https://www.coursera.org/learn/machine-learning It's all done in GNU Octave, which is mostly compatible with MATLAB.

If this feels like jumping in the deep end, I highly recommend Stanford's online course on this subject:

http://coursera.org/learn/machine-learning/

vonnik

I agree. Andrew Ng's course is a great place to start with ML. We've got a list of great online ML/DL courses here: http://deeplearning4j.org/deeplearningpapers.html

Sep 06, 2015 · 2 points, 0 comments · submitted by Michie

I recommend this course for a general overview on machine learning: https://www.coursera.org/learn/machine-learning

There are also some good resources in edX...

SEEKING WORK – REMOTE

I've worked for 4 startups and on several projects doing web development. I was also Community TA for the Startup Engineering [1] class and for the Machine Learning [2] class at Coursera (Stanford).

I work mostly as a backend engineer and occasionally fixing and writing some Javascript on the frontend (jQuery, Backbone.js). I also can oversee backend development by doing project management and issues and tasks coordination.

I use a methodology for each project like setting up a deployment process/git branching model (development, staging, production), etc., and I'm very pragmatic about researching and using proven solutions (ie: code) to each problem. I code in Python: Django, Tornado, GAE and node.js: Express. Git for source control (Github/Bitbucket). Linux, vim.

Drop me a line: [email protected]

[1] https://www.coursera.org/course/startup

[2] https://www.coursera.org/learn/machine-learning/

I really have to take exception to this (characterizing MOOCs as some sort of useful-only-for-signalling high-tech "vocational training" for the privileged).

I've been working through Andrew Ng's Machine learning class ( https://www.coursera.org/learn/machine-learning/home/welcome ) on Coursera, and I think it's wonderful. It begins a bit slow-paced, and I definitely supplement the lectures with readings and the class notes for CS 229 ( http://cs229.stanford.edu/materials.html ) that broadly match the content of the online course, but I absolutely love the course.

The lectures are well-paced and have 'in-line' quizzes to test your understanding as you go. The problem sets are easy to do at any time, with optional components and instructions that let you understand the material better if you want to deep dive. The course itself is available to start whenever you choose , which means barrier for entry is very low.

MOOCs may not be everything that they first promised, but they definitely win in terms of the sheer accessibility of content and the flexibility of the format. I would not be learning machine learning right now if the only available format was dead-tree or (worse) putting together information piecemeal from blog posts.

maldusiecle

I don't think this is much of a response to the piece's argument. Yes, high-level tech classes are a use-case where MOOCs work. But MOOC companies have repeatedly presented them as useful for intro-level and non-technical courses--and they aren't.

It's great if MOOCs help you with high-level tech stuff. But that's not what most students want or need. Someone in a low-level math or composition class is likely to need far more interaction with their instructor (which is what I take the article to be arguing).

I have a folder to bookmark machine learning resources.

Here's another good one from the creator of coursera (Stanford grad I think)

https://www.coursera.org/learn/machine-learning/home/info?ut...

crazypyro

Make sure you have http://www.iro.umontreal.ca/~bengioy/dlbook/

Its Bengio's (very well known deep learning researcher) upcoming textbook. I would highly recommend to anyone interested in deep learning/neural net subset of machine learning.

tuckermi

This course is taught by Andrew Ng. Professor Ng is not only one of the founders of Coursera, but is also a prof at Stanford and Chief Scientist at Baidu. Machine Learning (and Deep Learning in particular) is his specialty, so he is a pretty good resource on the topic :)

napolesmarble

Great I'll give it priority then in my bookmark!

Maybe have a look at this also: https://www.coursera.org/learn/machine-learning/

[1] -- First, you need to learn machine learning(ML) basics. Andrew Ng's course on Coursera is a good start: https://www.coursera.org/learn/machine-learning/home/info

It doesn't teach you ML with Python but it is extremely important to learn the ML concept without any programming language in mind. In addition to that course, any Google search will help you a lot. There are a lot of good explanations of ML concepts on various websites. If you don't understand how algorithms work, you will end up with copying and pasting example codes without knowing what you're doing. You need to imagine what you want to do in your head before you type any letter.

[2] -- Once you have the initial introduction, you can use Python to implement ML concepts. Fortunately, Python has a very easy to learn ML package: Scikit-learn ( http://scikit-learn.org ). It's free and is used by various companies such as Spotify and Evernote. Scikit-learn has a great documentation and many examples that will make the whole learning process exciting.

[3] -- After you feel comfortable with ML in Python, if you don't have datasets of your own, you can find a lot of datasets on UC Irvine's machine learning repository: http://archive.ics.uci.edu/ml/

The more you practice, the more comfortable you feel with playing with data. To cover a ML technique very well, play with every single parameter of the scikit-learn functions of that technique by using the same dataset. Also, always try to include visualization of the data (scikit-learn has examples with matplotlib to learn from how to do it) so you can actually see the changes of the implementation when parameters of the function change. This will make everything a lot easier.

Good luck!

Machine Learning is a sub-field of computer science and an area of intense current research. It has nothing to do with Python (a programming language) except that some machine learning algorithms might be implemented in Python.

You might find Andrew Ng's Stanford Coursera course a good place to start. https://www.coursera.org/learn/machine-learning/home/info .

craigching

"Introdocution to Statistical Learning" by Trevor Hastie et al. [1] They have a free online class through Stanford [2] Sign in to their system and you can take the archived version for free.

ISL is an excellent, free book, introducing you to ML, you can go deeper, but, to me this is where I wish I'd started. I am taking the Data Science track at Coursera (on Practical Machine Learning now) and I am kicking myself that I didn't start with ISL instead.

Now, I know you specifically asked about Python, but the concepts are bigger than the implementation. All of these techniques are available in Python's ML stack, scikit-learn, NumPy, pandas, etc. I don't know of the equivalent of ISL for Python, but if you learn the concepts and you're a programmer of any worth, you will be able to move from R to Python. Maybe take/read ISL, but do the labs in Python, that might be a fun way to go.

Lastly, to go along with ISL, "Elements of Statistical Learning" also by Hastie et al is available for free to dive deeper [3]

[1] -- http://www-bcf.usc.edu/~gareth/ISL/

[2] -- https://lagunita.stanford.edu/courses/HumanitiesandScience/S...

[3] -- http://statweb.stanford.edu/~tibs/ElemStatLearn/

cschmidt

I also think this is one of the best entry level books, and the Stanford course looks good. This is what I recommend to people. In some ways, R is a very good match for this material, and you could move to python later.

cowpig

Well, you could certainly argue that python has the best machine learning libraries. So it's at worst a relevant programming language to the field.

edit: +1 to Andrew Ng's Coursera course though!

sfsylvester

Was there a reason Ng decided to teach the course in Octave rather than Python? The only time I've ever used .m files was during the course.

I appreciated the challenge of thinking from an array based language, but I felt it held me back from directly comparing my solutions to the tutorials to external sources. (Unless that even in of itself was the reason).

I started with Andrew Ng's Machine Learning course on Coursera [1]. He presents the entire subject, including NNs and prerequisite theory, in a non-intimidating, intuitive fashion. There are simple coding exercises, such as digit recognition using NNs.

Once you're familiar with the basics, you can go deeper into the subject with the books suggested here.

[1]: https://www.coursera.org/learn/machine-learning

I'm doing the Coursera machine learning course. You guys can try it too : https://www.coursera.org/learn/machine-learning . It's very relevant to this topic. Good explanation is presented here too.

There is a nice book by my profs (Y. Bengio, A. Courville) and a former student of the lab (I. Goodfellow) here: http://www.iro.umontreal.ca/~bengioy/DLbook/ The chapter on RNNs is pretty enlightening. You probably want to start with something the goes through feedforward networks, convolutional, etc. first though.

Andrew Ng's Coursera course does a super basic NN in MATLAB which might be good to shake the rust off [1]. Hugo Larochelle's youtube course [2], Geoff Hinton's Coursera course [3], and Nando's youtube Deep Learning course [4] are all very good. There are also some great lectures from Aaron Courville from the Representation Learning class that just finished here at UdeM [5]

If you want to do this for real (not self teaching RNN backprop on toy examples) tool-wise you generally go with either Theano (my preference) or Torch - implementing the backwards path for these (and verifying gradients are correct) is not pretty.

Theano does it almost for free, and Torch can do it at the module level. Either way you definitely want one of the higher order tools!

[1] https://www.coursera.org/learn/machine-learning

[2] https://www.youtube.com/watch?v=SGZ6BttHMPw&list=PL6Xpj9I5qX...

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

[4] https://www.youtube.com/watch?v=PlhFWT7vAEw

[5] https://ift6266h15.wordpress.com/

thanatropism

Thanks for the references!

Mar 04, 2015 · 1 points, 0 comments · submitted by gchucky

Machine learning seems like something that's become really critical to know; unfortunately it wasn't offered at my undergrad university. Can anyone recommend some books or online courses that are good to start with?

So far I've found these, but I have no idea if they're good or not:

* https://www.coursera.org/learn/machine-learning

* https://work.caltech.edu/lectures.html

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
HN Academy is an independent project and is not operated by Y Combinator, Coursera, edX, or any of the universities and other institutions providing courses.
~ [email protected]
;laksdfhjdhksalkfj more things
yahnd.com ~ Privacy Policy ~