6 Years of Studying ML in 16 Minutes
Source: tai_blog

I have been studying machine learning for the past 6 years  in which I worked as an ML student researcher for over 2 years  and have even written my first 3 papers.   My journey started studying computer engineering  not knowing what ML was or even that it existed  to where I am now  soon joining my favorite AI startup as a research scientist!   In this blog post  I will be sharing my experience over these 6 years and explain what I did each year to get where I am now.   Things like what to expect for the first few years  what I did to get my first ML student roles  and most importantly  what you should be avoiding!   And trust me  there is a lot   Year 1Okay  before we get to years one and two  how did I get into tech?   Well  young Boris liked physics and math in high school and thought    Hmm  with physics you cant really make money  so I need to do engineering  i.e. applied physics.   Building a robot would be really cool!   But then I also need know how to program the robot to make it do the stuff I want it to do!   At that time  I didnt know AI and ML existed  but those were my thoughts.   This led me to study Computer Engineering at the TU Berlin!   The first two years were really tough  of course.   I had to take the standard courses like linear algebra 1  calculus 1 and 2  and a course on differential equations!   Luckily  I genuinely enjoyed learning math! But that doesnt mean it was easy for me.   In the beginning  it all doesnt make much sense and you dont know why you are learning all these mathematical formulas and abstract concepts.   But I promise you  at some point most of them will make sense and you will learn to appreciate and make use of them! Especially when learning ML!   The basics of these math skills will be the fundamentals you will later need for ML and give you an intuition for how to look at ML models in a mathematical sense.   But back then  again  I didnt even know AI excited!   I had a lot of electrical engineering and even some physics courses! Those were tougher!   But I also had my first CS courses and learned how to code in C!   Yes  in C  thats right! Remember  I was a computer engineering major  so my program was designed for low-level coding and electrical engineering.   However  I still had the standard course on data structure and algorithms in Java and also a course on theoretical CS.   All that is pretty much the standard things you learn when getting into a CS-related program.   Some CS theory and a lot of coding.   Besides normal college courses  I landed my first student researcher job at an optical physics lab about 6 months into my first year!   I wanted to somehow boost my resume  earn some money to survive college  and also just learn more stuff!   I then saw this listing at a research institute directly next to my uni and applied.   It was honestly quite surprising that they invited me to an interview because I literally had not much to offer except basic programming skills and a basic understanding of electrical engineering but I guess for the job I was supposed to do it was enough!   I was responsible for running a lot of experiments with optical fibers and doing measurements.   When starting a new job or project the learning curve will likely be very steep. Which is amazing! I learned a lot!   But  if you do the same measurements for over 1.5 years  the learning curve plateaus  and the job becomes boring.   In total  I stayed at this job for 3 years and this learning curve was completely flat after perhaps 89 months (if not less).   And this was a big mistake I really should have at least changed to a different team at this research institute after a year!   But I was quite exhausted  for these first 2 years  I slept 6 hours a night  didnt do much sports  and just worked a lot!   Which is normal  and I dont want to complain. I had a lot of fun! In fact  I am happy and proud I did all that!   But yeah  all of this happened in my first two years of uni!   Most importantly  I learned the basics of math and computer science and worked as a student researcher.   All of which helped me with studying ML  without even knowing ML existed!   Year 3I finally got into the third year  semesters 5 and 6  where I could choose some of my courses myself!   This fifth semester is where I saw that AI courses existed at my uni and is where I chose my very first AI course!   This is where the ML journey really started.   That said  this AI course was split into two parts  the first one was about old-school AI  NOT ML!   Yes  AI does not necessarily mean ML.   If you have an algorithm with a set of rules to make decisions  its effectively AI.   I learned about things like the STRIPS method. Looking back  its not that exciting honestly  but that is where I started and back then  I thought it was decently cool.   But the second half of this course was REALLY cool!   The second half was about reinforcement learning!   Which  in retrospect is a weird start into ML learning about RL before even knowing what a neural network was.   But maybe this is a good way to show you that it does not really matter how you start. If you keep going  you will learn all the fundamentals anyway. Just in a different order perhaps.   But I would still not recommend it  if you have the option to choose  but you get the point.   Anyway  I learned about things like bandit theory  MTCS  Markov Decision Processes  and finally RL algorithms such as Q-Learning!   So  in my fifth semester  2.5 years into college  there was still not that much ML  but these RL lectures really got me interested in ML  especially RL!   Thats why I wanted to do my bachelor's thesis in RL!   Which is what I did in my 6th semester! I worked on Deep RL for autonomous robotic navigation.   This was a complete cold start into DL! I didnt even know what a Neural Network was! I had to learn all of that on my own through YouTube videos and blog posts.   Even worse  in the beginning  I struggled a lot to even get the hardware set up!   And when I reached out to my supervisor for help  he said he thought I might not be ready for this thesis and I had 2 weeks to prove him otherwise.   And if I failed  he would have to drop the thesis with me   Which would have been so bad The semester had already started and I then would have to look for a completely new one.   But I pushed through and made it!   This thesis project was a loooooot of work!  A lot of engineering work and no real training itself  since the thesis was more on the deployment side of DRL agents than the training side.   Nevertheless  I still learned a lot of core coding skills  like debugging  and did get to learn PyTorch for the first time!   So  my final bachelor year was still a slow step into the world of ML  but a very firm one.   One that set the path to going all in on ML!   Which is why I then switched to pure a CS master!   Year 4So  my fourth year began and I went all in on ML! I selected only ML courses and projects!   But this of course came with a lot of challenges!   In my first graduate semester  I pretty much had one big course and one big project.   For the project  I continued to work on the same team for autonomous robotic navigation that I worked with during my bachelor thesis!   The project was still more of an engineering effort because we built a benchmarking suite for autonomous robots which again came with a lot of failing and debugging.   But this time I could focus a lot more on training our own agents using PyTorch and had to start reading papers to learn about things like PPO!   Of course  the beginning of reading papers is always a bit tough  because you have to get used to the lingo. But it felt so cool! I felt like a real scientist haha   The really cool thing was  that later that year  we actually published this work to one of the two best robotics conferences  IROS!!   That was so huge for me!   It was my first ML paper and it was even published at a top conference :)   Now  alongside this project  I had my first real ML course!   I learned all the basics of classical ML  e.g. what is supervised learning  unsupervised learning  what is the bias-variance tradeoff.   What are methods like Linear regression  Decision trees  Support vector machines  K-means  PCA  Boosting  and Ensemble learning?   And I learned about the basics of Neural Networks like what loss functions  gradient descent  backpropagation  and regularization are.   Alongside each lecture  there of course were practical homework assignments to implement the ideas we learned during the lecture. And those were again using PyTorch!   Now  besides uni  I still had this boring physics lab job. At this point  I was working there for 22.5 years already   But the cool thing was  the research institute I worked at also had an AI department!!!   So I wanted to internally switch teams!   I applied got an interview!  And was rejected   I mean  I get it. I was just starting my first real ML course and had no theoretical knowledge of any of the ML fundamentals.   So  I tried again *half a year later*  after completing the ML course and having gathered more basic PyTorch experience. And I then actually did get the job!   What an amazing start to my second semester  the second half of my fourth year!   I started my work as an applied scientist student researcher in the ML department!   I again had a steep learning curve and was so excited to get to work!   During these first 6 months  I started working on a lot of data engineering mainly using pandas  which I have never used before.   I learned a lot there!   And at uni  I also focused on purely practical learning!   I took two project courses.   I again continued to work on this robotics project. But  at this point  I felt a bit more of a fatigue working on the project.   It wasnt that exciting anymore  but it still a lot of work  and my learning curve plateaued. However  I continued to work on it because I hoped for another paper.   Nevertheless  I started to look at other cool ML domains and took another project course.   A project on a CV for medical image analysis!   This was my first CV project and I had to detect aneurysms in 3D images of the brain.   It was really cool! But I have never dealt with CV before and had never learned what a convolutional neural network was!   So the learning curve was again very steep!   I had to learn all of that knowledge myself by watching YT videos  and reading more papers!   In the end  the final project was not the worst  but also not the best either.   At least  looking back at it now.   And I think this is a good thing! If you are looking back at old projects and think they are bad  because you would have done things differently with your current knowledge  then you have gotten better!   So  yeah. This year was packed with all the ML I could fit in!   Most of it was actually working on ML projects and only taking one ML lecture! But a really important one.   So far  it was quite straightforward  but in the next year  I had to make some important decisions!   Year 5Now  uni continued as usual  but career-wise  I had to make those important decisions.   In my third graduate semester  I again took 1 lecture course and again 2 more projects!   I took my first actual Deep Learning course  which had a decent overlap with my first ML course.   I again learned about the same fundamentals of neural networks  but now also had lectures on CNNs  recurrent NNs  Autoencoders  and a bit of explainable AI.   So  nothing toooo crazy.   At this point  I am really into AI myself and I started watching paper review videos on YouTube and reading random papers on my own!   Perhaps because this course didnt have too much new stuff  and my job didnt teach much theoretical content  as well.   But  anyway  this habit of reading papers and learning stuff on my own are things I still do to this day and that I genuinely enjoy!   So  besides this DL lecture  I once again  worked on this robotics project.   And  I have to say  working on it this semester just wasnt necessary It was really not that interesting anymore  and I really just wanted to learn new stuff.   But I was still hoping for a paper  which in the end was never successfully published :(   Now  my second project course this semester  on the other hand  was again about RL but was amazing!   I had to thoroughly read a paper  and actually reimplement it and reproduce its results! Which was a lot of fun!   I often say it  and Ill say it again. Reimplementing a paper and recreating its results is one of my favorite projects to recommend!   I even wrote a blog post about it and submitted it to a top ML conferences blog post track!   But I didnt really know how the process worked back then haha   I did get my reviews  but never received an email telling me that they were released.   So when I randomly checked  I saw the reviews and that I never responded to them haha   Thus  the article was rejected from the ICLR blog post track.   Nevertheless  the project taught me a lot and  at this point  I was pretty confident I wanted to become a top ML researcher!   This goal meant that I needed to strive for the best companies!   My job  at that time  as a student researcher was not completely plateauing  but also not the best anymore.   We started doing research on graph neural networks  but for over a year now  we were still stuck with a lot of the same boring data and feature engineering.   I effectively didnt really learn anything new.   Thats why I wanted to find a new job and not make the same mistake as before  where I stayed for 3 years at the same job   So I applied to dozens of the top ML internships! And I actually got invited to an interview for an applied science internship at Amazon!   That was my first real tech interview! It was really exciting!   Except that I failed miserably.   The more frustrating part was  that the questions were really not that hard it was a rapid-fire  basic ML questions interview.   They were literally asking about the content of the first ML course I mentioned before. The one I completed not even a year ago   But  well  life goes on and I got another interview at a cool startup called Nuro!   This time  it was for an ML engineering internship  and the first interview round was a coding interview!   Again  something completely new to me!   I prepared using Leetcode  but when I saw a blank coding canvas and no preexisting code where I just had to fill in an algorithm  I was so scared.   I failed miserably. Again.   Well  the applications werent going so well. I simply didnt get many more interviews.   So I changed my approach! I directly reached out to a Google DeepMind researcher I found interesting and asked for an internship.   And he got back to me!!! We had an interview call and I felt it went decently well!   But I got rejected   I was done looking for internships  and focused on finding a new job as a student researcher where I could also do my master's thesis!   I decided I had enough of RL and found CV really cool!   But then I thought   how cool would it be if you could talk to an AI about images or even videos!   Thats when I decided multimodal learning was really cool!   But  at my university  there was a problem.   There were no professors working on multimodal learning  and pretty much all of the professors were how do I say it a bit more old school and not thaaaaat much into the new stuff.   There definitely were one or two  dont get me wrong  but they werent into something even similar to multimodal learning.   So I looked outside of my uni  TU Berlin. I wanted to look for a professor who was a bit more active and ambitious.   I read multimodal learning papers and looked at the authors.   I then googled them to see if they could be an option as an advisor for my research and thesis.   And then I found the perfect professor!!!   He was young  and was just about to start as a professor  and before that  he was a postdoc at UC Berkeley and a researcher at Meta!   And he worked on multimodal learning! He was everything I was looking for!   Long story short  I am so happy to have gotten the job and started to work with him  later in my final year.   I still had my goal of getting to big tech  but there are these nice sayings.   Rome wasnt built in a day.   and   All roads lead to Rome.   I.e. Everything takes time  and there are multiple ways to get where you want to get!   So  all in all  this semester  besides this career hassle  I just did a lot of coding!   At my job  for the robotics project  and for this RL paper reimplementation!   But this was still just the first half of my 5th year!!!   My second half was not that eventful haha   Since I failed all my applications for summer internships  I was still doing my best to learn stuff at my  at the time  current job  otherwise  not much interesting stuff happening there.   And at uni  I really focused on my CV!   I took a course on Automatic image analysis and another seminar course on DL for CV  where I had to read several papers on self-supervised learning and present them to the group.   That was so much fun! I just really love reading cool papers :)   I even made my presentation into a mini-series on representation learning  haha   But besides those two courses  I took my second general deep learning course!   This one was finally a bit more advanced!   I learned about things like Representation learning  self-supervised learning  Transformers  GANs  Diffusion models  Graph neural networks  and even ordinary neural differential equations!   And finally  I also did another CV project course  where I wrote a paper/ technical report on!   So there was way more theoretical content this semester  but still a practical project!   Now  you might have noticed that this semester usually should have been my final semester.   Usually  the masters would end after 2 years  but I had actively decided to give myself one more year  mainly to have one semester for an internship and one more for my thesis!   So  this semester was my last one with courses and (since I didnt get an internship) I had one more entire year to focus on doing research with my new professor and then completing my master's thesis.   And that is what I did in my final year!   Year 6I was finally done with uni! At least  it felt like that because I had no more exams.   I started working as a student researcher with this cool professor and started doing research on multimodal learning  specifically  video-moment retrieval.   I read a lot of papers  developed a model that achieved new SoTA performance on the benchmarks I evaluated on  and wrote a paper on it in a very short time!   I even submitted the paper to a top conference. Im telling you  those were some stressful weeks But it still recently got rejected.   And to be honest  I probably understand why.   I rushed it because we chose a deadline that was simply way too close.   I should have taken more time and just submitted it to a later conference so that the paper was overall more solid.   I share more of my learnings and experiences in my Substack newsletter  e.g. the lessons I learned from this rejection and more content that is based on what Im up to as an ML researcher that wouldnt really work here on Medium :)   Now  although it was annoying  I will continue to improve this work and soon submit it to another conference!   Then I remembered that I am still in my final year! I still need to actually complete my degree  lol   Thats why I am currently still in the process of finishing writing my thesis and handing it in.   But  since this is my final year  I also had to think of what comes next!   I thought to myself  either I skip the PhD and become a researcher at a top lab  or I do my PhD.   I mean  how likely was it to skip the PhD?   The cool thing was I already had an offer from my professor for the PhD position  and I was very happy to accept it.   Nevertheless  I still wanted to try out applying to two companies as a research scientist.   One was DeepMind  and  although I thought my chances were  in fact  decent  because I had exactly the combination of different experiences that they were looking for  I got rejected.   But besides DeepMind  I applied for another really cool AI startup. My favorite one  to be precise.   I knew I wouldnt even get invited to an interview. But one evening  I was like  Why not They wont invite me anyway.   But you probably already know where I am going with this. They did invite me!   And I was shocked!!!   The application process was quite tough  and I wanted to really give it my all and see if I am good enough for them.   And  well  long story short  I did get an offer and will work for them starting in a few months.   Once I start my work  I will announce which company it is  dont worry!   I just want to make it cool because  for me  it is a big thing :)   But yeah  anyway  throughout all these years  there was a lot of struggling but also some occasional successes!   I quickly learned that the important thing is to keep moving.   Some people get to where I am now in less time and some in more. But that doesnt matter!   What matters is that you try to improve every day by 1%  overall enjoy what you do  and that you are proud of what you do!   Nevertheless  there are many mistakes you can avoid and not waste any time on if you simply know what they are.   Thats why you might want to read this blog post next.   I there share 7 common mistakes beginner ML students make every year!   7 Mistakes Beginner ML Students Make Every YearDont study LLMs! Youre making a mistake!pub.towardsai.net   Happy learning and ba-bye! U+1F44B