Friday, May 6, 2016

Interesting article about the general knowledge to be aware when it comes to AI field.

How Do You Go Deep On Machine Learning?

What would be your advice to a software engineer who wants to learn machine learning? originally appeared on Quora – the knowledge sharing network where compelling questions are answered by people with unique insights.

Answer by Alex Smola, Professor, Carnegie Mellon University and Chief Scientist, 1-Page, on Quora.

This depends a lot on the background of the software engineer. And it depends on which part of machine learning you want to master. So, for the sake of concreteness, let’s assume that we’re talking about a junior engineer who has four years of university and a year or two in industry. And let’s assume that this is someone who wants to work on computational advertising, natural language processing, image analysis, social networks, search, and ranking. Let’s start with the requirements for doing machine learning (disclaimer to my academic colleagues, this list is very incomplete, apologies in advance if your papers aren’t included).

Linear algebra
A lot of machine learning, statistics and optimization needs this. And this is incidentally why GPUs are so much better than CPUs for doing deep learning. You need to have at least a basic proficiency in the following

Scalars, vectors, matrices, tensors. Think of them as zero, one, two, three and higher-dimensional objects that you can compose and use to transform another. A bit like Lego. They provide the basic data transformations.
Eigenvectors, norms, matrix approximations, decompositions. This is essentially all about getting comfortable with the things linear algebra objects do. If you want to analyze how a matrix works (e.g. to check why your gradients are vanishing in a recurrent neural network or why your controller is diverging in a reinforcement learning algorithm), you need to be able to understand by how much things can grow or shrink when applying matrices and vectors to it. Matrix approximations such as low rank or then Cholesky factorization help a lot when trying to get good performance and stability out of the code...

Source:
http://www.forbes.com/forbes/welcome/

No comments:

Post a Comment