This semester, I took the most challenging course I have ever took during my study till now at my university, Pattern Recognition.

What is pattern recognition?

According to wikipedia, Pattern recognition is a branch of machine learning that focuses on the recognition of patterns and regularities in data, although it is in some cases considered to be nearly synonymous with machine learning.

I had been very interested in machine learning since I first heard about it during my second year in college. I wanted to start learning about ML, but I was afraid that this would take my time and focus away from the courses I was studying at that time. But this semester, it was the right time to start.

The course and the students

The course is definitely the most intensive course I have ever took in college till now, which is true given the fact that only 21 students took it as opposed to more than 160 students who took another much easier elective course during the same semester.

The course was fun and challenging from the very beginning. The first lecture was an introduction about what we will study in this course and what to come in the next 14 weeks. We even had to pick up linear algebra foundations on our own. We also picked up Python and machine learning libraries like scikit learn and Keras.

During this 14 week journey, we learned alot about supervised and unsupervised learning, classification, clustering, fully connected and convolutional neural networks, dimensionality reduction and data transformation. We had 8 HWs and 4 Assignments where we had to implement different classification algorithms, or in some cases use libraries to solve a certain problem.

While the professor was definitely great, what even made the course much better is the students taking it. I mentioned that only 21 students took the course out of around 160 students. We were some of the smartest and most hard-working students of our class and this even made us more competitive towards getting better results, doing fancier work in the assignments, and proving that we are the best. I ended up getting the highest mark in the midterm and the second highest grade overall. Our professor said that we were the best students he ever had for this course.

Show me what you did

I uploaded all the coursework (HWs and assignments) to this repo here.

HWs included implementation of PCA algorithm, LDA algorithm, Naive bayes classifier, decision tree classifier, KMeans clustering algorithm, normalized cut spectral clustering algorithm. Assignments include facial recogonition using PCA and LDA, Sentiment analysis and NLP, Modulation recognition using deep learning, Image segmentation using clustering algorithms.

To actually complete the assignments, we had to read a consiberable amount of papers, articles, blog posts, and sections from our textbook. NLP was not taught during lectures, instead we had to learn a lot about representing text as vectors on ourselves to complete the assignment properly.

I can easily say this is the best course I ever took.