Code and thesis document for my Bachelor’s thesis at St. Petersburg State University (SPbU)
Follow these steps to get started:
- Read the thesis document (in Russian) located at
./reports/thesis.pdf. - Review the prerequisites and install all required dependencies as described in the Installation section.
- Navigate to the
./notebooks/directory and run the notebooks sequentially. - After executing all notebooks, you will find:
- Datasets and embeddings that were used in experiments in
./data/; - Saved weights of the trained models in
./models/; - A summary of the proposed models and their metrics (same as in the thesis) in
./reports/models_summary.csv;
- Datasets and embeddings that were used in experiments in
Pre-requisites:
Python 3.9 or higher
pip
venvThis project can be installed using pip as follows:
git clone https://github.com/trxxxxkov/spbu-bachelor-thesis.git
cd spbu-bachelor-thesis
python3 -m venv .venv
source .venv/bin/activate
pip install .spbu-bachelor-thesis/
├── .github/
│ └── workflows/
│ └── latex-compilation.yaml # CI workflow that auto-compiles LaTeX sources into PDFs
├── notebooks/
│ ├── 01_data_preparation.ipynb # Clean raw datasets and write embeddings for later use
│ ├── 02_proposed_models.ipynb # Define and train the KAN-based model variants
│ ├── 03_continual_learning.ipynb # Benchmark models under continual-learning setup
│ └── 04_report_preparation.ipynb # Summarize results in plots and tables
├── reports/
│ ├── tex/
│ │ ├── figures/
│ │ │ └── ... # All graphics (plots, diagrams, logos) referenced in LaTeX sources
│ │ ├── beamerbasetitle.sty # Redefining of the Beamer title page
│ │ ├── beamerthemespbu.sty # SPbU-branded Beamer theme
│ │ ├── presentation.tex # Beamer source for the defence slides
│ │ ├── references.bib # BibTeX database for the thesis
│ │ ├── thesis.sty # Custom SPbU-compliant LaTeX style
│ │ └── thesis.tex # Main bachelor-thesis LaTeX document
│ ├── models_summary.csv # CSV log of all experiment metrics across models
│ ├── presentation.pdf # Pre-built PDF of the defence slides
│ └── thesis.pdf # Pre-built PDF of the full thesis
├── spbu_bachelor_thesis/
│ ├── nn/
│ │ ├── architectural_kan.py # KAN-based model with a FEL layer
│ │ ├── kan.py # Kolmogorov-Arnold Network model
│ │ ├── mlp.py # Multilayer perceptron model
│ │ ├── regularized_kan.py # KAN-based model with explicit weights regularisation
│ │ └── rehearsal_kan.py # KAN-based model with a SOM layer
│ ├── datasets.py # Dataset loaders and preprocessing pipelines
│ ├── global_constants.py # Paths, seeds and hyper-params
│ ├── metrics.py # Custom CL and metrics and MPC accuracy implementation
│ ├── train_test.py # Implementation of train/test loops for CL experiments
│ └── visualization.py # Utilities for plotting training progress graphics
├── .gitignore
├── LICENSE
├── pyproject.toml # Build-system and dependency specification
└── README.md The thesis template was adapted from itonik/spbu_diploma; the presentation template was adapted from spbu-se/report_presentation_template.