Ask HN: Getting started with AI today?

16 points by jason_slack ↗ HN
I have a growing interest in AI. There are lots of videos to watch. I can do this.

But what libraries are available to learn from? I'm on OS X. OpenAI.com seems to be more in planning than implementation, currently.

Companies like Apple, Facebook, etc are using AI more and more, what are they using?

Self-driving cars (and even tractors) are using AI this must be in house developed. GeoHot developed a slef driving car, literally in his garage.

There must be libraries to help get started for those wanting to learn and not write from scratch.

10 comments

[ 2.8 ms ] story [ 27.8 ms ] thread
Of course there is (even plenny):

Caffe (Deep learning framework by berkeley) / C++ mainly

Theano / Python

Tensorflow / More Python fully support, but also supports C++

NLTK Natural language processing Toolkit / Python

scikit-learn / Python

Torch / Different interfaces

CNTK / C++

Opencv / C++ Python

I haven't covered them all, but please at the bottom of this list I am maintaining there is everything you need to know to get started

https://github.com/Kiloreux/awesome-robotics#related-awesome...

wow, great list. I have been working with openCV.

I see an understanding of the differences between machine learning vs computer vision vs AI, vs deep learning, vs reinforcement learning is my next step.

OpenCV has APIs to other languages as well such as Java
May not be hot tech like ML, but traditional symbolic AI is still pretty useful in stuff like Natural language processing. Plus, it's a great way to learn functional programming too.

Book rec: Computation Semantics with Functional Programming. It goes through the whole gamut of formal languages, lambda calculus, propositional logic, predicate logic, logical inference engines, nl semantics etc. It uses Haskell to build concrete examples for each section, and contains a concise tutorial on the language too. Very self-contained. No prerequisites required.

If looking for job opportunities, in addition to tech think of a field / industry or two you like and focus on their business model for your AI applications. Also make sure you understand when AI and machine learning are actually useful instead of merely silly: not every correlation is useful. Many times, nothing meaningful comes from them, however big your data sample is. Machine learning "emergency" is not going to replace the scientific method.
Recently I have bought the book "Deep Learning with Python"[1], and I can't recommend it enough. Very gentle introduction into deep learning, through creating several practical projects. If you know the basics of ML - you should get it, it's amazing.

To learn the basics of ML, you can check out the awesome tuts+ course[2].

Also I wrote an article [3] with the collection of the best free resources, I think you'll find it useful.

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

[2] http://code.tutsplus.com/courses/machine-learning-distilled

[3] https://medium.com/@rayalez/list-of-the-best-resources-to-le...

This first book doesn't seem great.

> For example, a common response to the question “how do I get started in deep learning” might be: > Develop a strong grounding in statistics, probability, linear algebra, multivariate statistics and calculus. > Develop a deep knowledge of modern machine learning algorithms and techniques. > Study and become one with the mathematical theory of each deep learning algorithm and a bunch of related techniques for using them. > Oh and if there is time find a library and start applying deep learning to your problem. > It could take a decade or more to follow this advice and that would be a decade delay that you cannot afford.

Those topics are deeply important if you want to be anything more than a coder monkey, and with a decent undergrad education under one's belt (STEM-related) and half a year of dedicated part-time study, they could get up to speed in many - if not all - of those topics.

But I guess whatever sells the easiest, a la "Get Rich (Smart) Quick".

I would recommend a first-principles approach, if you're really interested in the field, building a career around it, and not just jumping on something because it's "hot".

To that end, start with Convex Optimization [1]. You'll develop an incredibly versatile - but not esoteric - mathematical background. You'll link the mathematics to solving real engineering problems fairly quickly. You'll tackle the basics of machine learning as well.

After this, you'll have a pretty strong background to get into more traditional machine learning and deep learning. Regarding the former, Andrew Ng's notes are pretty solid [2], and for DL, Karpathy's Stanford course is great [3].

Self-studying all this material could take up to a year (part time, assuming you do it while having a job), but I don't know of a better way to gain the skills and get into the field. This approach balances your learning of fundamentals, engineering applications, real software, numerical computing, and the more fun "new" stuff.

Hope it works out well for someone else.

[1] - http://stanford.edu/class/ee364a/ Great video lectures available too.

[2] - http://cs229.stanford.edu/materials.html Also has great video lectures on Youtube.

[3] - http://cs231n.stanford.edu/index.html Ditto on the lecture vids.

This is fantastic. Yes, principles is what I care about most at this point.