Formula for Life Long Learning
Working in Data Science / Artificial Intelligence could be overwhelming — you need a good handle on basic Math / Statistics (example probability, matrix algebra, calculus), familiarity with various off the shelf algorithms (example Regression, Neural Networks, Clustering etc), facility with tools and programming languages (example Python, R, Excel) and good communication and presentation skills .
Now that’s a lot of things to fit in one body. Not everyone is familiar with all that takes to be a top data scientist. On top of all this, the field itself is evolving at a very rapid pace and you need to catch up with all the new algorithms, frameworks and innovation that is happening. Life long learning thus is not a luxury but a requirement.
Some natural questions then are:
- Should one care about taking out time to learn new things, especially the ones which have just come up?
- How to appropriately pick and choose what you should learn out of a ton of things out there?
- What are good resources to keep yourself updated?
I have thought about these questions many times in life, I’ll share my thoughts on this topic in this blog. While most of the things which I have written here are in context of Data Science / AI, but I believe similar principles apply in other areas in life too.
Before I deep dive, I’ll introduce some terminologies which would be useful later on. In Machine Learning there are broadly three paradigms to make a machine / software “learn” what we want them to learn:
- Supervised Learning
- Unsupervised Learning
- Reinforcement Learning
Reinforcement Learning is probably closest to how we as humans learn to do things. It entails use of trial & error and use of reward for desirable behavior, and penalty for undesirable to make a software agent learn optimal behavior in an environment.
Exploration and Exploitation
At the heart of Reinforcement Learning are the concepts of Exploration and Exploitation.
Exploitation is about making the best decision using the information you already know . It involves doubling down on things which have worked in the past and potentially improving them even further. The broad idea is of incremental refinement.
Exploration is about gathering more information to discover other promising things which are yet to be refined. While Exploration may not always be fruitful and may seem sub optimal in the short term, but may help you find an optimal solution in the long run and avoid getting trapped locally.
For a Reinforcement Learning based agent to learn things optimally it needs to strike the right balance between Exploitation and Exploration. Too much Exploitation and it may get stuck in a local optimum, unaware of other things which could have worked better. With too much Exploration, it may never exploit or fully utilize all the information it has collected.
Applying the Concepts in Real Life
To draw a parallel from Reinforcement Learning, for achieving optimal results, we need to strike the right balance between Exploitation and Exploration in real life too.
Exploration in daily life is primarily about reading, listening and quickly trying out something new. There can be many sources to achieve this goal:
- Reading blogs, forums, news, books and papers to keep yourself updated
- Attending conferences and / or meetups, listening to podcasts etc
- Dipping your toe into a new framework, algorithm, pre-trained model to see if it looks interesting.
Some of the important sources of information that I monitor are:
Blog / Twitter handles / Website of :
- Big Companies — Google AI, Facebook AI, Uber Engineering, Microsoft Research, IBM Research, Netflix, DeepMind, Baidu, OpenAI
- Top Academic Groups — Stanford NLP, Berkeley Research, CMU etc
- Frameworks — Tensorflow, Pytorch, Huggingface, Fastai
- Forums — Kaggle, git
- Papers — Arxiv, Paperswithcode
- Courses: Coursera, Udemy
Even the above (small) list may quickly get overwhelming, but remember, the goal of this step is to shortlist a few things that you want to go really deep into rather than being on top of everything of everything which is not possible.
Exploitation in real life is about putting things into practice. There is always inertia when you try to include a new thing in your workflow, but overcoming initial hurdles and making some short term sacrifices for long term gains may be well worth it.
Remember everything you Explore would be of little help to you until you really deep dive. Here are some of the ways of Exploitation in real life:
- Re-implementing one of your existing projects using a new technique / algorithm to assess the gains over what you did earlier
- Doing some fun project using an open dataset and/or Kaggle competition to utilize your newly learned tricks
- Creating some open source utility on Git and / or contributing to an existing utility
The Exploration and Exploitation paradigm described above may be helpful in going about learning new things without compromising on things which you have to do, using judicious time allocation. The short term overhead may well be worth the long term gains. I have personally benefited a lot by striking a balance between Exploration vs Exploitation. If I look at what I do today, I make heavy use of things I learned in last 2–3 years, without them I simply wouldn’t be as effective as I am right now.