Что такое машинное обучение
Стартовая тема курса: чем машинное обучение отличается от классического программирования, какие бывают парадигмы обучения, зачем данные режут на три части и что такое обобщение — понятие, ради которого всё и затевается.
Интуиция: правила против данных
Классическая программа — это правила, которые придумал и записал человек. Хочешь фильтровать спам — садишься и пишешь: если в письме есть слово «выигрыш» и незнакомый отправитель — в спам. Такой подход ломается, как только правил нужны тысячи, а спамеры начинают их обходить быстрее, чем ты успеваешь дописывать новые.
Машинное обучение (machine learning, ML) переворачивает схему: мы не пишем правила, а показываем алгоритму данные — тысячи писем с пометками «спам / не спам» — и он сам выводит правила, подбирая параметры модели. Классическое определение Тома Митчелла: программа учится, если её качество на задаче T, измеренное метрикой P, улучшается с накоплением опыта E. Опыт — это данные; «становится лучше с опытом» — и есть суть обучения.
Три парадигмы обучения
- С учителем (supervised learning). Есть пары «объект → правильный ответ»: письмо → спам или нет, квартира → цена. Модель учится воспроизводить ответы. Сюда относятся классификация и регрессия — например, линейная регрессия.
- Без учителя (unsupervised learning). Ответов нет — только объекты. Модель ищет структуру сама: группирует похожих клиентов (кластеризация), сжимает признаки (снижение размерности), находит аномалии.
- С подкреплением (reinforcement learning, RL). Нет ни ответов, ни готового датасета: агент действует в среде, получает награду (reward) и методом проб и ошибок учится действовать так, чтобы награды было больше. Так учат ботов играть в игры, управлять роботами — и дообучают LLM через RLHF.
Train, validation, test — зачем резать данные
Главный риск ML: модель может запомнить обучающие примеры вместо того, чтобы выучить закономерность. Проверять её на тех же данных, на которых учили, — как выдавать студенту на экзамене задачи, которые он уже решал с ответами. Поэтому данные делят на три части:
- Обучающая выборка (train) — на ней модель подбирает параметры.
- Валидационная (validation) — на ней выбирают гиперпараметры (сложность модели, learning rate) и ловят момент, когда модель начинает переобучаться.
- Тестовая (test) — неприкосновенный запас. Её трогают один раз, в самом конце, чтобы честно оценить итоговое качество.
Если гонять тест много раз и подстраивать под него решения, он незаметно превращается во вторую валидацию — и финальная оценка становится оптимистично завышенной. На собеседовании это называют утечкой (leakage) выбора модели.
Обобщение и типы задач
Обобщение (generalization) — способность модели работать на данных, которых она не видела при обучении. Это и есть цель: нам не нужен прогноз цены квартир из обучающей таблицы — их цены и так известны. Разрыв между качеством на train и на новых данных — главный диагностический сигнал (подробнее — в теме про переобучение).
По типу ответа задачи делят на: регрессию (предсказать число: цену, спрос, время доставки), классификацию (выбрать класс: спам или нет, кошка или собака), кластеризацию (сгруппировать объекты без готовых меток) и генерацию (создать новый объект: текст, изображение, код — именно это делают LLM, предсказывая следующий токен). Первые две — обучение с учителем, кластеризация — без учителя, а генерация в современных LLM собирается из всех трёх парадигм: претрейнинг с учителем на текстах и RL-дообучение.
- «Чем ML отличается от классического программирования?» — правила не пишутся вручную, а выводятся из данных через оптимизацию параметров.
- «Приведи примеры задач для каждой парадигмы» — supervised: спам-фильтр, прогноз цены; unsupervised: сегментация клиентов, поиск аномалий; RL: игры, робототехника, RLHF.
- «Зачем отдельные validation и test?» — по валидации подбирают гиперпараметры, значит она «затёрта» этим подбором; тест нужен нетронутым для финальной оценки.
- «Классификация или регрессия?» — смотри на тип ответа: дискретный класс или непрерывное число. Вопрос-ловушка: предсказание вероятности клика — регрессия по форме, но решает задачу классификации.