This is my personal space to learn different ML algorithms by specifying, implementing, and testing them.
src/
├── fine_tuning/
│ ├── imag_transformer_finetune.py # fine-tuning for vision transformers
│ └── llm_finetuning.py # fine-tuning for large language models
│
├── general_algorithms/
│ ├── linear_regression.py # Linear regression (closed-form, GD, SGD) (tested)
│ └── logistic_regression.py # Logistic regression (GD, SGD) (tested)
│
└── neural_networks/
├── simple_NNs.py # Logistic regression NN, MLPs, regularized NNs
├── CNN.py # Convolutional Neural Networks
├── RNN.py # Recurrent Neural Networks
└── GPT.py # Transformer decoder (GPT-like)
Tests live under test/ and validate the correctness of each algorithm. Additional tests are being written accordingly when time permits.
-
Linear Regression (tested)
- Closed-form solution (Normal Equation /
np.linalg.lstsq) - Gradient Descent (GD)
- Stochastic Gradient Descent (SGD)
- Closed-form solution (Normal Equation /
-
Logistic Regression (tested)
- Binary classification with sigmoid activation
- Cross-entropy loss, GD and SGD variants
-
Simple NNs (tested)
- Logistic Regression (PyTorch)
- Single-layer MLP
- Deep Neural Networks (DNNs)
- Variants with L1, L2, ElasticNet regularization and Dropout
-
CNNs: Convolutional layers, pooling, activation pipelines
-
RNNs: Basic recurrent architectures for sequence data
-
GPT: Decoder-only transformer blocks
- LLM fine-tuning: pipelines for adapting pre-trained LLMs
- Vision Transformer fine-tuning: adapting image transformers on downstream tasks
All modules will be covered with pytest test suites, and tests are being added when time permits
- ✅ Linear & logistic regression (NumPy): implemented and tested
- ✅ Simple neural networks (MLPs, regularization helpers): implemented, tests in progress
⚠️ CNN / RNN / GPT modules: experimental / work in progress- 🚧 Fine-tuning scripts: initial prototypes for future expansion
You are welcome to use this repo for ethical and scientific purposes. Clone the repository by running;
git clone https://github.com/soghomon-n/ml-algorithms-implementation.gitDependencies:
- Python 3.9+
- numpy
- torch
- pytest (for testing)
All algorithms expect inputs and targets as numpy.ndarray objects. For neural network modules implemented with PyTorch, tensors are internally converted to appropriate floating-point types where necessary.
from src.general_algorithms.linear_regression import LinearRegressionGD
import numpy as np
X = np.random.randn(200, 3)
w_true = np.array([1.5, -2.0, 0.7])
y = X @ w_true + 0.1 * np.random.randn(200)
model = LinearRegressionGD(lr=0.01, n_iters=1000)
model.fit(X, y)
print("Learned weights:", model.w)
print("MSE:", model.mse(X, y))- Build core machine learning algorithms from scratch to help me understand them more.
- Provide PyTorch equivalents for neural network architectures.
- Ensure correctness through unit testing.
- Extend into advanced deep learning architectures, including CNNs, RNNs, and Transformers with fine-tuning.
MIT License © 2025