Pull to refresh
16K+
21
29
Rating
129
Subscribers
Send message

Разбираемся в ML без воды: от базы до Attention. Часть 13: Кластеризация и k-means

Level of difficultyMedium
Reading time7 min
Reach and readers11K

В предыдущей главе мы рассматривали ситуацию, когда данных слишком много: большое количество признаков затрудняет их анализ, увеличивает вычислительные затраты и приводит к различным негативным эффектам, связанным с высокой размерностью. Для решения этой проблемы мы изучили понятие понижения размерности.

Теперь перейдем к совершенно другой ситуации. Предположим, что с данными все в порядке: признаков достаточно, они хорошо описывают объекты, однако отсутствует целевая переменная (target). Мы не знаем, к каким классам принадлежат объекты, а значит, привычные алгоритмы обучения с учителем применять уже нельзя.

Возникает вопрос: можно ли, имея только сами объекты и их признаки, автоматически обнаружить в данных закономерности и выделить группы похожих объектов? Именно эту задачу решают алгоритмы кластеризации.

Читать далее

Разбираемся в ML без воды: от базы до Attention. Часть 12: Понижение размерности и PCA

Level of difficultyHard
Reading time8 min
Reach and readers8K

В предыдущей части мы разобрали градиентный бустинг — финального босса в классическом обучении с учителем. Мы научились строить мощные ансамбли, которые выжимают максимум из табличных данных. Кажется, что на этом можно ставить точку и прыгать в современный мир нейросетей и Deep Learning.

Но до этого момента мы жили в идеальной теплице: у нас всегда была разметка (тот самый target, который нужно предсказать), а количество признаков в таблицах было разумным. В реальности все иначе. Данных часто слишком много, в них куча шума, а правильных ответов никто не разметил.

В этой части мы закроем очередную проблему в классическом ML — столкнемся лицом к лицу с проклятием размерности (curse of dimensionality). Поймем, как сжимать многомерные пространства, не теряя важный смысл, и как заставить машину самостоятельно группировать объекты в кластеры, вообще не имея готовых классов.

Читать далее

Разбираемся в ML без воды: от базы до Attention. Часть 11: Градиентный бустинг

Level of difficultyEasy
Reading time7 min
Reach and readers11K

В десятой части при изучении случайного леса мы наткнулись на проблему: переход от одиночного дерева к лесу частично снизил дисперсию, но вопрос со смещением остался открытым.

Сегодня мы перейдем к концепции градиентного бустинга, которая позволяет последовательно сводить смещение к нулю, и заодно разберем, как заставить деревья эффективно учиться на ошибках своих "предшественников".

Читать далее

Разбираемся в ML без воды: от базы до Attention. Часть 10: Бэггинг и случайный лес

Level of difficultyMedium
Reading time9 min
Reach and readers9K

В предыдущей части мы изучали дерево решений и, несмотря на его замечательные свойства, наткнулись на один огромный недостаток — нестабильность. Казалось бы, это лечится достаточно просто: зафиксировать все, что отвечает за рандом и не модифицировать датасет.

Такой подход избавит нас от проблемы, но это даже не костыль, а полноценная инвалидная коляска, ведь данное решение буквально закрывает для нас все двери для развития данных. Например, мы в 2026 создадим идеальную модель, предсказывающую цены на квартиры, а в 2027 из-за изменение рынка наша идеальная модель полетит в мусорное ведро.

Следовательно, нужен совершенно другой подход, с другой философией: вместо ограничений, сделать что-то, благодаря чему нестабильность станет чем-то полезным. И в качестве такого подхода сегодня рассмотрим бэггинг и случайные леса.

Читать далее

Разбираемся в ML без воды: от базы до Attention. Часть 9: Дерево решений

Level of difficultyEasy
Reading time12 min
Reach and readers9.8K

В восьмой части мы завершили изучение SVM и разобрались с Kernel Trick. Теперь пришло время познакомиться с деревьями решений — одним из самых популярных и интуитивно понятных алгоритмов машинного обучения.

Идея дерева решений достаточно проста. Алгоритм последовательно задаёт вопросы о признаках объекта и, в зависимости от ответов, движется по ветвям дерева, пока не придёт к итоговому решению. Именно благодаря такой структуре деревья решений считаются одними из самых интерпретируемых моделей машинного обучения.

Читать далее

Разбираемся в ML без воды: от базы до Attention. Часть 8: Kernel Trick

