Обновить
16K+
20

Пользователь

52,1
Рейтинг
127
Подписчики
Отправить сообщение

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

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели11K

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

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

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

Читать далее

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

Уровень сложностиСложный
Время на прочтение8 мин
Охват и читатели7.9K

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

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

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

Читать далее

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

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели11K

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

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

Читать далее

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

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели8.9K

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

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

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

Читать далее

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

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели9.7K

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

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

Читать далее

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

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели7K

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

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

Читать далее

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

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели10K

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

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

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

Читать далее

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

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели8.8K

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

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

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

Читать далее

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

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели15K

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

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

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

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

Читать далее

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

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели15K

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

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

Читать далее

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

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели17K

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

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

Читать далее

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

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели14K

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

Читать далее

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

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели15K

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

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

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

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

Читать далее

Информация

В рейтинге
167-й
Зарегистрирован
Активность

Специализация

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