I am an ML Researcher and a passionate learner. Here are some highlights of my academic and professional journey:
-
๐ Current Pursuits:
I am currently pursuing a masterโs degree in Data Mining at Shahid Beheshti University with a GPA of 19.65, holding the first rank in my major. -
๐งฎ Educational Background:
I hold a bachelorโs degree in Mathematics and Applications from Amirkabir University of Technology. -
๐ป Professional Experience:
I have 2.5 years of experience as a software engineer. In my last year, I worked at Yektanet, the largest and most advanced online advertising network in Iran. -
๐งโ๐ซ Teaching Experience:
I have served as a lead teaching assistant at Amirkabir University of Technology for several courses, including:- ๐ Data Mining, instructed by Dr. Fatemeh Shakeri
- ๐ป Computational Data Mining, instructed by Dr. Fatemeh Shakeri
- ๐ค Deep Learning, instructed by Dr. Fatemeh Shakeri
- ๐ Linear Algebra, instructed by Dr. Behzad Najafi
- ๐ฅ๏ธ User Interface Design, instructed by Dr. Sajad Shirali Shahreza
-
๐ฌ Research Involvement:
I have been involved in various research projects, which are detailed below.
-
Adaptive Token Merging Strategies:
Investigating methods to optimize token merging processes for faster and more efficient model inference. Our research builds upon the existing method described in the paper Token Merging for Fast Stable Diffusion. -
Driving Behavior Monitoring Framework:
Creating a comprehensive framework for analyzing driving patterns using sensor time series data to improve driver safety and provide real-time insights. Our method is inspired by wav2vec 2.0. -
Mini Torch Library:
A friend and I created a framework demonstrating how PyTorch operates behind the scenes. I plan to create a tutorial for this as well. Itโs a generalized version of the existing implementation from Andrew Karpathyโs project called Micrograd, but there are significant differences:3.1 Generalization Beyond Scalars:
Our implementation is not limited to scalars; we have written it in a generalized form that supports scalars, vectors, matrices, and tensors. This is significant because it requires us to generalize the concept of derivatives. In this generalized context, the derivative is analogous to a linear transformation from an infinitesimal change indx
to an infinitesimal change indy
. For more detailed information, you can refer to this MIT tutorial.3.2 Module Class Implementation:
We created aModule
class similar to thetorch.nn.Module
class in PyTorch, which all neural networks should inherit. This class automatically provides capabilities such as theparameters()
method, so each class does not need to implement it individually.3.3 Optimizer Abstraction:
We introduced a separateOptimizer
entity, similar to PyTorch, where each optimizer must implement two main methods:zero_grad()
andstep()
.3.4 Neural Network Components:
We created a basicnn
module to contain all the components a neural network could have. Currently, we have implemented only theLinear
function.
- Decision Tree Implementation from Scratch & Visualization
In this article, I walk through a detailed implementation of the Decision Tree algorithm from scratch with visualization.