I’ve bet that A.I. is my future:Kiran Arun-TeensInAI Accelerator 2018
Machine Learning is a great skill to have and if you’re are intrigued I highly recommend you try learning it. The two things you can do are jump in as a developer and play with Tensorflow + Keras and build cool solutions, or deep dive into the maths and try and solve the world’s problems.
I started playing with Tensorflow at 15. I then dropped out of school less than 3 months later to study Machine Learning (ML) full-time. ML is the hottest technology in the world right now, but also not the easiest to master. There are things I wish I knew or did before I started which would have improved my learning speed.
I first gained an interest in ML when I was still at school in December 2016. I didn’t have much knowledge about coding or computers, I knew the basics of Python (mainly syntax) but not many practical uses. I loved the maths heavy aspect, the usefulness and that it’s a cutting edge technology. Maths was my strongest area although unfortunately, it didn’t go much further than school maths. The reason I was attracted to ML over everything else was because it uses computers to implement maths and physics which I really tried to enjoy at school but nahh. And this means it’s less synthetic than other technologies and therefore going to have a greater impact (hopefully). I think ML’s impact in the future will consist of it being the technology all other technologies are based on or created with and enable the world to solve it’s current issues. The objective of ML is similar to what a brain achieves, in which it learns from past experience and outputs things it believes is closest to reality.
I started by using Tensorflow and watched Siraj Raval’s YouTube channel. I had also learnt the basics of Linear Algebra, which only really consisted of scalars, vectors, matrices, tensors and their basic operations. These are the fundamentals of how neural networks (NN’s) work (not including the learning bit). The first model I explored was a linear regression model which simply learnt the equation for a straight line. I found this model with every beginners guide like Tensorflow’s first tutorial. To understand how the weights multiplied with the inputs, I only had to know the basics of linear algebra. I didn’t properly understand the learning part, which used calculus and since it wasn’t a probabilistic model, I didn’t learn any probability theory. These three maths areas (linear algebra, calculus and probability theory) are the most useful to know if you want to have a good understanding of ML. I didn’t go in depth in any of these areas until later but instead focused on building and developing basic NN’s in Tensorflow.
I felt this time wasn’t used as productively as it could have been. I did what was needed to get a decent result, but it didn’t teach me anything about how NN’s worked. It was only when I took this free course edX csmm-102x, that I started to appreciate the way ML really works. It gave me a good overview of the basics of ML and was heavily based around the maths and concepts used rather than the coding. The assignments consisted of coding basic models without an ML library. Coding the models in Python without any ML library (just using Numpy), forces you to understand exactly what is happening to the data.
If you want to learn just how to implement ML, then I suggest learning to use libraries like Tensorflow and understanding the concepts of NN’s (Deep NN’s are the strongest performing ML models in almost all categories). Make sure you understand what certain algorithms do (their input and output) but understanding how or why won’t really be necessary. There are many courses and tutorials that will teach you this. However if you want to understand the fundamentals, knowledge of the maths is definitely required. Knowing just the data and optimization algorithms isn’t enough, understanding how and why they were derived is crucial. I also think learning Tensorflow is good as it has the best documentation, is easy to implement and has a great visualization tool called Tensorboard. Prerequisites are mainly knowing a decent amount of Python if you’re learning Tensorflow or Pytorch (I know R is a popular language for ML but I think Python is better for beginners).
There are lots of examples of ML models that are heavily discussed but I suggest training and running a simple model yourself. Then play around with it until you understand it (by researching and/or observing what’s happening with the model). The simplest examples are linear regression and classifying handwritten digits.
Siraj’s YouTube channel is a great resource for complete beginners up to the more experienced. He explains stuff very well although he doesn’t go deep into the maths, just explains the concepts. I like how he quickly dives into creating the models, then talks about the structure and concepts in a fast mannered but easy to understand way. I recommend this playlist as he goes through the fundamentals of deep learning so you understand what’s really happening.
I use Jupyter notebook for all my work as it’s very easy to visualise data and code in a more sequential way (also you don’t have to run the whole model each time). It works with Tensorflow very well and Tensorflow’s docker image comes with it. PyTorch (and Torch) are great for researching as you can create dynamic NN’s very easily as it builds the NN like you code it, rather than Tensorflow building it after you first specify the model. The annoying thing for me with Torch is that it uses Lua, a whole different language.
Now I’ve started going down this path, there’s nothing in traditional UK education up to undergraduate level that really interests me. If you feel like you want the opportunity to direct your education, make sure you have enough support and resources. I’m lucky to have great parental support and be involved with Acorn Aspirations, who gave me exceptional opportunities to develop myself.