From CRUD web app dev to SDE in voice assistant — My ongoing Journey to Machine Learning

header

(Photo by Andy Kelly on Unsplash)

Start - Inspired by a YouTube channel

Back in 2016, I was inpired by a YouTube channel sentdex to start keeping eyes on machine learning. sentdex is a great youtuber who gives free practical tutorials in his channel. His channel covers a wide range of topics. His machine learning series drew my attention. His content make difficult topic like machine learning so easy to consume. For example Python plays GTA shows how he develops AI to “see” the screens frame by frame and plays the game. Since then, I believe machine learning applications can be fun and it’s not just math formula for scientists.

Self learning

I started to follow sentdex’s Python for Finance series to learn the python basic for data manipulation. Alongside, I decided to add machine learning prediction for stock price. I picked up a best seller book Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow to learn what ML algorithms are available for me to use in this use case. It introduces complex algorithm with simple examples that help you get the concepts of how these algorithms work, e.g. why random forest works better than a sincle decision tree in most cases, or in what kind of data set, you should choose one algorithm over the other. I also learned the stock technical indicators in investopia.com. I ended up building some strategies based on technical indicators. Some of my studies / knowledge can be found in my earlier posts.

Online course

Later, I decided to study ML thru online courses. I found the free course Reinforcement Learning offered by Udacity. It is a course for Geogia Tech Online Master in Computer Science. There, I learned the fundamental concepts of RL, like QLearning, Monte Carlo, TD Learning etc. It is no doubt that Sutton’s book Reinforcement Learning: An Introduction provides great details for me to understand the theory. On the other hand, I found Deep Reinforcement Learning Hands-On helpful for me to get my hands dirty to solve problem pratically. I was able to leverage the what I learned about Kera from this book to apply Deep Q Network to solve OpenAI gym problem.

Online master

In 2017, I found that Geogia Tech offers this OMSCS Computer Sciense Master Degree which has a machine learning specialization from a friend. Learning machine learning systemetically instead of from random resources was what I was looking for. The OMSCS costs relatively lower than other on campus master degree. It offers online and part time courses. That makes the program more appealing to me as the time is very flexible. The courses cover wide range of interesting domains like Artificial Intelligence, Machine Learning, Reinforcement Learning, Computer Vision etc. I enrolled in the program and have a real taste of learning from theory perspective. In the course of Machine Learning, you are expected to read papers, write those famous algorithms by yourself, explain the performance, compare the tradeoff between algorithms. The course itself definitely extends what I learned from Hands-On Machine Learning. There’s downside about online education. You can’t ask question in timely mannar during the lectures since the lectures are pre-recorded hosted on Udacity. Questions are routed to TAs and it takes time for them to answer the questions. But overall, OMSCS is pleasant experience so far. I also took Reinforcement Learning, where you can learn how an agent can make an optimal decision base on its state in a time series environment. This topic can apply to robot, solving games etc. It is quite a amazing to see how an agent takes action randomly and learns from its reward from the actions, then develop its understanding of the evironment for the future actions. These courses actually show me that math still plays critical role when it comes to choosing the algorithm based on the problems. Understanding how to use a framework like Tensorflow or Pytorch may not necessarily help you success in the domain.

Ongoing learning

Now, I am an SDE in a voice assistant. I will continue to study ML subject and interesting algorithms. Currently, I am diving into NLU to learn how algorithms can be used to understand human languages. If anyone knows any interesting papers or resources, please share in the comments.

Written on January 2, 2020