Что такое машинное обучение? 🧠
Остановись на секунду и оглянись назад. Чтобы дойти до этого урока, ты прошёл путь, на который у среднего студента технического вуза уходит несколько лет: пределы и непрерывность, производные и дифференциалы, теоремы Ролля, Лагранжа и Коши, правило Лопиталя, ряды и интегралы; векторы, матрицы, собственные значения и разложения линейной алгебры; вероятность от классического определения до формулы Байеса, случайные величины, распределения, центральную предельную теорему, оценку параметров и проверку статистических гипотез; структуры данных и алгоритмы — от массивов и хеш-таблиц до графов, деревьев и динамического программирования; и, наконец, огромный блок теории оптимизации — выпуклые множества и функции, условия Каруша — Куна — Таккера, симплекс-метод, метод Ньютона, квазиньютоновские методы, стохастический градиентный спуск, Adam, эволюционные алгоритмы, имитацию отжига, байесовскую и многокритериальную оптимизацию.
Если у тебя когда-то мелькала мысль «зачем мне столько чистой математики, я же хочу заниматься искусственным интеллектом» — этот урок как раз тот момент, где на этот вопрос появляется честный ответ. Всё, что ты изучил, было не самоцелью, а инструментарием. Начиная с этого урока, курс переходит от математики самой по себе к прикладным основам машинного обучения — а значит, каждый следующий алгоритм, который ты встретишь, будет опираться на что-то уже знакомое. Градиентный спуск, который ты подробно разбирал как метод оптимизации, окажется буквальным механизмом обучения нейросети. Вероятность и статистика, которые казались отдельной дисциплиной, станут языком, на котором формулируются метрики качества и объясняется переобучение. Линейная алгебра — способом компактно описывать признаки объектов как векторы, а модели — как матричные преобразования.
Этот блок курса, «Основы Machine Learning», охватывает уроки с 301 по 325 и закладывает практический фундамент: типы задач машинного обучения, разницу между обучением с учителем и без учителя, переобучение и недообучение, разбиение данных на обучающую, валидационную и тестовую выборки, метрики качества, а затем — конкретные модели, от линейной регрессии до более сложных методов. Но прежде чем разбирать конкретные алгоритмы, нужно разобраться с самим термином. Что вообще значит «машина обучается»? Чем это принципиально отличается от того, что ты делал последние 300 уроков, когда писал алгоритм, доказывал теорему или вычислял производную вручную?
Ответ на этот вопрос звучит обманчиво просто, но за ним стоит идея, которая перевернула представление о том, как вообще можно решать задачи с помощью компьютера. Возьми, например, задачу распознавания спама. Можно ли написать программу, которая отличает спам от нормальной почты, перечислив явные правила — «если письмо содержит слово ‘виагра’, это спам», «если в письме три восклицательных знака подряд, это спам»? Формально можно попробовать. Но спамеры быстро подстроятся, правил наберётся тысячи, они начнут противоречить друг другу, а язык и приёмы обмана будут меняться быстрее, чем ты успеешь их закодировать. Машинное обучение предлагает другой путь: вместо того чтобы вручную прописывать правила, ты показываешь программе тысячи примеров — писем, уже размеченных человеком как «спам» или «не спам» — и позволяешь ей самой найти закономерности, которые отличают одно от другого.
Именно эта смена направления — от «напиши правила» к «покажи примеры» — и есть сердце машинного обучения. В этом уроке мы разберём, откуда взялся сам термин, как его формально определяют, чем он отличается от классического программирования, какие бывают основные типы обучения, почему именно в последние полтора десятилетия эта область пережила взрывной рост, и введём словарь терминов, который будет сопровождать тебя во всех оставшихся уроках курса.
История
Идея о том, что машина могла бы обучаться, а не просто выполнять заранее заданные инструкции, появилась ещё до того, как для неё придумали название. В 1950 году британский математик Алан Тьюринг опубликовал статью «Computing Machinery and Intelligence» («Вычислительные машины и разум»), в которой поставил вопрос, звучавший на тот момент почти провокационно: «Может ли машина думать?» Понимая, что сам вопрос слишком расплывчат для строгого научного обсуждения, Тьюринг предложил заменить его практическим тестом — позже названным его именем, — в котором человек через текстовый диалог пытается отличить собеседника-машину от собеседника-человека. Но не менее важна другая идея из той же статьи, которую сегодня часто упускают: Тьюринг рассуждал не только о том, может ли готовая машина имитировать разумное поведение, но и о том, можно ли построить «детскую машину» (child machine), которая начинает с простой программы и обучается через опыт, подобно тому как обучается ребёнок. Это рассуждение на девять лет опередило появление самого термина «машинное обучение».
Термин появился в 1959 году, когда американский исследователь Артур Сэмюэл, работавший в компании IBM, написал программу, играющую в шашки. Идея программы была необычной для своего времени: вместо того чтобы вручную прописать оценочную функцию для каждой позиции на доске (что теоретически можно было сделать, но потребовало бы огромной ручной работы и глубокого понимания шашечной стратегии), Сэмюэл заставил программу играть саму против себя тысячи партий, запоминать, какие позиции чаще приводили к победе, и постепенно корректировать веса своей внутренней оценочной функции. Через какое-то время программа Сэмюэла обыгрывала своего создателя — не потому, что он написал более умный алгоритм перебора, а потому, что программа научилась оценивать позиции лучше, чем это изначально заложил в неё человек. Именно в статье об этой программе Сэмюэл впервые употребил словосочетание «машинное обучение» (machine learning), дав ему неформальное, но очень ёмкое описание.
Следующие десятилетия область развивалась неравномерно — были периоды бурного интереса и периоды разочарования, известные как «зимы искусственного интеллекта», когда обещания опережали реальные возможности вычислительной техники и объёма доступных данных. Постепенный, но важный сдвиг произошёл в 1990-е годы, когда область стала оформляться как самостоятельная научная дисциплина со строгим математическим аппаратом, а не набором разрозненных эвристик. Символической точкой этого перехода стал учебник Тома Митчелла «Machine Learning» (1997), где формулировка Сэмюэла — интуитивно понятная, но нестрогая — была переформулирована на языке, пригодном для точных рассуждений и доказательств. Именно эту формулировку, наравне с исходной идеей Сэмюэла, мы разберём в следующем разделе.
Два взгляда на одно и то же: определения Сэмюэла и Митчелла
Интуиция
Прежде чем переходить к формальным словам, стоит зафиксировать разницу между «программой, которая выглядит умной» и «программой, которая действительно обучается». Калькулятор умеет безошибочно вычислять сложные выражения — но при этом ничему не учится: если ты дашь ему миллион примеров вычислений, он не станет считать лучше или быстрее, чем после первого запуска. А вот программа распознавания рукописного текста, которую натренировали на десяти тысячах примеров написанных от руки цифр, после этой тренировки начинает справляться с новыми, ранее не виденными цифрами заметно лучше, чем справлялась бы случайно инициализированная версия того же алгоритма. Разница именно в этом: обучение — это измеримое улучшение способности решать задачу, которое происходит благодаря накопленному опыту, а не благодаря тому, что программист вручную дописал ещё одно правило.
Определение
Операционное определение (Артур Сэмюэл, 1959). Машинное обучение — область исследований, которая даёт компьютерам способность обучаться без явного программирования каждого отдельного правила.
Формулировка Сэмюэла интуитивно понятна, но для строгой науки в ней не хватает конкретики: что именно значит «обучаться», как измерить, что обучение произошло, и о каком именно классе задач идёт речь. Эти пробелы закрывает более поздняя, ставшая канонической формулировка.
Формальное определение (Том Митчелл, 1997). Говорят, что компьютерная программа обучается на основе опыта $E$ применительно к некоторому классу задач $T$ и мере качества $P$, если её качество на задачах из класса $T$, измеренное с помощью $P$, улучшается с приобретением опыта $E$.
Эта формулировка ценна именно тем, что превращает расплывчатое «программа научилась» в три конкретных, проверяемых компонента, которые обязательно нужно указать явно для любой ML-задачи:
-
$T$ (task, задача) — что именно программа должна делать: классифицировать письма, предсказывать цену квартиры, распознавать речь;
-
$P$ (performance measure, мера качества) — как именно измеряется успех: доля правильных ответов, средняя ошибка предсказания, выигранные партии;
-
$E$ (experience, опыт) — из чего программа черпает информацию для улучшения: размеченные примеры, партии, сыгранные против себя, накопленные логи поведения пользователей.
Примеры
Пример 1 (историческая программа Сэмюэла). Шашечная программа Сэмюэла отвечает всем трём компонентам определения Митчелла: $T$ — играть партии в шашки, $P$ — доля выигранных партий против контрольных соперников, $E$ — тысячи партий, сыгранных программой против самой себя, по итогам которых корректировалась оценочная функция позиций. Обрати внимание: программа полностью подходит под определение Митчелла, хотя была написана за 38 лет до того, как это определение появилось на бумаге, — формулировка Митчелла не придумывает что-то новое, а формализует то, что интуитивно уже было верно понято Сэмюэлом.
Пример 2 (спам-фильтр). $T$ — классифицировать входящее письмо как «спам» или «не спам»; $P$ — доля писем, классифицированных верно (точность, accuracy), возможно, с отдельным учётом того, насколько дорого ошибиться в каждую из сторон; $E$ — база из тысяч писем, каждое из которых человек заранее пометил как «спам» или «не спам». Чем больше таких размеченных писем видит алгоритм, тем точнее он в среднем классифицирует новые, ранее не виденные письма — то есть его качество $P$ на задаче $T$ действительно растёт с ростом опыта $E$, а значит, это ровно тот случай, который описывает определение Митчелла.
Пример 3 (руль беспилотного автомобиля). $T$ — предсказать угол поворота руля по изображению с камеры; $P$ — среднее отклонение предсказанного угла от угла, который выбрал бы опытный водитель в той же ситуации; $E$ — часы видеозаписей вождения с синхронно записанными действиями водителя. Здесь особенно хорошо видно, зачем вообще нужен именно ML-подход, а не список правил: невозможно перечислить конечный набор явных условий вида «если на дороге вот такой изгиб, поверни руль ровно на столько-то градусов» — слишком много переменных факторов (освещение, погода, разметка, другие машины), чтобы описать их все вручную.
Почему это важно
Тройка $T$, $P$, $E$ — не просто академическая формальность, а рабочий чек-лист, который пригодится в каждом следующем уроке этого блока и в каждом реальном ML-проекте. Прежде чем писать хоть одну строку кода, полезно явно ответить на три вопроса: какую именно задачу мы решаем, как будем измерять успех и откуда возьмём опыт (данные), на которых модель научится. Как ты увидишь в следующих уроках (о метриках качества, о переобучении, о валидации), большая часть типичных ошибок в машинном обучении происходит именно из-за того, что один из этих трёх компонентов был выбран небрежно — например, неверно подобрана метрика $P$, которая не отражает то, что реально важно бизнесу или пользователю.
Машинное обучение против классического программирования
Интуиция
Все 300 предыдущих уроков курса — и, шире, вся классическая парадигма программирования — построены на одном и том же порядке действий: программист придумывает правила (алгоритм), подаёт эти правила вместе с данными на вход компьютеру и получает результат. Хочешь отсортировать список — пишешь правило «сравнивай пары элементов и меняй их местами по такой-то схеме» (быстрая сортировка, сортировка слиянием — ты проходил это в блоке про алгоритмы). Хочешь посчитать налог — пишешь правило «если доход больше такой-то суммы, ставка такая-то». Правила придумывает человек, компьютер их только исполняет.
Машинное обучение переворачивает эту схему. Вместо того чтобы человек придумывал правила заранее, он предоставляет данные вместе с уже известными правильными ответами, а компьютер сам находит правило (точнее, математическую модель), которое связывает одно с другим. Роли меняются местами: то, что раньше было входом (правила), становится выходом процесса обучения.
Определение
Эту разницу удобно записать наглядно, как смену направления стрелки:
Классическое программирование:
Правила (код) + Данные → Результат
Машинное обучение:
Данные + Результаты (правильные ответы) → Правила (модель)
Рабочее сравнение. В классическом программировании программист — источник знания о том, как решать задачу, а компьютер лишь применяет это знание к данным. В машинном обучении источником знания становятся сами данные (точнее, статистические закономерности в них), а компьютер, используя алгоритм обучения, извлекает из них правило (модель), которое затем применяется к новым данным.
Примеры
Пример 1 (эволюция спам-фильтра). Первые спам-фильтры конца 1990-х работали по классической схеме: администраторы вручную писали списки стоп-слов и регулярных выражений. Пока спам был примитивным, это работало сносно. Но по мере того как спамеры начали намеренно искажать слова (например, писать «в1агра» вместо «виагра»), количество нужных правил стало расти быстрее, чем их успевали писать люди, а сами правила — конфликтовать между собой. Переход на ML-классификаторы, обучаемые на размеченных примерах, решил именно эту проблему: не нужно предугадывать все возможные уловки спамеров заранее — модель сама находит статистические закономерности в новых примерах и переобучается, когда появляются свежие данные.
Пример 2 (распознавание рукописных цифр). Представь задачу: по изображению 28×28 пикселей определить, какая цифра от 0 до 9 на нём написана. Формально можно попытаться написать явные правила («если тёмные пиксели образуют замкнутую петлю в верхней половине и прямую линию снизу — это, возможно, девятка»), но почерки настолько разнообразны, что перечислить все варианты вручную попросту невозможно. ML-подход решает задачу иначе: на вход подаётся база из десятков тысяч изображений цифр вместе с правильными метками (классический датасет MNIST), и алгоритм сам выводит закономерности в расположении пикселей, которые статистически связаны с каждой цифрой.
Пример 3 (рекомендательная система). Интернет-магазину нужно порекомендовать пользователю товары, которые ему могут понравиться. Классический вариант — жёсткое правило «если купил товар X, порекомендуй товар Y» — требует, чтобы кто-то вручную прописал такие связи для миллионов пар товаров, и совершенно не учитывает индивидуальные предпочтения конкретного пользователя. ML-подход (коллаборативная фильтрация и её потомки) обучается на истории покупок и оценок миллионов пользователей и сам находит скрытые закономерности вида «пользователи, которым понравился товар X, часто также интересуются товаром Z» — причём находит их даже там, где ни один человек не заметил бы связи напрямую.
Почему это важно
Понимание этой смены направления — ключ к тому, чтобы верно оценивать, где машинное обучение действительно нужно, а где оно избыточно или даже вредно. Если задачу можно решить конечным, обозримым и проверяемым набором правил — налоговый калькулятор, сортировка списка, вычисление статистики по формуле, — классическое программирование почти всегда предпочтительнее: оно быстрее, детерминированно, его легко проверить на правильность и доказать корректность. Машинное обучение оправдано ровно там, где правила либо неизвестны заранее, либо их слишком много, либо они слишком тонкие и контекстно-зависимые, чтобы их можно было явно прописать, — а вместо этого есть достаточно данных с примерами правильных решений.
Три типа обучения — коротко о главном
Интуиция
Опыт $E$ из определения Митчелла может быть устроен принципиально по-разному, и от этого устройства зависит, каким именно способом алгоритм извлекает из него закономерности. Представь три разных способа, которыми учится человек: с учителем, который показывает примеры и сразу говорит правильный ответ; самостоятельно, разглядывая множество объектов и замечая в них скрытую структуру без чьей-либо подсказки; и методом проб и ошибок, получая награду или штраф за свои действия. Ровно эти три сценария и лежат в основе трёх главных типов машинного обучения.
Определение
Обучение с учителем (supervised learning). Алгоритм получает данные, где для каждого примера заранее известен правильный ответ (метка, целевая переменная), и учится предсказывать этот ответ для новых, ранее не виденных примеров.
Обучение без учителя (unsupervised learning). Алгоритм получает данные без каких-либо заранее известных ответов и должен самостоятельно найти в них структуру — например, сгруппировать похожие объекты или выявить, что действительно важно в исходном описании данных.
Обучение с подкреплением (reinforcement learning). Алгоритм (агент) взаимодействует со средой, совершая действия, и получает от среды сигнал вознаграждения; цель — научиться выбирать такие действия, которые максимизируют суммарное вознаграждение в долгосрочной перспективе.
Примеры
Пример 1 (supervised). Предсказание цены квартиры по её характеристикам — площади, числу комнат, району, этажу. У тебя есть база из тысяч уже проданных квартир, для каждой из которых известна и реальная цена продажи (это и есть «учитель», указывающий правильный ответ). Модель учится находить связь между характеристиками и ценой, чтобы затем предсказывать цену для квартир, которые ещё не продавались.
Пример 2 (unsupervised). Интернет-магазин хочет разбить своих покупателей на сегменты по поведению — но заранее никто не знает, сколько сегментов должно быть и как их называть. Алгоритм кластеризации анализирует данные о покупках миллионов пользователей и сам находит группы с похожим поведением («покупают редко, но дорого», «покупают часто и по акциям» и так далее) — без единой заранее заданной метки.
Пример 3 (reinforcement). Программа AlphaGo и её более поздние версии учились играть в го, сражаясь сама с собой миллионы партий: после каждой партии агент получал сигнал «выиграл» или «проиграл» и постепенно корректировал стратегию так, чтобы выигрывать чаще. Никто заранее не размечал «правильный» ход в каждой отдельной позиции — обратная связь приходила только по итогам всей партии целиком, что и есть характерная черта обучения с подкреплением.
Почему это важно
Тип обучения определяет, какие алгоритмы вообще применимы к задаче, как нужно собирать и готовить данные и как измерять успех. Подавляющее большинство практических ML-задач, с которыми ты столкнёшься на старте (регрессия, классификация — уроки этого блока), относится к обучению с учителем именно потому, что для него проще всего собрать данные с заранее известными правильными ответами и проще всего строго измерить качество. Следующие два урока этого блока — «302. Типы задач ML» и «303. Supervised vs Unsupervised» — разберут каждый из этих трёх типов заметно подробнее, включая конкретные алгоритмы и математический аппарат для каждого случая.
Почему ML-бум случился именно сейчас
Интуиция
У человека, впервые сталкивающегося с историей машинного обучения, часто возникает законный вопрос: если термину уже больше шестидесяти лет, а математический аппарат нейросетей (в частности, метод обратного распространения ошибки) известен с 1980-х годов, почему взрывной рост интереса и практических результатов случился именно в 2010-е и 2020-е годы, а не раньше? Ответ не в одном прорывном открытии, а в совпадении сразу трёх факторов, каждый из которых по отдельности развивался десятилетиями, но именно к этому времени вышел на уровень, достаточный для практического успеха.
Определение
Три фактора ML-бума. 1. Доступность больших данных. Интернет, смартфоны, социальные сети и датчики интернета вещей стали генерировать данные в объёмах, немыслимых ещё в 1990-е — размеченные базы изображений, текстов, аудиозаписей, логов поведения пользователей. 2. Вычислительная мощность (GPU). Графические процессоры, изначально созданные для рендеринга компьютерной графики, оказались идеально приспособлены для параллельного перемножения матриц — а именно из таких операций почти целиком состоит обучение нейросетей. Это дало ускорение на порядки по сравнению с обычными процессорами. 3. Развитие алгоритмов. Усовершенствованные методы оптимизации (тот самый Adam, стохастический градиентный спуск с моментом, регуляризация, о которых шёл разговор в предыдущем блоке курса), новые архитектуры нейросетей и приёмы обучения (нормализация, продуманная инициализация весов) сделали возможным успешное обучение куда более глубоких и сложных моделей, чем раньше.
Примеры
Пример 1 (ImageNet и AlexNet, 2012). База данных ImageNet, собранная к 2009 году, содержала более 14 миллионов размеченных изображений — беспрецедентный на тот момент объём данных для задачи классификации изображений. В 2012 году нейросеть AlexNet, обученная на этой базе с использованием GPU, выиграла ежегодное соревнование по распознаванию образов с огромным отрывом от конкурентов, использовавших более традиционные подходы. Этот момент часто называют точкой, с которой началась современная эра глубокого обучения: данные (ImageNet) и вычисления (GPU) сошлись вместе с относительно старой, но плохо масштабировавшейся ранее алгоритмической идеей (свёрточные нейросети).
Пример 2 (голосовые помощники). Распознавание речи существовало десятилетиями и работало относительно плохо. Современные голосовые помощники стали заметно точнее не потому, что кто-то изобрёл принципиально новую математику распознавания звука, а благодаря сочетанию огромных массивов размеченных аудиозаписей, накопленных смартфонами и умными колонками по всему миру, и мощностей дата-центров, способных обучать модели на этих массивах.
Пример 3 (современные большие языковые модели). Системы вроде тех, что лежат в основе современных чат-ботов, обучаются на текстовых корпусах, включающих значительную часть текста, когда-либо опубликованного в открытом доступе в интернете, с использованием кластеров из тысяч специализированных ускорителей вычислений, работающих месяцами. Ни один из трёх факторов — данные, вычисления, алгоритмы — по отдельности не объясняет такие результаты; они работают именно вместе.
Почему это важно
Понимание трёх факторов бума помогает трезво оценивать реальные проекты: если у тебя мало данных, даже самый совершенный алгоритм не сможет выучить надёжную закономерность; если задача требует огромной модели, а вычислительных ресурсов недостаточно, обучение будет непозволительно долгим или вовсе невозможным; а если алгоритм обучения выбран неудачно (что подробно разбиралось в блоке про оптимизацию — сходимость, скорость обучения, локальные минимумы), даже хорошие данные и мощное железо не спасут результат. В последующих уроках этого блока — про переобучение, про размер и качество выборки, про выбор метрик — ты не раз вернёшься именно к этим трём факторам, уже на уровне конкретных практических решений.
Базовый словарь терминов машинного обучения
Интуиция
У любой прикладной дисциплины есть свой словарь, без которого невозможно читать документацию, статьи и обсуждать задачи с коллегами. В машинном обучении этот словарь на удивление компактен — по-настоящему часто используется буквально пять-шесть базовых слов, но путаница именно в них — самая частая причина недопонимания у новичков. Разберём их на одном сквозном примере: предсказание цены квартиры по её характеристикам.
Определение
Признаки (features). Входные переменные, которые описывают объект и на основе которых модель строит предсказание. Для квартиры это, например, площадь, число комнат, район, этаж, год постройки дома.
Целевая переменная (target). То, что модель должна предсказать — правильный ответ, известный на этапе обучения. Для квартиры это её цена продажи.
Модель (model). Математическая функция (обычно с настраиваемыми параметрами), которая принимает на вход признаки и выдаёт предсказание целевой переменной. Например, линейная модель вида $\hat y = w_1 x_1 + w_2 x_2 + \ldots + b$, где $x_i$ — признаки, а $w_i$ и $b$ — параметры, которые подбираются в процессе обучения.
Обучение (training). Процесс подбора параметров модели по имеющимся данным так, чтобы предсказания модели как можно точнее совпадали с известными правильными ответами (это и есть та самая оптимизационная задача, для решения которой в предыдущем блоке курса разбирались градиентный спуск, Adam и другие методы).
Предсказание / инференс (inference). Применение уже обученной модели к новым данным, для которых правильный ответ заранее неизвестен, — собственно, ради чего всё и затевалось.
Примеры
Пример 1 (таблица признаков). Для конкретной квартиры признаки могут выглядеть так: площадь = 54 м², число комнат = 2, район = «центр», этаж = 7 из 12, год постройки = 2015. Целевая переменная для этой же квартиры — цена, за которую она была реально продана, например 8 400 000 рублей. Модель — это функция, которая по первому набору чисел (признакам) пытается предсказать второе число (цену).
Пример 2 (обучение и инференс как два разных этапа). Крупная система распознавания лиц на смартфонах сначала проходит этап обучения: недели вычислений на кластере GPU на миллионах размеченных фотографий, где для каждой пары изображений заранее известно, один ли это человек. Итог этого этапа — набор параметров модели, зафиксированный после обучения. Затем, когда пользователь разблокирует телефон, происходит этап инференса: та же модель с уже зафиксированными параметрами обрабатывает одно новое изображение и выдаёт ответ за десятки миллисекунд — без какого-либо дополнительного обучения в этот момент.
Пример 3 (когда признаки — не числа). Не все признаки изначально выглядят как числа: район квартиры — это слово («центр», «окраина»), а не число. Тем не менее для того, чтобы модель могла с этим работать, такие категориальные признаки нужно превратить в числовое представление (например, закодировать каждый район отдельным числом или набором нулей и единиц) — сам этот процесс подробно разбирается в последующих уроках блока, но сейчас важно запомнить сам факт: признаком может быть что угодно (текст, изображение, звук, категория), но модели в конечном счёте всегда работают с числами.
Почему это важно
Эти пять терминов — признаки, целевая переменная, модель, обучение, предсказание — будут использоваться в буквально каждом из оставшихся 24 уроков этого блока, а дальше и во всём оставшемся курсе. Когда в следующем уроке речь пойдёт о типах задач ML, ты увидишь, что вся классификация задач машинного обучения — регрессия, классификация, кластеризация — по сути строится вокруг того, что представляет собой целевая переменная (число, категория или её отсутствие вовсе). А когда несколькими уроками позже разговор дойдёт до переобучения, окажется, что вся проблема формулируется именно в терминах разницы между качеством модели на данных обучения и качеством на новых данных при инференсе.
Практика: 30 заданий
Базовые задания (1–10)
Задание 1: Определи, что перед тобой — классическое программирование или машинное обучение: программа сортирует список из миллиона чисел по возрастанию с помощью быстрой сортировки (алгоритм из блока про алгоритмы сортировки).
Задание 2: Определи, что перед тобой: программа определяет, является ли фотография кошкой или собакой; для обучения использовались 50 000 фотографий с проставленными вручную метками «кошка» / «собака».
Задание 3: Сформулируй определение машинного обучения по Сэмюэлу своими словами (без прямого цитирования урока) и приведи собственный пример, не встречавшийся в тексте.
Задание 4: Сформулируй $T$, $P$, $E$ по Митчеллу для задачи: «программа предсказывает, купит ли конкретный пользователь интернет-магазина определённый товар в ближайшую неделю, на основе истории его прошлых покупок и просмотров».
Задание 5: Верно или неверно: «Машинное обучение и искусственный интеллект — это одно и то же». Обоснуй ответ.
Задание 6: Приведи пример задачи, где классическое программирование (явные правила) работает лучше машинного обучения, и объясни, почему.
Задание 7: Назови три типа обучения (supervised, unsupervised, reinforcement) и коротко, в одном предложении каждый, опиши их ключевое отличие.
Задание 8: Для сценария «робот-пылесос учится избегать препятствий методом проб и ошибок, получая штраф за каждое столкновение и поощрение за очищенную площадь» — определи тип обучения и обоснуй.
Задание 9: Для сценария «интернет-магазин группирует покупателей на сегменты по покупательскому поведению без заранее известных категорий» — определи тип обучения и обоснуй.
Задание 10: Объясни своими словами, что такое признаки (features) и целевая переменная (target), на примере задачи предсказания цены квартиры.
Средние задания (11–20)
Задание 11: Раньше спам-фильтры писали как набор вручную заданных правил (regex-паттернов на ключевые слова), затем перешли на ML-классификаторы, обученные на размеченных письмах. Объясни, почему со временем классические правила стали неэффективны.
Задание 12: Сформулируй $T$, $P$, $E$ для задачи распознавания рукописного адреса на конверте в почтовом отделении, автоматически сортирующем письма по почтовому индексу.
Задание 13: Банк использует модель для одобрения или отклонения заявок на кредит. Обсуди, почему здесь нельзя просто «довериться модели вслепую», не задумываясь о том, что именно она выучила.
Задание 14: Объясни разницу между обучением (training) и предсказанием (инференсом) на примере: модель тренируется неделю на кластере GPU на миллионах фотографий, а затем распознаёт лицо на смартфоне за 50 миллисекунд. Какие ресурсы нужны для каждого этапа?
Задание 15: Приведи пример, где признаком (feature) выступает текст, изображение или звук, а не число, и кратко опиши, как такие данные превращают в числа для модели.
Задание 16: Проанализируй три фактора ML-бума (данные, вычисления, алгоритмы) на примере современной системы рекомендаций видео (например, в стриминговом сервисе). Какой фактор там, вероятно, оказался решающим?
Задание 17: Классифицируй задачи по типу обучения: а) прогноз погоды на основе исторических данных с известными результатами; б) выявление аномальных банковских транзакций без размеченных примеров мошенничества; в) обучение шахматного бота через самообучение (self-play).
Задание 18: Обсуди, почему шашечная программа Сэмюэла 1959 года формально уже была машинным обучением по определению Митчелла, хотя современных нейросетей и библиотек тогда не существовало.
Задание 19: Приведи контрпример: опиши сценарий, который выглядит как ML (есть данные, есть программа), но на самом деле является просто статистическим отчётом или агрегацией без обучаемой модели и предсказаний на новых данных, и объясни отличие.
Задание 20: Объясни, почему тест Тьюринга (1950) не является определением машинного обучения, хотя часто упоминается в том же историческом контексте.
Продвинутые задания (21–30)
Задание 21: Спроектируй $T$, $P$, $E$ для новой задачи: «умный термостат должен научиться поддерживать комфортную температуру в доме, экономя электроэнергию, подстраиваясь под привычки жильцов». Обсуди, какой тип обучения здесь уместнее всего и почему.
Задание 22: Обсуди с аргументами: можно ли назвать обычную линейную регрессию из курса статистики «машинным обучением»? Свяжи ответ с определением Митчелла.
Задание 23: Объясни, каким образом градиентный спуск, изученный в блоке про оптимизацию, физически используется на этапе «обучение» из определения Митчелла — какой части тройки $T$, $P$, $E$ он соответствует.
Задание 24: Свяжи вероятностный аппарат курса (случайные величины, распределения, оценка параметров) с мерой качества $P$ в машинном обучении — почему метрики вроде accuracy — это, по сути, оценки, а не точные гарантии.
Задание 25: Приведи развёрнутый аргумент: почему нельзя просто «дать модели побольше данных» как универсальное решение всех проблем машинного обучения. Свяжи ответ с понятием репрезентативности выборки из блока статистики.
Задание 26: Обсуди этическую дилемму: модель, обученная на исторических данных о найме сотрудников, воспроизводит смещения (bias) прошлых решений. Объясни это через призму определения Митчелла — что именно «выучила» модель и почему это не «объективная истина».
Задание 27: Сравни классическое программирование и машинное обучение на примере шахматных движков: ранний Deep Blue (1997) в основном использовал явный перебор ходов и написанные вручную эвристики, а современный AlphaZero (2017) обучался игре через самообучение с подкреплением. Есть ли между этими подходами чёткая граница?
Задание 28: Сформулируй в одном абзаце, почему матрицы и векторы (линейная алгебра) — естественный язык для описания признаков в машинном обучении, вспомнив материал предыдущих блоков курса.
Задание 29: Опиши сценарий, в котором один и тот же набор данных можно использовать и для обучения с учителем, и для обучения без учителя — в зависимости от того, какой вопрос ты задаёшь. Приведи конкретный пример с покупательскими данными.
Задание 30 (синтез): Напиши короткое (5–7 предложений) объяснение того, что такое машинное обучение, которое ты мог бы дать другу без технического образования — используя идеи Сэмюэла и Митчелла, но своими словами и с собственным примером.
Частые ошибки
Ошибка 1. Считать, что «машинное обучение» и «искусственный интеллект» — это одно и то же понятие, и использовать термины как взаимозаменяемые.
Как выглядит: в разговоре или тексте машинное обучение называют «просто другим словом для ИИ», не делая различия между ними.
Почему возникает: в массовой культуре и маркетинге оба термина используются почти взаимозаменяемо, а машинное обучение сегодня — самый заметный и успешный подход внутри ИИ, из-за чего границы между понятиями стираются на бытовом уровне.
Как правильно: держать в голове, что ИИ — широкая область (включающая, например, и системы на основе явно заданных логических правил, без всякого обучения на данных), а машинное обучение — один из подходов внутри неё, определяемый именно через улучшение качества с опытом (см. задание 5).
Ошибка 2. Думать, что машинное обучение обязательно означает нейросети и «глубокое обучение», а более простые модели (линейная регрессия, решающие деревья) к нему не относятся.
Как выглядит: фраза «это же просто линейная регрессия, а не настоящее машинное обучение» встречается на удивление часто.
Почему возникает: современные новостные заголовки и общественное внимание концентрируются почти исключительно на глубоких нейросетях и больших языковых моделях, создавая ощущение, что только они и есть «настоящее» ML.
Как правильно: проверять соответствие определению Митчелла напрямую (см. задание 22) — любой алгоритм, который улучшает измеримое качество $P$ на задаче $T$ на основе опыта $E$, является машинным обучением независимо от того, насколько сложна лежащая в его основе модель.
Ошибка 3. Приписывать модели «понимание» происходящего, как будто она рассуждает подобно человеку, а не находит статистические закономерности.
Как выглядит: формулировки вроде «модель поняла, что...» или «нейросеть осознала закономерность» без оговорок о том, что речь идёт о статистическом соответствии, а не о содержательном понимании.
Почему возникает: слово «обучение» само по себе — метафора, заимствованная из описания человеческого познания, и она невольно тянет за собой весь остальной словарь, связанный с сознанием и пониманием.
Как правильно: помнить, что «обучение» модели — это процесс математической оптимизации параметров по данным, а не формирование содержательного понимания в человеческом смысле; это не мешает моделям быть полезными и точными, но важно для трезвой оценки их реальных возможностей и ограничений (задание 26 разбирает, к чему приводит забывание этой разницы).
Ошибка 4. Считать, что модель, выучившая закономерность на исторических данных, тем самым выявила объективную истину или причинно-следственную связь.
Как выглядит: «модель показала, что X вызывает Y», хотя на самом деле модель лишь обнаружила статистическую корреляцию между X и Y в конкретной выборке.
Почему возникает: высокая точность предсказания создаёт ложное ощущение, что найдена глубинная причина явления, а не просто устойчивая ассоциация в данных.
Как правильно: явно различать предсказательную способность модели (насколько хорошо она угадывает $Y$ по $X$) и причинно-следственный вывод (действительно ли $X$ влияет на $Y$) — это разные вопросы, и одна лишь высокая метрика качества $P$ ничего не говорит о причинности (задание 24 связывает это с оценками из блока вероятности и статистики).
Ошибка 5. Полагать, что увеличение объёма данных — универсальное решение любой проблемы с качеством модели, независимо от их источника.
Как выглядит: при плохом качестве модели первая и единственная реакция — «нужно собрать больше данных», без анализа их качества, репрезентативности или разметки.
Почему возникает: в истории ML-бума объём данных сыграл важную роль (см. раздел про факторы бума), из-за чего сложилось упрощённое представление, будто данные решают всё.
Как правильно: сначала проверить качество и репрезентативность уже имеющихся данных (нет ли систематического смещения в способе их сбора, нет ли ошибок разметки) — задание 25 подробно разбирает, почему простое увеличение объёма не устраняет системную проблему в данных, а может её усиливать.
Ошибка 6. Считать, что раз задача выглядит сложной или «интеллектуальной» на вид, для неё точно нужно машинное обучение, а не явный алгоритм.
Как выглядит: попытка обучить модель там, где задача на самом деле имеет конечный, точно известный и юридически проверяемый набор правил (расчёт налога, проверка контрольной суммы документа).
Почему возникает: машинное обучение сейчас на слуху и ассоциируется с прогрессом, из-за чего его иногда выбирают как «модный» инструмент даже там, где классическое программирование справилось бы проще, быстрее и надёжнее.
Как правильно: перед выбором подхода честно спрашивать, можно ли перечислить конечный набор точных правил, — если да, классическое программирование обычно предпочтительнее (см. задание 6 про расчёт налога как пример именно такой задачи).
Главное запомнить
-
Операционное определение Сэмюэла (1959): машинное обучение даёт компьютерам способность обучаться без явного программирования каждого отдельного правила.
-
Формальное определение Митчелла (1997): программа обучается на опыте $E$ применительно к задаче $T$ и мере качества $P$, если её качество на $T$, измеренное $P$, растёт с ростом $E$ — тройка $T$, $P$, $E$ работает как чек-лист для любого ML-проекта.
-
Ключевая смена направления: классическое программирование превращает правила и данные в результат; машинное обучение превращает данные и правильные результаты в правило (модель) — именно это делает ML полезным там, где правила неизвестны заранее или их слишком много.
-
Три типа обучения: с учителем (есть заранее известные правильные ответы), без учителя (структура ищется без готовых ответов), с подкреплением (агент учится через взаимодействие со средой и отложенное вознаграждение) — подробнее каждый тип раскроется в следующих двух уроках.
-
Три фактора ML-бума 2010–2020-х: доступность больших данных, вычислительная мощность GPU и развитие алгоритмов (включая методы оптимизации из предыдущего блока курса) — ни один фактор сам по себе бум не объясняет.
-
Базовый словарь: признаки (входные характеристики объекта), целевая переменная (то, что нужно предсказать), модель (функция с настраиваемыми параметрами), обучение (подбор параметров по данным), предсказание/инференс (применение уже обученной модели к новым данным).
-
Машинное обучение — не то же самое, что искусственный интеллект: ML — один из подходов внутри более широкой области ИИ, определяемый именно через улучшение качества с опытом.
-
Метрика качества $P$ — статистическая оценка, а не абсолютная гарантия: она измеряется на конечной выборке и наследует все ограничения оценок параметров, изученные в блоке статистики.
-
Модель воспроизводит закономерности из опыта $E$, а не объективную истину: если исторические данные содержат смещение, модель, успешно обучившаяся с точки зрения $P$, воспроизведёт и это смещение.
-
Обучение и инференс — два разных по стоимости этапа: обучение требует много данных и вычислений, но выполняется редко; инференс дешевле, но выполняется многократно на новых данных.
Связь с темами курса
Что нужно было знать до этого урока
Этот урок опирается сразу на все крупные блоки, пройденные ранее в курсе, хотя и не требует от тебя вычислений вручную. Из блока математического анализа понадобится общее понимание того, что такое функция и её минимизация (это в точности то, чем занимается этап обучения модели). Из блока линейной алгебры — интуиция про векторы и матрицы как естественный способ описывать признаки объектов (см. задание 28). Из блока вероятности и статистики — понимание того, что оценки, посчитанные на выборке (в том числе метрики качества модели), являются статистическими оценками, а не точными величинами, и понятие репрезентативности выборки (задания 24–25). А из непосредственно предшествующего блока теории оптимизации — конкретные алгоритмы (градиентный спуск, метод Ньютона, Adam, эволюционные и метаэвристические методы), которые и станут «мотором», крутящим процесс обучения почти любой модели, которую ты встретишь дальше в курсе.
Что изучить дальше
Следующий урок, 302 «Типы задач ML», детально разберёт, какими бывают конкретные задачи машинного обучения — регрессия, классификация, кластеризация, снижение размерности и другие — и как тип целевой переменной определяет выбор подходящего типа задачи. Урок 303 «Supervised vs Unsupervised» углубит различие между обучением с учителем и без учителя, представленное здесь лишь конспективно. Урок 304 «Переобучение и недообучение» объяснит, пожалуй, самую важную практическую проблему всего машинного обучения — разрыв между качеством модели на данных, которые она видела при обучении, и качеством на новых данных. А уроки 305–306 про разбиение выборки и кросс-валидацию, и 307–309 про метрики качества, ROC-кривую и confusion matrix дадут строгий инструментарий для измерения того самого $P$ из определения Митчелла, о котором говорилось на протяжении всего этого урока.
Где это нужно в жизни
🤖 ML/AI-инженерия. Тройка $T$, $P$, $E$ — стандартный первый шаг постановки любой практической ML-задачи в индустрии: перед началом любого проекта команда формулирует, что именно предсказывается, как измеряется успех и откуда возьмутся обучающие данные.
📊 Аналитика данных и бизнес-решения. Понимание разницы между классическим программированием и ML помогает аналитику или продакт-менеджеру принимать обоснованное решение о том, нужна ли для конкретной задачи модель или достаточно явных бизнес-правил — вопрос, который прямо экономит время и деньги команды разработки.
⚖️ Этика и регулирование технологий. Осознание того, что модель воспроизводит закономерности исторических данных, а не объективную истину (задание 26), — основа современных дискуссий о справедливости алгоритмов при найме, кредитовании, правоохранительной деятельности и лежит в основе многих актов регулирования ИИ.
🏥 Наука и медицина. Модели, предсказывающие риск заболевания по медицинским данным пациента, — прямое практическое применение всей тройки $T$, $P$, $E$: точная постановка задачи и честная оценка качества здесь имеют цену человеческой жизни, а не просто цифру в отчёте.
Интересные факты
-
Термин «machine learning» Артур Сэмюэл впервые употребил в статье о своей шашечной программе — и, по легенде, ставшей частью истории ИИ, в какой-то момент эта программа действительно обыграла самого Сэмюэла, продемонстрировав, что она превзошла уровень игры своего создателя именно за счёт накопленного опыта самостоятельной игры, а не за счёт более умного алгоритма перебора.
-
Статья Алана Тьюринга 1950 года «Computing Machinery and Intelligence», где был предложен знаменитый тест, содержит менее известный, но не менее важный раздел, посвящённый именно идее «обучающейся машины» (learning machine) — то есть уже тогда, за девять лет до появления самого термина, обсуждалась мысль, что машину разумнее не программировать целиком вручную, а дать ей возможность обучаться подобно ребёнку.
-
Учебник Тома Митчелла 1997 года «Machine Learning» стал одним из первых систематических университетских курсов по этой дисциплине и до сих пор используется как вводный материал во многих учебных программах — формальное определение через $T$, $P$, $E$, разобранное в этом уроке, во многом обязано своей популярностью именно этому учебнику.
-
Победа нейросети AlexNet на соревновании по распознаванию изображений в 2012 году сократила частоту ошибок по сравнению с лучшими предыдущими подходами настолько резко, что многие исследователи в области компьютерного зрения впоследствии называли этот момент переломным для всей отрасли — именно после него крупные технологические компании начали массово инвестировать в глубокое обучение и вычислительные мощности для него.
-
Само слово «обучение» в «машинном обучении» — метафора: строго говоря, ни одна современная модель не обладает пониманием или сознанием в человеческом смысле, а процесс «обучения» — это математическая оптимизация параметров функции по данным; тем не менее эта метафора настолько прижилась, что стала официальным термином всей научной дисциплины.
Лайфхаки
-
Для любой новой задачи, прежде чем думать об алгоритмах, явно выпиши $T$, $P$ и $E$ на бумаге. Если ты не можешь чётко сформулировать хотя бы один из трёх компонентов, вероятно, задача ещё недостаточно продумана, чтобы переходить к её решению.
-
Перед тем как тянуться к машинному обучению, задай себе вопрос: а можно ли решить это конечным набором явных правил? Если да — классическое программирование почти всегда окажется проще, быстрее и надёжнее (задание 6 — хороший ориентир на этот случай).
-
Веди свой личный глоссарий терминов на протяжении всего блока. Пять терминов из этого урока — признаки, целевая переменная, модель, обучение, инференс — будут постоянно комбинироваться с новыми понятиями в следующих уроках, и путаница в базовых словах тормозит понимание куда сильнее, чем кажется на первый взгляд.
-
При столкновении с любым эффектным ML-результатом задавай себе вопрос «а что именно система выучила — истину или закономерность конкретных данных?» Эта привычка страхует от переоценки возможностей модели (см. разбор задания 26 про модель найма).
-
Возвращайся к трём факторам ML-бума (данные, вычисления, алгоритмы) при оценке любого нового практического проекта. Если один из трёх факторов у тебя явно недостаточен — например, данных мало, — стоит сначала честно оценить, реалистично ли вообще ожидать хорошего результата от модели, прежде чем тратить время на подбор архитектуры.
-
Не бойся признавать простые модели «настоящим машинным обучением». Линейная регрессия и логистическая регрессия — рабочие лошадки индустрии, и понимание их через призму определения Митчелла (задание 22) избавляет от ложного ощущения, что нужно сразу браться за нейросети.
Ты только что закрыл последнюю страницу долгого математического фундамента и открыл первую страницу его практического применения. Всё, чему ты научился за прошедшие триста уроков — интуиция для пределов и производных, строгость доказательств через теоремы о среднем значении, язык векторов и матриц, вероятностное мышление, алгоритмическая эффективность и, конечно, вся теория оптимизации, — теперь не абстрактный багаж, а набор инструментов, которые ты будешь буквально узнавать в действии на каждом следующем шаге: в градиентном спуске, минимизирующем ошибку модели, в статистических гарантиях метрик качества, в матричных операциях, из которых состоит любая современная модель. Следующие уроки этого блока шаг за шагом превратят определения из этого урока в конкретные, работающие алгоритмы — а ты уже знаешь главное: машинное обучение начинается не с кода и не с библиотек, а с честного ответа на три простых вопроса — какую задачу ты решаешь, как измеряешь успех и откуда возьмётся опыт, на котором всё это будет учиться.
Понял тему? Закрепи в боте! 🚀
Попрактикуйся на задачах и получи персональные рекомендации от AI
💪 Начать тренировку