# esokolov/ml-course-hse architecture

> Architecture diagram of the GitHub repository esokolov/ml-course-hse, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/esokolov/ml-course-hse
- Repository: https://github.com/esokolov/ml-course-hse

## Overview

This repository is a collection of HSE machine-learning course materials and practical assignment implementations, rather than a single application. The learner-facing workflow is to study course resources, work through practical exercises, and use the resulting model outputs or evaluation metrics. The tree shows practical code across several course years; the README documents lecture notes, seminars, theoretical homework, and competitions, but their contents are not sampled here. Arrows between independent assignments are omitted; the VGG image-preparation and inference relationship is visible in the sampled source.

Main entry points: [`2016-fall/seminars/VGG19.py`](https://github.com/esokolov/ml-course-hse/blob/master/2016-fall/seminars/VGG19.py) (VGG19 inference), [`2016-fall/lecture-notes`](https://github.com/esokolov/ml-course-hse/tree/master/2016-fall/lecture-notes) (Lecture notes), [`2016-fall/seminars`](https://github.com/esokolov/ml-course-hse/tree/master/2016-fall/seminars) (Seminar materials), [`2016-fall/homeworks-theory`](https://github.com/esokolov/ml-course-hse/tree/master/2016-fall/homeworks-theory) (Theory homework)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_learning["Course resources"]
  node_lectures["Lecture notes"]
  node_seminars["Seminar materials"]
  node_theory["Theory homework"]
  node_contests["Competitions"]
end

subgraph group_foundations["Core methods"]
  node_gd["Gradient descent<br/>[descents.py]"]
  node_linear["Linear regression"]
  node_preprocessing["EM preprocessing<br/>[preprocessing.py]"]
end

subgraph group_models["Model families"]
  node_layers["Neural layers<br/>[layers.py]"]
  node_vgg["VGG19 inference<br/>[VGG19.py]"]
  node_trees["Decision trees<br/>[hw5code.py]"]
  node_boosting["Gradient boosting<br/>[boosting.py]"]
  node_em["EM models<br/>[models.py]"]
  node_rff["Random features"]
  node_kernel["Kernel regression"]
end

subgraph group_evaluation["Evaluation and search"]
  node_metrics["EM metrics<br/>[metrics.py]"]
  node_hyperopt["Hyperparameter search<br/>[optimizers.py]"]
end

node_learner(("Learner"))

node_learner -->|"studies"| node_lectures
node_learner -->|"uses"| node_seminars
node_learner -->|"solves"| node_theory
node_learner -->|"participates"| node_contests
node_learner -->|"practices"| node_gd
node_learner -->|"practices"| node_linear
node_learner -->|"implements"| node_layers
node_learner -->|"implements"| node_trees
node_learner -->|"implements"| node_boosting
node_learner -->|"implements"| node_em
node_learner -->|"practices"| node_hyperopt
node_learner -->|"implements"| node_rff
node_learner -->|"implements"| node_kernel
node_learner -->|"studies"| node_vgg
node_vgg -->|"prepares images"| node_vgg

click node_lectures "https://github.com/esokolov/ml-course-hse/tree/master/2016-fall/lecture-notes"
click node_seminars "https://github.com/esokolov/ml-course-hse/tree/master/2016-fall/seminars"
click node_theory "https://github.com/esokolov/ml-course-hse/tree/master/2016-fall/homeworks-theory"
click node_contests "https://github.com/esokolov/ml-course-hse/tree/master/2016-fall/contests"
click node_gd "https://github.com/esokolov/ml-course-hse/blob/master/ml1-2026-spring/homework-practice/homework-practice-02-gd/descents.py"
click node_linear "https://github.com/esokolov/ml-course-hse/blob/master/ml1-2026-spring/homework-practice/homework-practice-02-gd/linear_regression.py"
click node_layers "https://github.com/esokolov/ml-course-hse/blob/master/2017-spring/homeworks-practice/homework-practice-04/layers.py"
click node_vgg "https://github.com/esokolov/ml-course-hse/blob/master/2016-fall/seminars/VGG19.py"
click node_trees "https://github.com/esokolov/ml-course-hse/blob/master/ml1-2026-spring/homework-practice/homework-practice-05-trees/hw5code.py"
click node_boosting "https://github.com/esokolov/ml-course-hse/blob/master/ml1-2026-spring/homework-practice/homework-practice-06-boosting/boosting.py"
click node_em "https://github.com/esokolov/ml-course-hse/blob/master/ml2-2026-spring/homeworks-practice/homework-practice-12-em/models.py"
click node_preprocessing "https://github.com/esokolov/ml-course-hse/blob/master/ml2-2026-spring/homeworks-practice/homework-practice-12-em/preprocessing.py"
click node_metrics "https://github.com/esokolov/ml-course-hse/blob/master/ml2-2026-spring/homeworks-practice/homework-practice-12-em/metrics.py"
click node_hyperopt "https://github.com/esokolov/ml-course-hse/blob/master/2022-spring/homeworks-practice/homework-practice-14-hyperopt/optimizers.py"
click node_rff "https://github.com/esokolov/ml-course-hse/blob/master/ml2-2026-spring/homeworks-practice/homework-practice-11-random-features/homework_practice_11_rff.py"
click node_kernel "https://github.com/esokolov/ml-course-hse/blob/master/ml2-2026-spring/homeworks-practice/homework-practice-11-random-features/homework_practice_11_kernel_regression.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_lectures,node_seminars,node_theory,node_contests toneBlue
class node_gd,node_linear,node_preprocessing toneAmber
class node_layers,node_vgg,node_trees,node_boosting,node_em,node_rff,node_kernel toneMint
class node_metrics,node_hyperopt toneRose
class node_learner toneIndigo
```

## Components

### Course resources

- [Lecture notes](https://github.com/esokolov/ml-course-hse/tree/master/2016-fall/lecture-notes): `2016-fall/lecture-notes`
- [Seminar materials](https://github.com/esokolov/ml-course-hse/tree/master/2016-fall/seminars): `2016-fall/seminars`
- [Theory homework](https://github.com/esokolov/ml-course-hse/tree/master/2016-fall/homeworks-theory): `2016-fall/homeworks-theory`
- [Competitions](https://github.com/esokolov/ml-course-hse/tree/master/2016-fall/contests): `2016-fall/contests`

### Core methods

- [Gradient descent](https://github.com/esokolov/ml-course-hse/blob/master/ml1-2026-spring/homework-practice/homework-practice-02-gd/descents.py): `ml1-2026-spring/homework-practice/homework-practice-02-gd/descents.py`
- [Linear regression](https://github.com/esokolov/ml-course-hse/blob/master/ml1-2026-spring/homework-practice/homework-practice-02-gd/linear_regression.py): `ml1-2026-spring/homework-practice/homework-practice-02-gd/linear_regression.py`
- [EM preprocessing](https://github.com/esokolov/ml-course-hse/blob/master/ml2-2026-spring/homeworks-practice/homework-practice-12-em/preprocessing.py): `ml2-2026-spring/homeworks-practice/homework-practice-12-em/preprocessing.py`

### Model families

- [Neural layers](https://github.com/esokolov/ml-course-hse/blob/master/2017-spring/homeworks-practice/homework-practice-04/layers.py): `2017-spring/homeworks-practice/homework-practice-04/layers.py`
- [VGG19 inference](https://github.com/esokolov/ml-course-hse/blob/master/2016-fall/seminars/VGG19.py): `2016-fall/seminars/VGG19.py`
- [Decision trees](https://github.com/esokolov/ml-course-hse/blob/master/ml1-2026-spring/homework-practice/homework-practice-05-trees/hw5code.py): `ml1-2026-spring/homework-practice/homework-practice-05-trees/hw5code.py`
- [Gradient boosting](https://github.com/esokolov/ml-course-hse/blob/master/ml1-2026-spring/homework-practice/homework-practice-06-boosting/boosting.py): `ml1-2026-spring/homework-practice/homework-practice-06-boosting/boosting.py`
- [EM models](https://github.com/esokolov/ml-course-hse/blob/master/ml2-2026-spring/homeworks-practice/homework-practice-12-em/models.py): `ml2-2026-spring/homeworks-practice/homework-practice-12-em/models.py`
- [Random features](https://github.com/esokolov/ml-course-hse/blob/master/ml2-2026-spring/homeworks-practice/homework-practice-11-random-features/homework_practice_11_rff.py): `ml2-2026-spring/homeworks-practice/homework-practice-11-random-features/homework_practice_11_rff.py`
- [Kernel regression](https://github.com/esokolov/ml-course-hse/blob/master/ml2-2026-spring/homeworks-practice/homework-practice-11-random-features/homework_practice_11_kernel_regression.py): `ml2-2026-spring/homeworks-practice/homework-practice-11-random-features/homework_practice_11_kernel_regression.py`

### Evaluation and search

- [EM metrics](https://github.com/esokolov/ml-course-hse/blob/master/ml2-2026-spring/homeworks-practice/homework-practice-12-em/metrics.py): `ml2-2026-spring/homeworks-practice/homework-practice-12-em/metrics.py`
- [Hyperparameter search](https://github.com/esokolov/ml-course-hse/blob/master/2022-spring/homeworks-practice/homework-practice-14-hyperopt/optimizers.py): `2022-spring/homeworks-practice/homework-practice-14-hyperopt/optimizers.py`

### Other components

- **Learner**

## Connections

- Learner → Lecture notes: studies
- Learner → Seminar materials: uses
- Learner → Theory homework: solves
- Learner → Competitions: participates
- Learner → Gradient descent: practices
- Learner → Linear regression: practices
- Learner → Neural layers: implements
- Learner → Decision trees: implements
- Learner → Gradient boosting: implements
- Learner → EM models: implements
- Learner → Hyperparameter search: practices
- Learner → Random features: implements
- Learner → Kernel regression: implements
- Learner → VGG19 inference: studies
- VGG19 inference → VGG19 inference: prepares images
