Hi!
My name is Sławek and as you probably already know, I currently study Computer Science at Poznan University of Technology. I must say, I am very excited about this being the first post on my website. As a kind of an introduction, this post will be dedicated to learning Machine Learning as a student.
Learning at the Uni
Although we - students do a lot of programming and learn a lot about different technologies at the University, I have to admit: most of the stuff we have to learn is out-dated and we will not use them. Ever. Of course, we do learn things that might be useful such as Object-Oriented Programming or SQL language, but we also are forced to know how to program a timer in VHDL or memorize steps of a simplex algorithm.
The feeling I got is that the University is trying to teach us a lot of different (not necessarily useful) stuff in a very short time, which results in getting only the basics right.
What do I do?
Okay, now that you know my situation, you probably are asking yourself the same question I did some time ago. How the hell am I supposed to get a job after getting my degree? The answer is pretty obvious: learning by myself.
After I realised this, I tried to get into many areas of Computer Science. I started with Web Development not long after getting accepted in college, then I thought I would try OOP in Java. It was pretty rewarding, but I did not feel like I was doing something of value.
This is when I stumbled upon Machine Learning. The idea of computer program learning how to solve complex problems by itself, such as recognizing various objects, was simply fascinating to me. So I started to look for some materials as for how to start in this field.
My learning path
I started with Kirill Eremenko courses at Udemy. As much as these videos introduced me well to this field, I did not feel like I know the background behind these algorithms I used. I knew how to implement basic prediction model, but I did not really understand it.
The person who really helped me get through the theory behind those algorithms was Andrew NG and his Machine Learning course (Stanford, Udemy). The goal of this course was to entirely focus on the intuition and mathematics behind these basic models, instead of doing the infamous model.fit().
Then I tried applying my knowledge in a project which involved predicting pollution based on weather data from the past few years. Although the project itself did not end up being successful, I learned a lot about working with data. I also got to experience myself the pain of preprocessing the data. After this small project, it was not long before I realized I need to learn about more complex algorithms if I want to build more complex models, such as object recognition.
This time I did not have to look far. The Deep Learning Specialization led by (again) Andrew NG was exactly what I have been looking for. After many hours spent on taking notes and completing the assignments, I:
- Had an opportunity to brush up on implementing efficient neural networks,
- Learned how to implement and apply a variety of optimization algorithms, such as mini-batch gradient descent, Momentum, RMSprop and Adam,
- Understood how to build a convolutional neural network, including recent variations such as residual networks as well as applying them in projects like style transfer,
- Got to know how to build and train Recurrent Neural Networks (RNNs), and commonly-used variants such as GRUs and LSTMs
And that is pretty much it. After completing this course, I realized that before going any further, I would like to have some point of reference and I created this website, so now you are pretty much up to date.
What now?
I decided, that currently, I have enough basic knowledge to try and gain some experience by creating something on my own. At the moment I want to focus on Computer Vision, but I do not limit myself to a specific area of Deep Learning, as I find the whole idea of Deep Neural Networks interesting. I hope that soon you will be able to see the results of my work and give me some feedback!
See you soon, Sławek.