Level of difficultyMedium
Reading time11 min
Reach and readers7.1K

В предыдущей части мы затронули концептуальную идею Kernel Trick (ядерного трюка). Если говорить кратко: когда у нас нет возможности линейно разделить данные в текущем пространстве признаков, мы можем отобразить их в пространство более высокой размерности, где классы станут легко разделимы обычной гиперплоскостью.

В этой части мы глубоко изучим математическое устройство этого метода и разберемся, почему и как именно он работает "под капотом".

Читать далее

Разбираемся в ML без воды: от базы до Attention. Часть 7: SVM и SGD

Level of difficultyEasy
Reading time7 min
Reach and readers10K

В шестой части мы разобрали логистическую регрессию и увидели, как линейная модель может разделять классы с помощью вероятностного подхода.

В этой части поговорим о SVM — алгоритме, который ищет не просто разделяющую гиперплоскость, а оптимальную границу с максимальным зазором между классами.

Если логистическая регрессия отвечала на вопрос "с какой вероятностью объект принадлежит классу?", то философия SVM звучит иначе "где провести наиболее устойчивую границу между классами?".

Читать далее

Разбираемся в ML без воды: от базы до Attention. Часть 6: Логистическая регрессия

Level of difficultyEasy
Reading time8 min
Reach and readers8.9K

Итак мы обсудили задачу классификации и метрики качества классификационных моделей.

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

И первый кандидат у нас логистическая регрессия

Читать далее

Разбираемся в ML без воды: от базы до Attention. Часть 5: Метрики качества

Level of difficultyEasy
Reading time7 min
Reach and readers15K

В четвертой части мы начали изучение задачи классификации и разобрали метод kNN.

Мы уже дошли до той точки, когда можем построить худо-бедно работающий классификатор. Но если нас спросят: “а насколько хорошо он работает?”,
то максимум, что мы пока сможем ответить — что-то вроде: “ну... на тестовой выборке модель правильно ответила в p% случаев”.

С одной стороны, как гласит древняя пословица: лучше иметь 500 рублей, чем 200. Но гарантирует ли высокий p% качество модели?

Сегодня разберём эти вопросы, посмотрим на метрики качества в ML, поймём, зачем они нужны и как их правильно интерпретировать

Читать далее

Разбираемся в ML без воды: от базы до Attention. Часть 4: kNN

Level of difficultyEasy
Reading time5 min
Reach and readers15K

В третьей части мы закончили с линейной регрессией. Теперь пора перейти к задаче классификации․

В задачах регрессии модель пытается предсказать некоторое число: цену автомобиля, размер обуви, ожидаемую выручку бизнеса и так далее.
Классификационная модель, в свою очередь, занимается распределением объектов по классам.

Читать далее

Разбираемся в ML без воды: от базы до Attention. Часть 3: Градиентный спуск

Level of difficultyEasy
Reading time11 min
Reach and readers17K

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

Логическим продолжением будет изучение (не побоюсь этого слова) сердца машинного обучения: градиентного спуска.

Читать далее

Разбираемся в ML без воды: от базы до Attention. Часть 2: Линейная регрессия

Level of difficultyEasy
Reading time6 min
Reach and readers14K

Итак, в предыдущей части мы остановились на поиске решения задачи линейной регрессии. Сформулировали в общем виде задачу машинного обучения, поняли суть параметров, рассмотрели функции ошибок и начали копать в сторону линейной регрессии.
Ещё раз повторю, что этот цикл статей является лишь взглядом на ML с моей колокольни, так что он не обязательно является истиной во всех редакциях в последней инстанции. Так что буду рад всякому, кто исправит меня, коли сверну не туда.

Читать далее

Разбираемся в ML без воды: от базы до Attention. Часть 1։ Введение

Level of difficultyEasy
Reading time7 min
Reach and readers15K

Сколько статей на хабре про машинное обучение? Обозначим их количество за N и напишем N+1‑ю.

Это попытка собрать цельное понимание: пройти путь от «что это вообще такое» до условных трансформеров и связать всё в одну логичную цепочку.

Попробую всё описать максимально простым языком, минимально опираясь на математическую терминологию.

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

Читать далее

Information

Rating
303-rd
Registered
Activity

Specialization

ML разработчик
Python
Машинное обучение
Deep Learning
PyTorch
NumPy
Scikit-learn
Git
Docker
FastAPI