Note that this article is based on my personal experience.
Before reading this article or trying my way of study to master AI Programming in one year, you need to understand my education background and experiences that accelerate my way of study.
I was a Ph.D final year student when I started to learn the Python and understand the concepts of deep learning. I actually had taken the Machine Learning class when I was a Master student, unfortunately, it was all in Japanese language, so I just took the class because my senior told me it was an easy class. I also have lots of join seminar with other research laboratory that did the machine learning related research for speech processing since I was in my final year undergraduate study. However, all are in Japanese language and it was lots of different from my research, so it was very difficult to understand the theoretical parts. My research was about medical image compression by using wavelet transform. You can find my Ph.D dissertation here.
I have programming experience in MATLAB and C language,where the MATLAB syntax is quite similar to Python, the easy to understand language.
At the beginning of 2018, when I started my job hunting as a Ph.D soon-to-graduate student (in Japan you need to start the job hunting within 1 year before your graduation date or else you will miss all the job application deadlines), I started to encounter with lots of coding interviews and companies rejected me just because I only know MATLAB and C. But the real eye opener for me to learn Python was when I took part in the Google STEP Coding Camp where they used Python to code and I was totally blurred!
Below is the route if you are a novice in programming (almost zero knowledge), have a good understanding in high school level mathematics and just want to apply the machine learning algorithms without complicated modifications in the algorithms.
Python programming → Study the hands-on and easy to understand machine/deep learning courses → Learn the Scikit-Learn, Pandas, Matplotlib, NumPy and Keras libraries → Understand the concepts (mathematics) for machine / deep learning → Choose between computer vision or natural language processing field for advanced course
If you are not a novice in programming, your background is engineering / computer science, and you want to do research in machine / deep learning, you can follow the study route as below.
Python programming → Data structures and algorithms → Learn the PyTorch or Tensorflow, Scikit-Learn, Pandas, Matplotlib, Numpy and other libraries → Understand the concepts (mathematics) for machine / deep learning → Choose any field (NLP / CV / NN / HCI )
Why did I put the mathematical concepts as the last part? 😲
This is because, for a novice, you will feel frustrated and be in a lot of despair when you don’t understand the mathematical equations while studying. So, to keep you motivated, start with simple explanation like watching the Luis Serrano’s videos in YouTube, then dig more in hands-on tutorials books, and finally go for the maths! By the time you read the maths of deep learning, you will feel “Oooo.. This is what they are talking about in those videos and this is what I tried to implement just now”.
Below are some resources that I used to study deep learning:
1. Codecademy Python 2 course (FREE)
2. SoloLearn Python 3 course (FREE)
3. Introduction to Python Programming Udacity (FREE)
4. Whirlwind Tour of Python (FREE) —
5. HackerRank 30 days of Code (FREE) —
Data Structures and Algorithms
1. Grokking Algorithms
2. Data structures and algorithms Udacity (FREE)
3. HackerRank Coding Interview Preparation (FREE)
Machine / Deep Learning
1. Introduction to Deep Learning with PyTorch (FREE)
2. Grokking Deep Learning by Andrew Trask
3. Deep Learning by Ian Goodfellow
4. Introduction to Machine Learning with Python
5. YouTube Videos by Luis Serrano
6. YouTube Videos by DeepLearning.TV
7. Keras examples
8. Scikit-learn examples
9. GitHub repositories and Medium Tutorials
10. Kaggle notebooks by Kagglers in various competitions
11. Deep Learning Nanodegree by Udacity (PAID — Thank you Facebook and Udacity for giving me this scholarships!)
12. Deep Learning Tutorial in EUSIPCO 2018 (PAID)
13. Related research papers
Note that you need to understand machine learning concepts first before going further into deep learning!
The next step after all these studies are your goal!
It’s either, application or research. And it’s either natural language processing or computer vision.
I chose both. 😵
Why? Because I just eager to dig more, eager to compete in Kaggle and eager to publish papers! (Don’t follow me if you just an undergraduate student)
Keeping up with the latest AI related papers and trends
1. Join any AI related community in Slack like Women in AI (female only), PySyft Community, Women TechMakers(female only)
2. Apply for Udacity Scholarships and join the Slack community (Udacity community helps me a lot in this field)
3. Read Medium articles everyday
4. Follow famous AI researchers Twitter accounts like Andrew Trask, Mat Leonard, Cezanne etc.
I am currently using these resources to teach AI Programming course in my college, and what I found is that:
* Go for Keras and Scikit-Learn if you just have limited time to study deep learning and much more interested in applications.
* A good understanding of programming concept is important
In the next article, maybe I can cover on NLP vs. CV or which part in CV should you choose. 😏