Deep Learning for Computer Vision for the average person
Believe the hype surrounding deep learning or not, but it is going to change the world. In some ways, it is already, and in the coming decade the progress will only accelerate. So, why not add deep learning to our technology stack?
Yes, I understand when you see the Tech Giants doing amazing stuff with AI( Google deep learning syste. detecting lung cancer better than a pathologist), you must always have wondered, how? And can I do that?
Frankly speaking, no. You can’t match what these companies are doing. Deep learning architecture requires a lot of investments in terms of data and computation.
Or, can you publish groundbreaking research works like Ian Goodfellow, Geoffrey Hinton in this field? These are people who have Dedicated their lives to this field. At its core, deep learning is linear algebra, statistics and probability. All the libraries like tensorflow, caffe, Theano do Tensor manipulation. So, if you aren’t a genius at these subjects, chances are you won’t find much success.
So, is deep learning for average people? Yes, it is. With the right resources and efforts, even average people like us can learn about deep learning.(And when I say average, I mean people who scored a C in Linear Algebra like me.)
I have been learning about this field for the past three months, and I have been improving day by day. So follow along this path and you will find deep learning interesting and not so hard :
- Do the Machine Learning course by Andrew Ng. It will be the base to move forward. You have watch the videos at 1.5x speed, and learn the concepts. It is okay if you don’t want to do the assignments in MATLAB, but make sure you understand the concepts. Go through the video twice if you have to.
- So now it is time to start writing some machine learning code. (yes, please wait before diving into deep learning). Follow sentdex Machine Learning Intro course.Stop at video 44.The guy is amazing, and with these video you would have a good base with machine learning.
- Read the book available online, “deep learning and neural network by Michael Nielsen”. DO NOT MOVE FORWARD WITHOUT READING THIS BOOK. It is very important that you understand what neural networks are, where the inspiration for neural network came, where they are being used, and what they can do and what they cannot.
- If you have reached till here, I think you have really found a love for the field. Great. Time to strengthen our knowledge before we dive into application part. Youtube “CS 231n”.Skip the first video. Andrew Karpathy is an amazing professor, and you will surely fall in love with deep learning more. Understand back Propagation properly(Why you should understand backprop). Michael Nielsen’s book has a complete chapter on it, and after reading that chapter, if you watch the video, your understanding will be crystal clear.
- Understand what Convolutional neural networks are. It is available in the CS231n videos, but again, I would recommend you to read this amazing article and see if you understand them properly.
- Ok, more reading. Now we will read some amazing research papers, and later on we will implement them, or use some of their concepts. These are: “Imagenet classification with deep convolutional neural networks.”, “Very deep convolutional networks for large-scale image recognition.”, “Improving neural networks by preventing co-adaptation of feature detectors.”,”Dropout: a simple way to prevent neural networks from overfitting.”,”Batch normalization: Accelerating deep network training by reducing internal covariate shift.” You will understand them comfortably after the intensive reading you have done before.
- Ok. Enough of reading. Time to get into applying it! Build your first neural Network by following these tutorials. You will find it pretty easy understanding what is happening, so watch the video at 1.5x. The videos use Google’s Tensorflow Library.
- Sign up on Kaggle. Enter the competition “Dogs vs Cat Redux Edition” by following this Tutorial. Improve the convnets by using your knowledge. (Just by reducing the learning rate and increasing epochs,I got a better result than Sentdex).
- Follow this tutorial to enter The Lung Cancer detection Competition on Kaggle.
- Learn the concept of transfer learning.Implement Vggnet yourself. If you need reference, use this github repo.
If you reach here, please drop in comments how your experience was.