Машинное обучение: базовая идея
Сдвиг, с которого начинается всё машинное обучение
Машинное обучение это способ получить правило не написанием, а подбором: на вход подают данные и ответы, на выходе получают правило в виде набора чисел, которые называют параметрами. Плохость ответов измеряют функцией потерь, и обучение сводится к поиску параметров, при которых это число наименьшее. Видов обучения три: с учителем на размеченных примерах, без учителя на данных без ответов и с подкреплением через награду за исход.
Stanford CS229, вводные лекции. Dive into Deep Learning, гл. 1 · 22 мин · обновлено 01.10.2026
После урока вы сможете
- Объяснять разницу между написанным правилом и выученным
- Называть три вида обучения и понимать, чем они отличаются
- Понимать, что такое функция потерь и зачем плохость превращают в число
- Видеть, какую цену платят за отказ от явных правил
Попробуйте объяснить словами, как вы отличаете кошку от собаки. Не «ну это же очевидно», а пошагово и так, чтобы по вашей инструкции задачу решил человек, никогда не видевший ни тех ни других. Инструкция должна работать без вашего присутствия.
Уши? У некоторых собак они острые, у некоторых кошек висят. Морда? Хватит десятка пород, чтобы правило поплыло. Возьмите размер, хвост, усы. Каждый признак разваливается на исключениях, и чем дольше вы пишете инструкцию, тем длиннее становится список оговорок.
Вы делаете это безошибочно тысячу раз в день и не можете описать как. Именно с этой стены началось машинное обучение: оказалось, что огромный класс задач мы решаем, не умея объяснить решение. Способ обойти эту стену и составляет предмет урока.
Два способа получить работающую программу
Обычная программа и есть записанное правило. Программист понял задачу, разложил на шаги и записал шаги на языке, который машина исполнит. Расчёт налога, сортировка списка, проверка пароля: человек знает решение, машина его выполняет быстро и без устали.
Такой подход упирается в стену ровно там, где мы сами не знаем правила. Распознать кошку, разобрать речь, перевести фразу, узнать почерк. Во всех этих случаях у нас есть навык и нет инструкции. Инструкцию не написать, зато показать примеры можно.
Машинное обучение переворачивает порядок. Программисту не нужно знать правило: он показывает машине много примеров с ответами и даёт способ подстраиваться под них. Правило машина выводит сама, но не в виде понятного текста, а в виде набора чисел, которые заставляют её отвечать как надо.
Разницу проще всего запомнить так: в обычном программировании на вход подают правило и данные, а получают ответы. В машинном обучении на вход подают данные и ответы, а получают правило. Запомнить порядок стоит: он объясняет и силу подхода, и его цену.
Что значит «подстраиваться»
Слово «выучивает» звучит загадочно, поэтому разберём его до конца. Загадки там нет. У модели есть настраиваемые числа: назовём их параметрами. Их может быть три, а может быть триллион. Каждый параметр работает как ручка, поворот которой чуть меняет ответ модели на любой вход.
Обучение это подбор положений всех ручек так, чтобы ответы на известных примерах совпадали с известными ответами. Всё. Никакого понимания, размышления или намерения в процессе не участвует. Участвует подгонка чисел. Слово «выучивает» после такого разбора теряет всякую загадочность.
Отсюда сразу видно главное ограничение: модель может выучить только то, что содержится в примерах. Если в данных нет чего-то, никакая настройка ручек этого не создаст. Курс будет возвращаться к этому не раз. Почти все неприятности машинного обучения растут из того, что было или чего не было в данных.
Плохость превращают в число
Чтобы крутить ручки осмысленно, нужно знать, стало лучше или хуже. Значит, «хуже» надо уметь измерять, и здесь появляется понятие, без которого дальше нельзя. Функция потерь это число, измеряющее, насколько ответы модели плохи. Чем хуже, тем число больше. Всё обучение сводится к одной задаче: найти положения ручек, при которых это число минимально.
Выбор функции потерь оказывается не технической мелочью, а решением о том, что мы считаем ошибкой. Если модель предсказывает цену квартиры, можно штрафовать за разницу в рублях, а можно за разницу в процентах. Получаются разные модели с разным поведением на дорогом и дешёвом жилье. Если модель ставит диагноз, можно штрафовать пропуск и ложную тревогу одинаково, а можно по-разному, и от этого выбора зависят судьбы людей.
Запомните формулу, к которой курс вернётся в уроках о предвзятости и о бенчмарках, общих наборах задач, на которых сравнивают системы: система оптимизирует ровно то, что вы записали в функцию потерь, а не то, что вы имели в виду. Разрыв между этими двумя вещами и есть источник большинства неприятных сюрпризов. В уроках 14 и 17 он обойдётся дорого.
Так говорят и специалисты, и это удобное сокращение, но за ним нет желания. Есть процедура, которая шаг за шагом двигает числа в сторону меньшего значения функции потерь. Если бы функцию записали наоборот, процедура так же послушно двигала бы их в другую сторону. В этом курсе слова вроде «хочет», «стремится», «понимает» всегда нужно уметь развернуть обратно в механику.
Один и тот же фильтр, два способа
Разберём переход на отсеве спама. У этой задачи есть обе истории. Первые фильтры были написаны правилами: список подозрительных слов, проверка отправителя, счёт восклицательных знаков. Правила составлял человек, читая накопившийся мусор.
Работало это ровно до тех пор, пока рассыльщики не читали те же правила. Слово в чёрном списке заменяли похожим, восклицательные знаки убирали, адрес меняли, и письмо проходило. Каждый обход требовал нового правила, правила накапливались тысячами и начинали ловить обычную почту.
Обучаемый фильтр устроен иначе: ему показывают тысячи писем, помеченных как спам и не спам, а какие признаки важны, он выясняет сам. Никто не пишет «слово „выигрыш“ подозрительно». Модель обнаруживает это в данных, вместе с сотнями примет, которые человек не сформулировал бы никогда. Часть этих примет человеку и в голову бы не пришла.
И заметьте главное преимущество, ради которого всё затевалось: когда рассыльщики меняют приёмы, фильтр не переписывают, а дообучают на свежих письмах. Правило обновляется само, потому что оно и было выведено из данных. Переписывать код при этом не приходится вовсе.
Обратите внимание и на цену, спрятанную в этом описании. Тысячи писем кто-то должен был пометить, а без пометок обучение с учителем не запускается вовсе. Разметка стоит денег и времени, и об этом ниже.
Три вида обучения
Способов показать машине примеры три, и они различаются тем, что именно мы даём вместе с данными. Разница между ними состоит в том, что мы даём вместе с данными.
Обучение с учителем. Даём примеры с правильными ответами: к снимку приложено «есть перелом», к письму «спам», к фразе по-русски её перевод. Самый распространённый и самый требовательный вид: размеченные данные дороги, потому что размечают их люди.
Обучение без учителя. Даём данные без ответов и просим найти структуру: разбить покупателей на группы, заметить необычные транзакции, сжать описание. Правильных ответов нет, и оценивать результат труднее, но и данные не надо размечать.
Обучение с подкреплением. Ответов нет, есть награда за исход: система действует, получает очки и подстраивает поведение. Так учат играть и управлять. Главная трудность в том, что награда приходит поздно и непонятно, какое из сотни действий её заслужило. Языковые модели, которым посвящён модуль IV, устроены хитрее и используют все три подхода на разных этапах, и там это будет разобрано по шагам. Там это будет разобрано по шагам, потому что порядок этапов важен.
Кто размечает данные
О разметке говорят мало, а она составляет половину работы и почти всю её невидимую часть. Чтобы модель училась отличать перелом от нормы, кто-то должен разметить снимки. Чтобы отличать спам, кто-то читает письма. Чтобы описывать картинки, кто-то их описывает. Работа эта невидима, а без неё не запускается ничего.
Занимаются этим люди, и обычно не те, кто потом рассказывает о достижениях. Разметка остаётся массовым трудом, часто вынесенным в страны с низкой оплатой, иногда тяжёлым морально: чтобы система отсеивала жестокие материалы, разметчики их просматривают. Работа эта почти не видна снаружи и почти не упоминается в отчётах о достижениях.
Отсюда следствие, важное для всего курса: данные не природный ресурс, а результат чьей-то работы, со всеми свойствами человеческого труда. В них попадают усталость, разные представления о правильном ответе, инструкции, написанные наспех. Модель выучит и это тоже.
И ещё одно, менее очевидное. Тот, кто пишет инструкцию для разметчиков, фактически определяет, что модель будет считать правильным. Эта инструкция и есть самое влиятельное и самое редко публикуемое место всей системы.
Чем платят за отказ от правил
Подход мощный, но не бесплатный, и честно назвать цену стоит сразу, иначе она всплывёт в уроках о том, что идёт не так. Четыре пункта, и ни один не устраняется деньгами.
Нужны данные, и много. Правило пишется один раз в тишине кабинета. Обучение требует тысяч или миллионов примеров, которые надо собрать, а часто и разметить руками.
Правило получается нечитаемым. Выученное правило это набор чисел. Посмотреть на них и понять, чем модель руководствуется, в общем случае нельзя. Обычную программу можно прочитать и найти ошибку глазами, а с обученной моделью так не выйдет, и целая область занимается тем, чтобы хоть отчасти это исправить.
Ошибки становятся странными. Программа с ошибкой ломается предсказуемо, на определённых входах. Модель ошибается статистически: почти всегда права и вдруг нет, причём объяснить, почему именно здесь, трудно.
Что было в данных, то и выучится. Включая то, чего мы не хотели передавать. Урок 17 показывает, во что это обходится, когда данными служат прошлые решения людей.
Машинное обучение не отменило обычное программирование и не собиралось. Где правило известно и проверяемо, скажем при расчёте налога, начислении процентов, проверке формата документа, обученная модель была бы хуже по всем статьям: дороже, медленнее, непрозрачнее и с ошибками там, где их быть не должно. Выбор подхода определяется тем, знаем ли мы правило.
Обобщение и есть то, ради чего всё
Осталось назвать величину, ради которой затевается любое обучение, и назвать её точно, потому что путают её постоянно. Путают её постоянно, и путаница эта дорого обходится.
Модель нужна не для того, чтобы правильно отвечать на примеры, которые ей показали: ответы на них и так известны, для этого хватило бы таблицы. Модель нужна, чтобы отвечать на то, чего она не видела. Способность переносить выученное на новые случаи называется обобщением, и она остаётся единственной целью всего предприятия.
Отсюда неожиданный вывод: отличный результат на обучающих примерах сам по себе ничего не стоит. Систему, которая просто запомнила все показанные ответы, отличить от системы, что-то понявшей, по обучающим данным невозможно, ведь обе отвечают безупречно. Обе системы отвечают на знакомых примерах безупречно.
Значит, проверять нужно на том, чего модель не видела, и позаботиться об этом надо заранее: спрятать часть данных до начала обучения и не подглядывать. Звучит как мелочь дисциплины, а на деле это несущая конструкция всей области, и урок 6 показывает, что бывает, когда её нарушают. На ней держится всякая честная оценка модели.
Заодно отсюда понятно, почему в машинном обучении так много разговоров про данные и так мало про алгоритмы. Алгоритм подгонки чисел один и тот же для очень разных задач. Различает системы то, на чём их учили и на чём проверяли. Отсюда и перекос разговоров в пользу данных.
Что дальше
Мы условились, что обучение это подбор чисел, при которых функция потерь минимальна. Осталось понять, как именно их подбирают: ручек бывает миллиард, а перебирать их наугад бесполезно даже на самой быстрой машине. Осталось понять, как именно их подбирают. Ответ на удивление прост и разбирается в уроке 4 вместе с тренажёром, где вы проведёте настоящий градиентный спуск и увидите, как та же процедура разлетается, если сделать шаг слишком крупным. Там же видно, как та же процедура разлетается при слишком крупном шаге.
Но сначала будет урок 3 и история о том, как область дважды переоценила себя. Она понадобится позже: без неё нельзя читать ни сегодняшние обещания, ни сегодняшние похороны. Спуск окажется проще, чем можно подумать по названию.
Ключевые работы и результаты
| Stanford CS229 «Machine Learning» | 2018 | Открытый курс с лекциями, конспектами и задачами. Вводные лекции задают разделение на обучение с учителем, без учителя и с подкреплением, которого держится этот курс. |
| A. Zhang, Z. Lipton, M. Li, A. Smola, «Dive into Deep Learning» | 2023 | Открытый учебник под лицензией CC BY-SA 4.0, принятый в пятистах университетах. Глава 1 вводит понятия параметров, функции потерь и обучения как оптимизации. |
Что подтвердилось, а что нет
Подходы отвечают на разные вопросы. Где правило известно и проверяемо, скажем при расчёте налога, проверке формата, начислении процентов, обученная модель проигрывает по всем статьям: дороже, медленнее, непрозрачнее и ошибается там, где ошибок быть не должно. Машинное обучение нужно ровно там, где правило нам самим неизвестно.
Это удобное сокращение, за которым нет желания: есть процедура, двигающая числа в сторону меньшего значения записанной функции потерь. Запиши функцию наоборот, и процедура так же послушно пойдёт в другую сторону. Сокращением можно пользоваться, если умеешь развернуть его обратно в механику, и в этом курсе такое умение требуется постоянно.
Система оптимизирует то, что записано в функции потерь, а не то, что подразумевалось. Разрыв между записанным и подразумеваемым служит источником большинства неприятных сюрпризов машинного обучения, от завышенных результатов на бенчмарках до предвзятых решений. Уроки 14 и 17 показывают, во что это обходится.
Термины
- машинное обучениеmachine learning
- Способ получить правило не написанием, а подбором: на вход подают данные и ответы, на выходе получают правило в виде набора чисел.
- параметрparameter
- Настраиваемое число модели. Обучение сводится к подбору положений всех параметров так, чтобы ответы на известных примерах совпадали с известными ответами.
- функция потерьloss function
- Число, измеряющее, насколько ответы модели плохи: чем хуже, тем больше. Её выбор и есть решение о том, что считать ошибкой, а не техническая мелочь.
- обучение с учителемsupervised learning
- Обучение на примерах с правильными ответами. Требует размеченных данных, которые размечают люди, и потому дороже прочих.
- обучение без учителяunsupervised learning
- Обучение на данных без ответов: система ищет структуру, то есть группы, выбросы, компактное описание. Размечать не нужно, зато труднее оценить результат.
- обучение с подкреплениемreinforcement learning
- Обучение через награду за исход действий. Главная трудность в том, что награда приходит поздно, и неясно, какое из прошлых действий её заслужило.
- искусственный интеллектartificial intelligence
- Область, занимающаяся задачами, для которых нет явного пошагового алгоритма решения. Общепринятого определения через свойства машины не существует.
Практикум · Инструкция, которую невозможно написать
Смысл сдвига чувствуется только на собственной шкуре: пока не попробуешь записать правило, кажется, что оно есть. Задача практикума состоит в том, чтобы упереться в стену своими руками и понять, где именно она стоит.
- Выберите навык, которым владеете уверенно и который применяете к картинке или тексту: отличить свежий хлеб от вчерашнего по виду, понять по письму, что человек раздражён, узнать город по фотографии улицы.
- Напишите инструкцию для человека, который этим навыком не владеет. Только наблюдаемые признаки: никаких «по ощущению» и «сразу видно».
- Дайте инструкцию знакомому вместе с пятью примерами и проверьте, сколько он угадает. Записывайте не результат, а места, где инструкция дала осечку.
- Допишите оговорки под каждую осечку и посмотрите, что стало с длиной текста. Обычно к третьему кругу оговорок больше, чем правил.
- Ответьте письменно на два вопроса: сколько примеров с ответами вы смогли бы собрать за час, и что оказалось дешевле, объяснять правило или показывать примеры. Второй ответ и есть причина, по которой существует машинное обучение.
Вопросы для самопроверки
Чем машинное обучение отличается от обычного программирования по устройству?
- Работает быстрее: те же вычисления перенесли на видеокарты, и правило находится за секунды
- На вход подают данные и ответы, а правило получают на выходе
- Не требует программистов: правило находится само, и писать код больше не нужно
- Использует вероятности вместо точных вычислений: точных вычислений в машинном обучении не бывает
Что такое функция потерь?
- Число, измеряющее, насколько плохи ответы модели: чем хуже, тем больше
- Доля данных, потерянных при обучении
- Скорость забывания моделью старых примеров
- Стоимость обучения в часах вычислений
Банку нужно начислять проценты по вкладу строго по формуле из договора. Что выбрать?
- Обучить модель на истории начислений
- Обучить модель, а формулу оставить для сверки
- Обычную программу: правило известно и проверяемо
- Обучение с подкреплением, награждая за точность
Система разбивает покупателей на группы по поведению, правильных ответов ей никто не давал. Какой это вид обучения?
- С учителем
- С подкреплением
- Ни один: без ответов обучение невозможно
- Без учителя
Какое из ограничений следует прямо из устройства машинного обучения?
- Модель не может ошибаться чаще человека: обучение останавливают, когда её ошибка станет меньше человеческой
- Модель может выучить только то, что содержится в примерах
- Модель нельзя применить к тексту
- Модель работает медленнее обычной программы: ей приходится перебирать обучающие примеры при каждом ответе
Ответы и разбор открываются в самопроверке урока: она считает результат и отмечает урок пройденным. Пройти самопроверку.
Что читать
- Dive into Deep Learning (d2l.ai), гл. 1 «Introduction»: Тот же сдвиг с примерами и без формул. Дальше начинается математика, но первая глава читается как обычный текст.
- Stanford CS229, вводная лекция и конспект к ней: Классическое изложение трёх видов обучения. Конспекты выложены отдельно от видео и читаются быстрее.