4
$\begingroup$

I've the following somewhat unusual background and I've managed (probably by luck) to get an industry job of a computer vision researcher using deep learning.

My background: I've a PhD in pure math, and have the following machine learning experience: linear and logistic regressions, support vector machines (SVM), linear and quadratic discriminant analyses (LDA/QDA), decision trees, PCA. I'm familiar with the mathematical theory of all the above, and implemented the LDA/QDA, SVM, PCA in matlab, where I'm proficient in.

However, my experience with Python and deep learning are very limited to zero. I don't know scikit learn, only somewhat familiar with NumPy arrays, but still have problems with the basics like concatenation with empty arrays. I don't know for examples the data structures like classes or lists in Python-just to give you an idea. I know what a neural network is, but don't know anything else, e.g. backpropagation or autoencoder. Hence I don't know the theory of deep learning as well.

Time constraint: So I'm in a situation where I'll have to gain some hands on experience in both Python as well as deep learning, possibly in 2 months (the company has a 4 months trial period and use only Python, but they'll get a sense of my learning in 2 months, hence I've to learn fast).

Question: Given my expertise and time constraints, could you mention a road map (if possible) so that I can get a fast introduction to deep learning and its Python libraries (e.g. Tensor Flow or Keras etc.)? I know there're tons of resources out there, but not all of them can be learnt within a short time span.

Thanks so much in advance!!!

$\endgroup$
4
$\begingroup$

Stanfords CS231n has a great python+numpy tutorial. http://cs231n.github.io/python-numpy-tutorial/

As for Neural Networks and Keras + Tensorflow, I can recommend the Deep Learning specialization on Coursera. It is free for one week. If you do not want the certificates you can download all videos and stop.

If you want the certficates you can enroll in all courses simultaneously and finish them faster than advertised. They assume 3-6h per week for 16 weeks. If you have 6h per day, it is possible to go through a weeks content per day. Andrew Ng speaks clearly and the videos are understandable at 1.5x-2x speed.

As for the roadmap, i would suggest to

  • start with python + numpy until you have a basic understanding of array slicing and read up on unknown commands when you encounter them.
  • start a DL course of your choice but do not skip classes. That is I think it is important to know the basics even if you will only use high level frameworks later on.
$\endgroup$
2
$\begingroup$

Giving links some good tutorial which will help you understand concepts of deep learning and give you enough background to be able to implement simple models for your own problems.

https://in.udacity.com/course/deep-learning--ud730
It's approx. duration is three months but with a little more effort you should be able to finish it in two.
Another one is Andrew Ng course on Coursera. You should really check it out.
Quick intro to Deep Learning: https://codelabs.developers.google.com/codelabs/cloud-tensorflow-mnist/

$\endgroup$
2
$\begingroup$

Okay, first I would tell you that deep learning is very easy as compared conventional machine learning so you don't have to panic with your 2-month deadline provided you have a thorough understanding of machine learning algorithms that you have mentioned above.

Now here is a course by Andrew NG that is free if you would audit it. Once you open this course just go through it you don't' even have to do the assignments just understand the concept which is very easy to grasp.

After you have gone through the course. Setup python environment for windows use this. For linux use this.

After that search for keras tutorials from kerasGitHubb page which can get you going.

$\endgroup$
2
$\begingroup$

If you are looking for a nice solid tutorial for Deep Learning in the domain of NLP (Natural Language Processing), then Robert Gutherie's notebook would be a great start.

It teaches you how to use vectors and how does multi-dimensional vectors look like and how to deal with them. He uses the deep-learning library of Facebook, Pytorch to explain the concepts. This library is more pythonic and less verbose than tf, so it is easier to follow. (personal opinion though).

After that, you can take up any library like gensim, spacy or Fasttext and put your vectors to work there.

A nice follow-up, also would be to go through Pytorch's Deep Learning tutorials. They are very nicely written and often very intuitive and the code is very easy to read (thanks to Python and pythocicity of Pytorch :D).

$\endgroup$
  • $\begingroup$ But it's outdated now.... It's a copy and paste from the docs itself, so referring the docs will be better... $\endgroup$ – Aditya Apr 4 '18 at 9:53
2
$\begingroup$

This would actually be more suitable as a comment, but I am lacking the reputation to do so.

Given your background, I recommend this page

https://www.python-course.eu/python3_course.php

It's a good introduction to Python and it also contains a part about NumPy (and I would highly recommend to get more familiar with those before doing the ML part). I would not recommend the part about machine learning because it teaches you how to program the models, but usually your job in industry is to use whatever is there, not to write things yourself.

For the "normal" machine learning the scikit-learn homepage gives good examples. This leaves deep-learning, for which I cannot recommend anything.

$\endgroup$
  • $\begingroup$ Also, check out matplotlib.org (just use the gallery). There is a good chance that you will need it to present results. Pandas is another package that one regularly bumps into in this field, but I suppose that in vision and image recognition it is going to be less common. $\endgroup$ – Eulenfuchswiesel Apr 4 '18 at 11:50
1
$\begingroup$

First of all, you CAN learn them in 2 months time, if you are going to devote everyday for this. As per your background, you don't need much of the basics of ML, you just need Python. There are many answers for the same here-

https://www.quora.com/What-is-the-best-way-to-learn-Python-from-scratch

The simple roadmap for python here would be-

  1. Download and install python in your PC
  2. Start with a course and book (related to basic python concepts and programming) and start coding. I recommend both course and book because not everything is in a book and not everything is told in the courses.
  3. As soon as you start creating smaller working scripts, go to hackerrank and start doing exercises there. This will develop your understanding of data structures and which data structure to use in which type of problem.

This will help you in writing scripts in python.

For understanding deep learning, you can go to this-

http://deeplearning.net/tutorial/

This tutorial uses Theano for building neural network models. It also explains many terms related to deep learning.

And finally (you already know), practice is what you want to learn in this short time. And your biggest positive point is that you have a PhD in Maths, so you can easily understand the mathematics behind deep learning models.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.