ML-From-Scratch Когда нужно заглянуть под капот машинного обучения

05 сен 2025

Репозиторий давно не обновлялся

Последнее обновление было 2 года назад.

32,892
5,490
971
2 года

Знакомо чувство, когда используешь scikit-learn или TensorFlow, но не до конца понимаешь, что происходит внутри? Проект ML-From-Scratch — это как мастер-класс по машинному обучению, где каждая строка кода написана для максимальной прозрачности.

Почему стоит заглянуть в этот репозиторий?

Автор проекта, Erik Linder-Norén, создал коллекцию реализаций алгоритмов машинного обучения на чистом Python с NumPy. Это не просто учебное пособие — это рабочие реализации, которые:

  • Показывают математику алгоритмов без абстракций популярных библиотек
  • Дают возможность модифицировать и экспериментировать с базовыми принципами
  • Помогают глубже понять, как работают инструменты, которые мы используем ежедневно

Что внутри: от линейной регрессии до GAN

Проект охватывает все основные направления ML:

1. Классика supervised learning

  • Линейная и логистическая регрессии
  • Деревья решений и случайный лес
  • SVM и метод k-ближайших соседей
# Пример использования полиномиальной регрессии
$ python mlfromscratch/examples/polynomial_regression.py

Polynomial Regression

2. Нейросетевые подходы

  • Полносвязные сети и CNN
  • Автоэнкодеры и генеративные сети (GAN)
  • Эволюционные нейросети
# Запуск генеративной сети для создания цифр
$ python mlfromscratch/unsupervised_learning/generative_adversarial_network.py

GAN MNIST

Реклама

3. Необычные и мощные техники

  • Генетические алгоритмы
  • Обучение с подкреплением (Deep Q-Network)
  • Методы кластеризации (DBSCAN, k-means)

Как это устроено технически

Основные принципы проекта:

  1. Минимальные зависимости — только Python и NumPy
  2. Читаемый код с подробными комментариями
  3. Модульная структура для легкого экспериментирования
  4. Визуализация процессов обучения

Например, вот как выглядит архитектура CNN из примера:

+----------------------+------------+--------------+
| Layer Type           | Parameters | Output Shape |
+----------------------+------------+--------------+
| Conv2D               | 160        | (16, 8, 8)   |
| Activation (ReLU)    | 0          | (16, 8, 8)   |
| Dropout              | 0          | (16, 8, 8)   |
...

Кому особенно пригодится?

  1. Начинающим в ML — чтобы понять основы без "магии" фреймворков
  2. Преподавателям — готовые примеры для демонстрации алгоритмов
  3. Исследователям — основа для быстрого прототипирования идей
  4. Опытным разработчикам — когда нужно разобраться в нюансах работы алгоритмов

Личный опыт использования

Когда я впервые столкнулся с ограничениями "черного ящика" в TensorFlow, именно этот проект помог мне понять:

  • Как на самом деле работает backpropagation
  • Почему важно правильно инициализировать веса
  • Как устроены различные функции активации

Особенно впечатлила реализация GAN — увидеть, как буквально на глазах нейросеть учится генерировать цифры, было по-настоящему вдохновляюще.

Как начать использовать

  1. Клонируйте репозиторий:
git clone https://github.com/eriklindernoren/ML-From-Scratch
cd ML-From-Scratch
python setup.py install
  1. Попробуйте примеры из папки examples/
  2. Исследуйте код реализаций в соответствующих подпапках

Вывод: стоит ли тратить время?

Если вы:

  • Хотите глубже понять ML, а не просто вызывать fit/predict
  • Любите разбираться в деталях реализации
  • Ищете вдохновение для собственных реализаций

— то этот проект точно заслуживает вашего внимания. Это как собрать машину из деталей, чтобы понять, как она ездит, вместо того чтобы просто нажимать на педали.

P.S. Автор открыт для предложений — если вам не хватает какой-то реализации, можно написать ему напрямую.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.