How I started with learning Machine Learning after reading an article on Medium
Disclaimer: I am new to machine learning and also to blogging. If there are some mistakes, incorrect writing style or grammar mistakes , please let me know. Any kind of feedback is appreciated.
I have always been fascinated by Machine Learning and its applications. First time I heard about this topic at the university while doing my masters’. And the first application was, building that famous “House Price Prediction” model using Matlab. As a software engineer we are used to tell to computers exactly what to do and they do their job pretty well. But the idea of program being able to learn by itself, and making intelligent decisions was something revolutionizing for me. That’s when I realized, I want to build that kind of applications later in my career.
Personal AI Winter:
It took me more then a year to finally get my hands dirty and start implementing some of the Machine Learning algorithms. I stopped my master’s education after a year of study and moved to Berlin for a new job. And because of getting used to the city and settling down, I didn’t have much time to dive in the topic and start building something. And in my new job we didn’t have anything to do with ML at that time, we were building Checkout for an e-commerce platform and I already had a lot of new stuff to learn for this.
Besides “not having that much time” , I was also scared. I was scared from Math. Every time I was reading something about ML and becoming ML engineer, there were always people talking about being really good at Calculus, Statistics, and Linear Algebra. I studied Computer Science and I took all of those courses at the university, but I was not confident enough with my knowledge in those topics. Every time I tried to get started, it was always meant to get started with Calculus, Statistics and Linear Algebra. It was always demotivating me.
I had 2 problems:
- Having need to improve my necessary Math skills
- Not being able to have enough time to solve the 1st problem
Solving the good old “I don’t have enough time problem”
I think we all have been there. Working full time.. Coming home and feeling tired and not wanting to learn anything new (especially things like Calculus). And we always have an excuse of being tired from work. And what about weekends ? Social life.. And again we don’t have that much time to learn something in the weekend. That was the struggle that I was having for a long time.
I have never liked “Your Ultimate Guide For An Ultimate Success …”, “Your Ultimate Guide For Becoming Rich…” kind of articles. One day after talking to a friend who wakes up at 5:00 AM to go to the gym, I saw this article — Your Ultimate Guide For Waking Up Early on Medium and I wanted to give it a try. And that’s how I solved my problems! Waking up at 6:00 AM gave me 3 hours more time during the day. And I didn’t have an excuse of being tired, anymore. I had time and I had motivation. I have solved my second problem which was preventing me to solve the first one.
Solving the Math problem:
Having solved the time problem, I was looking for good resources to get started with ML and, meantime, improve my Math skills. I was wandering around Coursera one day and sow Andrew Ng’s new Deep Learning Specialization. I wanted to give it a try. I finished the first 3 courses in 3 weeks and got my certifications with a really good grades. Euphoria! Endorphin Boost!
I learned a lot. I worked hard. I woke up early and study. I was able to wake up early because I had my motivation.
And the Math problem ? It still somewhat exists and I am working on it. But I realized that it is not a blocker for me to get started and to actual build some things. Thanks to Andrew Ng, I realized it. Every time there were some topics from Calculus, he was explaining it patiently and all the time saying: “Don’t you worry if you don’t understand it deeply, I will give you some intuition and you will be able to understand the logic behind it”.
As a first programming exercise I built a simple logistic regression model from scratch for image classification (cat vs non cat, apparently ML people like cats) and it recognized my cat! I couldn’t be more happy. I was able to write an intelligent program!
Then I built a shallow neural network, following deep neural network, then I learned how to use Tensorflow to do those things with a few lines of code and without needing to implement everything from scratch. I learned a lot. I learned how to tune and improve the accuracy of your models. I learned how to structure your ML projects from Andrew’s personal experience.
I am waiting for the 4th and 5th courses to start and meantime taking other courses and reading a lot of books. And finally at work my team are going to do ML and I implemented a simple NLP application to analyze customer feedback data.
The key learning for me was, to understand that you don’t need an expert level knowledge in Calculus to become a DL/ML practitioner. You can have some intuition about how the things work under the hood, and if you want to learn more, you can always deep dive in the topic. You just need to start and get going.
Having learned a lot of things along the way, I want to share my learnings with everyone by writing some more articles here. And I would really appreciate any kind of feedback in the comments section.