В шесть вечера школьное здание почти пусто, но счётчик электроэнергии вдруг показывает новый пик. Диспетчер видит на экране предупреждение: «вероятность перегрузки через час — 0,84». Кто сделал это утверждение — программа, модель или целая система? И какой именно факт позволил назвать её интеллектуальной?

Вечерний пик

Представим обычный ноябрьский четверг. В 18:00 заканчивается олимпиадный кружок, в мастерской заряжают аккумуляторы роботов, на кухне включают посудомоечную машину, а на улице резко холодает. Школьный счётчик передаёт показания каждые пятнадцать минут. Небольшая программа должна предупредить инженера, если через час ожидается нагрузка выше 72 кВт.

У задачи есть по меньшей мере три разумных решения.

Первое — жёсткое правило. Если сейчас холоднее 5C-5^\circ\mathrm C, после уроков работают два кружка и текущая нагрузка уже выше 60 кВт, показать предупреждение. Все пороги выбраны человеком. Система может быть сложной: учитывать десятки исключений, календарь каникул и разные корпуса, но её правило всё равно записано заранее.

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

Третье — система с действием. Она не только предсказывает пик, но и предлагает перенести зарядку на 20:00. Если инженер соглашается, будущая нагрузка меняется. Завтрашние данные уже описывают мир, в который вмешалась вчерашняя рекомендация. Здесь модель стала частью замкнутого контура.

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

  1. что было измерено;
  2. какое правило превратило измерение в прогноз;
  3. откуда взялись числа внутри правила;
  4. по какому критерию оценили ошибку;
  5. что произошло в мире после ответа.

Слово «ИИ» останется в учебнике, но мы не позволим ему заменять объяснение. Оно полезно как название области, объединяющей методы представления знаний, обучения, поиска и принятия решений. Оно становится вредным, когда одним словом пытаются ответить на четыре разных вопроса: обучалась ли система, насколько она автономна, хорошо ли она решает новые задачи и безопасно ли её действие.

Четыре вопроса вместо одного ярлыка

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

Отсюда следуют четыре независимые оси разговора.

ВопросЧто именно выясняемКакое свидетельство нужно
Происхождение правилазаписано ли оно целиком или часть параметров найдена по даннымописание алгоритма обучения и выборки
Переноссохраняется ли качество на новых случаяхотдельный тест, выбранный до просмотра ответов
Автономностьможет ли система менять мир без подтверждениясхема прав, отмены и человеческого контроля
Цена ошибкиодинаковы ли последствия разных промаховпотери, ограничения и разбор конкретных сценариев

Таблица важнее спора о границе термина. Если два человека по-разному называют навигатор «ИИ», но одинаково описывают его данные, обучение, тест и право перестраивать маршрут, инженерное разногласие почти исчезает. Если же оба согласны с ярлыком, но один считает ответ советом, а другой — командой автомобилю, разногласие опасно.

Наконец, нельзя смешивать модель и продукт. Модель принимает вход xx и возвращает число y^\hat y. Продукт решает, когда вызвать модель, как обработать пропуск, какой порог применить, что показать человеку, где записать результат и что делать при сбое сети. Научное исследование добавляет ещё один слой: какую гипотезу проверяет получившийся результат и можно ли повторить опыт.

Такое разделение кажется педантичным только до первого происшествия. Фраза «модель дала 95% точности» ничего не говорит о том, была ли правильно подключена камера, не перепутаны ли единицы, не подменён ли тест, какая группа получила оставшиеся 5% ошибок и имела ли система право действовать.

Фиксированное правило и правило из данных

Пусть у письма вычислен один признак xx: доля ссылок в тексте. Мы хотим предсказать метку yy, где y=1y=1 означает спам, а y=0y=0 — обычное письмо. Возьмём семейство пороговых правил

ft(x)={1,xt,0,x<t.f_t(x)= \begin{cases} 1, & x\ge t,\\ 0, & x<t. \end{cases}

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

Рассмотрим восемь наблюдений, отсортированных по xx:

ii12345678
xix_i0,080,180,290,410,550,660,780,91
yiy_i00010111

При t=0,50t=0{,}50 правило ошибается на четвёртом письме: его доля ссылок 0,41, однако метка равна 1. Оно ошибается и на пятом? Нет: 0,550,500{,}55\ge0{,}50, поэтому прогноз равен 1, а истинная метка — 0. Итого две ошибки из восьми.

Чтобы записать этот подсчёт формулой, введём индикатор 1[условие]\mathbf 1[\text{условие}]: он равен 1, когда условие истинно, и 0 в противном случае. Тогда доля ошибок порогового правила на нашей таблице равна

R^(t)=18i=181 ⁣[ft(xi)yi].\widehat R(t)= \frac{1}{8}\sum_{i=1}^{8} \mathbf 1\!\left[f_t(x_i)\ne y_i\right].

Шляпка над RR напоминает: это оценка по конечной выборке, а не вечное свойство правила. Для t=0,50t=0{,}50 получаем R^=2/8=0,25\widehat R=2/8=0{,}25.

Как найти лучший порог, не двигая его наугад? Прогноз меняется только тогда, когда tt пересекает одно из наблюдаемых значений xix_i. Значит, достаточно проверить интервалы между соседними точками, а также области левее первой и правее последней. Для восьми различных xix_i существует не более девяти разных разбиений выборки. Мы свели бесконечное множество вещественных порогов к конечному перебору.

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

Рисунок шире экрана — проведите по немуОткрыть целиком ↗
Ступенчатая зависимость доли ошибок от порога с несколькими равными минимумами
Рис. 1.1. Эмпирический риск порогового правила

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

Здесь появляется первая важная осторожность. Если выбрать tt по этим восьми письмам и на них же сообщить минимальную ошибку, одна и та же информация использована дважды: сначала для выбора, затем для похвалы. Такая оценка обычно оптимистична. Нужны новые письма, которые не участвовали в подборе.

От одного порога к общей записи

Пусть теперь объект описывается вектором признаков x=(x(1),,x(d))x=(x^{(1)},\ldots,x^{(d)}), а модель имеет параметры θ=(θ1,,θm)\theta=(\theta_1,\ldots,\theta_m). Работа уже обученной модели записывается коротко:

y^=fθ(x).\hat y=f_\theta(x).

Эта формула скрывает разделение труда. Разработчик выбирает семейство функций fθf_\theta, измеряемые признаки, допустимые параметры и процедуру поиска. Обучающая выборка влияет на найденные значения θ\theta. В линейном прогнозе нагрузки

y^=θ0+θ1T+θ2C+θ3P\hat y = \theta_0+ \theta_1\,T+ \theta_2\,C+ \theta_3\,P

TT может означать температуру, CC — число занятий, PP — текущую нагрузку. Выбор именно этих трёх величин принадлежит постановке задачи. Коэффициенты θj\theta_j можно найти по историческим строкам.

Чтобы сравнивать прогноз с известным ответом yy, вводят функцию потерь L(y^,y)L(\hat y,y). Для числового прогноза это может быть абсолютная ошибка y^y|\hat y-y| или квадрат ошибки (y^y)2(\hat y-y)^2. Для классификации — индикатор неверного класса или более гладкая функция, учитывающая уверенность. Средняя потеря на nn примерах называется эмпирическим риском:

R^n(θ)=1ni=1nL ⁣(fθ(xi),yi).\widehat R_n(\theta)= \frac1n\sum_{i=1}^{n} L\!\left(f_\theta(x_i),y_i\right).

Обучение часто формулируют как поиск параметров с малым эмпирическим риском:

θarg minθΘR^n(θ).\theta^\star\in \operatorname*{arg\,min}_{\theta\in\Theta} \widehat R_n(\theta).

Знак \in здесь выбран намеренно. Минимум может достигаться в нескольких точках, как в примере с порогом. Множество Θ\Theta описывает допустимые параметры. Оно может быть конечным списком, отрезком, всей плоскостью или пространством миллионов весов.

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

Модель — только один узел

Вернёмся к школьной нагрузке. Счётчик измеряет электрическую мощность. Таблица объединяет показания с погодой и расписанием. Модель выдаёт прогноз. Правило принятия решения сравнивает прогноз с порогом. Инженер или автоматика переносит часть потребления. Изменившееся потребление снова попадает в счётчик.

Рисунок шире экрана — проведите по немуОткрыть целиком ↗
Четыре блока наблюдение, модель, решение и изменившийся мир соединены стрелками, обратная связь возвращается к наблюдению
Рис. 1.2. Модель внутри замкнутого контура

Стрелка обратной связи — не декоративный цикл. После действия следующая строка таблицы описывает уже изменившийся мир. Ошибка возможна в данных, цели, проверке или действии, даже если вычисление модели выполнено безупречно.

Рисунок заставляет различать четыре уровня.

Наблюдение — не сам мир, а результат измерительной процедуры. Счётчик имеет точность, частоту опроса, единицы и моменты пропуска. Если показание за 18:00 фактически записано в 18:07, а расписание относится к началу часа, объединение таблиц требует решения.

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

Решение переводит число в действие. Вероятность 0,84 сама по себе ничего не переносит. Нужен порог, правило приоритета, ограничение, подтверждение человека или автоматический исполнитель.

Мир после решения отвечает на вмешательство. Зарядку перенесли — пик стал ниже, но появился позже. Люди узнали правило фильтра — изменили письма. Водители получили один маршрут — пробка переместилась. Следующие данные несут след самой системы.

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

Для полного описания полезно составить короткий паспорт:

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

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

Строка таблицы не падает с неба

Пусть счётчик выдаёт одно показание каждые пятнадцать минут, а прогноз нужен на час вперёд. Можно ли считать объектом одно показание? Не всегда. Для прогноза в 18:00 мы, вероятно, соберём несколько величин:

xi=(Ti,hi,di,Ci,Pi,Pi1,Pi2,Pi3),x_i= \bigl( T_i,\, h_i,\, d_i,\, C_i,\, P_i,\, P_{i-1},\, P_{i-2},\, P_{i-3} \bigr),

где TiT_i — температура, hih_i — час суток, did_i — день недели, CiC_i — число занятий, а Pi,,Pi3P_i,\ldots,P_{i-3} — четыре последних показания нагрузки. Ответом сделаем

yi=Pi+4,y_i=P_{i+4},

то есть нагрузку через час. Теперь строка ii — не один физический факт, а конструкция из нескольких источников и моментов времени.

Первая опасность — утечка будущего. Если признак «суточный максимум» был вычислен по всем показаниям дня, то для прогноза в 10:00 он использует и значения после 10:00. Таблица выглядит аккуратно, модель получает высокую точность, но в реальном запуске такого признака ещё нет.

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

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

Четвёртая опасность — изменение смысла столбца. После замены счётчика значение power стало средней мощностью за интервал, а раньше было мгновенным показанием в конце интервала. Название и единица «кВт» не изменились, смысл — изменился.

Эти проблемы не являются «грязью, которую потом почистим». Они определяют математическую задачу. Если мы изменили момент, к которому относится xix_i, или способ получения yiy_i, мы изменили совместное распределение пары (X,Y)(X,Y). Следовательно, изменился смысл ожидаемой ошибки.

Для каждой переменной полезно ответить на пять вопросов:

  1. Кто и каким прибором её измеряет?
  2. В какой момент она становится доступна?
  3. В каких единицах и с какой точностью записана?
  4. Почему бывают пропуски?
  5. Может ли решение системы изменить её будущее значение?

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

Сначала соперник, потом чемпион

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

P^t+1=Pt23,\widehat P_{t+1}=P_{t-23},

то есть «нагрузка через час будет равна нагрузке в тот же час вчера». Второе:

P^t+1=Pt167,\widehat P_{t+1}=P_{t-167},

то есть «повторим тот же час прошлой недели». Эти правила почти ничего не «понимают», зато задают базовую линию, или baseline.

Сравнение с baseline защищает от впечатляющих, но пустых чисел. Ошибка 4,7 кВт не выглядит ни хорошей, ни плохой без масштаба задачи. Если недельное правило даёт 11 кВт, модель действительно нашла полезную структуру. Если оно даёт 4,8 кВт, выигрыш 0,1 кВт может исчезнуть при следующем месяце, тогда как простое правило дешевле, понятнее и устойчивее к сбоям.

Но «на одной проверке» — важная оговорка. Временные данные нельзя бездумно перемешивать. Соседние часы похожи; расписание повторяется; будущий период может содержать новое оборудование. Если случайно отправить строки в обучение и тест, модель увидит почти копии тестовых ситуаций в прошлом и будущем. Такая оценка отвечает на искусственный вопрос: насколько хорошо мы восстанавливаем случайно спрятанные строки из уже известной эпохи.

Для задачи запуска нужен другой вопрос: насколько хорошо правило, построенное к определённой дате, работает после этой даты? Поэтому время разрезают последовательно:

  • ранний период — обучение параметров;
  • следующий период — выбор признаков, порогов и других настроек;
  • самый поздний период — одна итоговая проверка.
Рисунок шире экрана — проведите по немуОткрыть целиком ↗
Почасовой ряд разделён вертикальными границами на раннее обучение, более позднюю настройку и самый поздний тест
Рис. 1.3. Временное разбиение сохраняет направление прогноза

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

Пусть данные идут с 1 сентября по 31 мая. Один возможный протокол:

  • обучение: 1 сентября — 28 февраля;
  • настройка: 1 марта — 30 апреля;
  • тест: 1 мая — 31 мая.

Границы не священны. Их выбирают по сезонности, объёму данных и сценарию применения. Если модель должна переживать зимний холод, тест только на тёплом мае не проверяет главную трудность. Можно использовать несколько временных окон: обучаться на раннем периоде и проверять на каждом следующем. Но последний отрезок всё равно стоит сохранить нетронутым до окончания выбора.

Предположим, ученик попробовал десять наборов признаков и выбрал лучший по майской ошибке. Даже если параметры каждой модели обучались только до апреля, май повлиял на выбор семейства. Сообщать май как «невиданный тест» нельзя. Это тот же эффект, что у порога: перебор подгоняет параметры вместе с решениями исследователя.

Чтобы сравнение было воспроизводимым, до запуска фиксируют:

  1. календарные границы;
  2. формулу метрики;
  3. список baseline;
  4. правило обработки пропусков;
  5. максимальное число попыток настройки;
  6. условия, при которых результат считается практически полезным.

Последний пункт особенно важен. «Модель лучше на 0,1 кВт» — статистический факт на конкретной таблице. Инженерное решение требует порога полезности: например, уменьшение MAE хотя бы на 8%, отсутствие ухудшения вечерних пиков и время вычисления меньше секунды.

Ошибка на выборке и ошибка в мире

Эмпирический риск R^n(θ)\widehat R_n(\theta) вычисляется по конечному набору. Пользователя интересует ожидаемая потеря на будущей паре случайных величин (X,Y)(X,Y):

R(θ)=E(X,Y)P[L ⁣(fθ(X),Y)].R(\theta)= \mathbb E_{(X,Y)\sim P} \left[L\!\left(f_\theta(X),Y\right)\right].

Распределение PP здесь не обязательно известно формулой. Это сокращённая запись механизма, порождающего будущие случаи: времена суток, погоду, расписания, поведение людей и работу датчиков. Тестовая выборка даёт ещё одну оценку R(θ)R(\theta), но не превращается в само распределение.

Окончание определения принципиально. Модель, обученная на одной школе, может прекрасно обобщать на новые недели той же школы и плохо — на другую школу. Это не логическое противоречие. Слово «новый» всегда требует уточнения: новый час, человек, город, прибор, сезон или тип события?

Если потери ограничены между 0 и 1 и тест состоит из независимых наблюдений, разброс среднего порядка 1/n1/\sqrt n. Это не точная универсальная формула доверительного интервала, а масштаб. Увеличение теста в четыре раза уменьшает типичный шум оценки примерно вдвое, а не в четыре раза.

Для доли ошибок p^=k/n\hat p=k/n грубая стандартная ошибка равна

se(p^)p^(1p^)n.\operatorname{se}(\hat p)\approx \sqrt{\frac{\hat p(1-\hat p)}{n}}.

Если классификатор ошибся 20 раз на 80 объектах, p^=0,25\hat p=0{,}25, а

se(p^)0,250,75800,048.\operatorname{se}(\hat p)\approx \sqrt{\frac{0{,}25\cdot0{,}75}{80}} \approx0{,}048.

Разумно ожидать неопределённость в несколько процентных пунктов, а не рассказывать о точности до сотых процента. При малом nn, редких событиях и зависимых наблюдениях нужны более аккуратные методы, но уже эта оценка защищает от ложной точности.

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

Почему перебор моделей требует больше данных

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

Пусть потери лежат между 0 и 1, а тестовые объекты независимы и одинаково распределены. Для одного заранее зафиксированного правила ff неравенство Хёффдинга даёт

P(R^n(f)R(f)>ε)2e2nε2.\mathbb P\left( \left|\widehat R_n(f)-R(f)\right|>\varepsilon \right) \le 2e^{-2n\varepsilon^2}.

Смысл правой части прост: вероятность большого случайного расхождения эмпирической и ожидаемой ошибки убывает экспоненциально с размером теста. Пока не будем доказывать само неравенство Хёффдинга. Нас интересует, что произойдёт при выборе из конечного семейства F={f1,,fM}\mathcal F=\{f_1,\ldots,f_M\}.

Возьмём n=1000n=1000, M=100M=100 и δ=0,05\delta=0{,}05. Правая часть границы примерно равна

ln400020000,064.\sqrt{\frac{\ln 4000}{2000}}\approx0{,}064.

Гарантия довольно груба: она разрешает расхождение около 6,4 процентного пункта и ничего не знает о близости правил друг к другу. Но она показывает важную структуру. Размер теста находится в знаменателе под корнем, а число вариантов входит под логарифмом. Увеличить семейство в тысячу раз — не то же самое, что увеличить неопределённость в тысячу раз; однако бесплатного перебора нет.

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

Эта маленькая теорема связывает три темы курса: вероятность, сложность выбора и честную проверку. Позже более тонкие оценки заменят простое число MM характеристикой богатства семейства. Пока достаточно помнить качественный вывод: чем свободнее мы искали удачное правило, тем строже должен быть независимый экзамен.

Потеря модели и цена решения

До сих пор функция потерь L(y^,y)L(\hat y,y) выглядела как техническая мера расхождения. Но модель обычно выдаёт число, а система совершает действие. Между ними находится правило решения. Смешивать эти два уровня нельзя.

Пусть модель оценивает вероятность вечернего пика:

p(x)=P(Y=1X=x).p(x)=\mathbb P(Y=1\mid X=x).

Для обучения вероятности можно использовать log-loss:

L(p,y)=ylnp(1y)ln(1p).L(p,y)= -y\ln p-(1-y)\ln(1-p).

Если истинный ответ y=1y=1, потеря равна lnp-\ln p: она велика при уверенном неверном прогнозе p0p\approx0 и мала при p1p\approx1. Если y=0y=0, получаем ln(1p)-\ln(1-p). Такая потеря поощряет осмысленные вероятности, но не говорит, при каком pp переносить зарядку.

Решение зависит от последствий. Допустим, ложная тревога стоит 2 условные единицы: сотрудник зря проверит щитовую. Пропущенный пик стоит 12 единиц: сработает дорогая защита. Обозначим действия через a=1a=1 — «предупредить» и a=0a=0 — «не предупреждать».

Ожидаемая цена предупреждения при вероятности пика pp равна

C(a=1p)=2(1p),C(a=1\mid p)=2(1-p),

потому что расходы возникают только если пика нет. Цена молчания:

C(a=0p)=12p.C(a=0\mid p)=12p.

Предупреждать выгоднее, когда

2(1p)<12p,p>214=170,143.2(1-p)<12p, \qquad p>\frac{2}{14}=\frac17\approx0{,}143.

Порог оказался гораздо ниже привычных 0,5. Это не означает, что модель стала «более тревожной». Вероятность осталась той же; асимметричная цена потребовала другого решения.

Рисунок шире экрана — проведите по немуОткрыть целиком ↗
Слева две кривые логарифмической потери для пика и обычного часа; справа прямые ожидаемой цены предупреждения 2 умножить на 1 минус p и молчания 12p пересекаются при p равном одной седьмой
Рис. 1.4. Функция потерь обучает прогноз, ожидаемые цены выбирают действие

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

У реальной системы матрица редко исчерпывает последствия. Перенос нагрузки может мешать кружку, ускорять износ батарей, нарушать вентиляцию или создавать поздний отложенный пик. Некоторые требования разумнее задавать не штрафом, а ограничением:

минимизироватьE[стоимость энергии],при условияхCO21000 ppm,20CTкласс24C,критические устройства не отключаются.\begin{aligned} \text{минимизировать}\quad& \mathbb E[\text{стоимость энергии}],\\ \text{при условиях}\quad& \mathrm{CO_2}\le1000\ \text{ppm},\\ &20^\circ\mathrm C\le T_{\text{класс}}\le24^\circ\mathrm C,\\ &\text{критические устройства не отключаются}. \end{aligned}

Почему не просто добавить большой штраф? Потому что коэффициент придётся обосновать, а достаточно большой штраф может сделать оптимизацию численно неудобной. Кроме того, жёсткое требование безопасности лучше видно как требование, а не как одна из слагаемых, которой система иногда «выгодно» пожертвовать.

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

Это не аргумент против метрик. Без метрики обучение и проверка невозможны. Аргумент направлен против одиночной метрики без ограничений и наблюдения побочных эффектов. Хорошая постановка содержит:

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

После запуска меняется задача

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

Сдвиг может происходить в разных местах. Изменилось распределение входов P(X)P(X): стало больше поздних часов с занятиями. Изменилась связь ответа с входом P(YX)P(Y\mid X): новое оборудование потребляет иначе при тех же признаках. Изменилась измерительная процедура: датчик откалибровали. Наконец, система сама изменила данные решениями.

Рисунок шире экрана — проведите по немуОткрыть целиком ↗
После вертикальной линии смены расписания ошибка обучаемой модели растёт, а простая недельная базовая линия стареет медленнее
Рис. 1.5. Качество является функцией времени

Сохранённый старый тест продолжает показывать красивое число, потому что в нём ничего не изменилось. Живой мониторинг нужен не вместо честного теста, а для другого вопроса: остаются ли условия запуска похожими на условия проверки?

Все ряды на рисунке 1.5 синтетические и воспроизводятся при фиксированном seed = 2026. Красная линия — девятидневное скользящее среднее модельной ошибки. Полупрозрачная полоса — не доверительный интервал, а заданный автором коридор чувствительности m(t)±s(t)m(t)\pm s(t) вокруг красной линии, где

s(t)=0,38+0,012max(t72,0) кВт.s(t)=0{,}38+0{,}012\max(t-72,0)\ \text{кВт}.

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

На рисунке более сложная модель была лучше до смены расписания, но быстрее потеряла преимущество. Это не универсальный закон «простое всегда надёжнее». Смысл другой: дополнительные закономерности — дополнительные предположения о стабильности мира. Иногда они дают большой выигрыш; иногда становятся точками поломки.

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

Полезно заранее записать события повторной проверки:

  • замена или калибровка датчика;
  • изменение расписания, тарифа или оборудования;
  • обновление модели или правила порога;
  • заметный рост пропусков;
  • появление новой группы пользователей;
  • действие системы стало чаще отменяться человеком;
  • показатели вышли за диапазон обучения.

Есть более тонкая трудность. Пусть модель предупредила о пике, инженер перенёс зарядку, и пик не произошёл. Была ли тревога ложной? Наблюдаемое будущее не показывает, что случилось бы без решения. Для оценки нужен контрфактический вопрос. На одном и том же часе невозможно одновременно перенести и не перенести зарядку.

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

Живая иллюстрация 1.1. Прогноз внутри обратной связи

Загружается живая иллюстрация…

В лаборатории серая пунктирная линия — нагрузка, которая возникла бы без переноса. Синий ряд — то, что увидел счётчик после действия. Красная линия — прогноз модели, обученной на старом расписании. Переключите систему из режима «только прогноз» в «автодействие». Живая MAE может измениться даже при неизменной модели, потому что ответ теперь содержит след решения.

Здесь один шаг равен часу, поэтому сумма почасовых значений мощности численно равна энергии в кВт·ч. Если система снимает с часа tt величину qtq_t, то счётчик видит

yt=zt+rtqt,y_t=z_t+r_t-q_t,

где ztz_t — потребность без решения, а rtr_t — переносы из прошлых часов. Из каждого qtq_t доля 0,48qt0{,}48q_t возвращается через час, а оставшиеся 0,52qt0{,}52q_t — через два часа. Поэтому ничего не исчезает: показатель «баланс энергии с хвостом» учитывает и переносы, ушедшие за правую границу 96-часового графика, и при любой настройке равен нулю с точностью округления. В режиме совета до действия доходит 45% рекомендаций; ползунок исполнения дополнительно масштабирует величину переноса.

Синтетический шум детерминирован фиксированным seed = 2026, так что одинаковые положения регуляторов дают один и тот же ряд. Это часть протокола воспроизводимости, а не обещание, что реальная школа шумит именно так.

Увеличьте силу смены расписания. Старая тестовая ошибка останется прежней: старый тест не переписывается. Ошибка после запуска вырастет. Затем уменьшите порог пика. Система начнёт чаще переносить нагрузку; превышения могут сократиться, но объём вмешательства и отложенные пики вырастут. Ни один из показателей не заменяет остальные.

Обучаемость и автономность

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

Рисунок шире экрана — проведите по немуОткрыть целиком ↗
Калькулятор, QR-сканер, шлагбаум, фильтр спама, подсказка врачу, автопилот и агент закупок расположены на плоскости обучаемости и автономности
Рис. 1.6. Происхождение правила и автономность действия — разные координаты

Координаты примеров не претендуют на паспорт конкретного продукта. Полезное обсуждение начинается с аргумента: какая часть правила обучена и какое действие происходит без подтверждения?

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

Положение определяется алгоритмом и организацией. Один и тот же классификатор дефектов может подсвечивать снимок оператору или автоматически останавливать конвейер. Модель одинакова, вертикальная координата разная. Поэтому оценка риска не заканчивается карточкой модели.

Высокая автономность требует:

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

Низкая автономность тоже не гарантирует безопасность. Совет может быть настолько убедительным или частым, что человек перестанет его проверять. Интерфейс способен превратить формальное «решает человек» в автоматическое согласие. Значит, измерять надо реальное поведение, а не наличие кнопки подтверждения.

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

ИИ как научный инструмент

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

Рассмотрим линейную модель

yi=θ0+θ1xi+εi.y_i=\theta_0+\theta_1x_i+\varepsilon_i.

После оценки параметров остаток

ri=yi(θ^0+θ^1xi)r_i=y_i-(\widehat\theta_0+\widehat\theta_1x_i)

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

Хорошая модель порождает прогноз и диагностический остаток. Ошибка становится новым наблюдением. Эта линия продолжится в эксперименте Галилея, где рисунок остатков заставит сравнить идеализированное уравнение движения с реальным измерением.

Научная честность требует сохранить:

  1. исходные данные и их происхождение;
  2. преобразования и исключённые строки;
  3. код или точное описание вычисления;
  4. случайные начальные состояния;
  5. все сравниваемые модели, а не только победителя;
  6. отрицательные и неоднозначные результаты;
  7. версию среды, библиотек и оборудования.

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

Исследовательская модель отличается от оракула ещё одним свойством: хороший результат допускает опровержение. Утверждение «модель иногда видит скрытую структуру» невозможно проверить. Утверждение «на заранее выделенных майских неделях MAE ниже недельного baseline минимум на 8%, а ошибка пиков не выше» содержит условия, при которых оно окажется ложным.

От исследования к выводу

Теперь можно собрать весь ход рассуждения в одну последовательность.

Исследование. Мы начинаем с конкретной ситуации: вечернего пика, доступных измерений и возможных действий. Разглядываем строки, строим baseline, ищем утечки, отмечаем смену расписания.

Формализация. Определяем XX, YY, семейство fθf_\theta, потерю LL, разбиение времени, матрицу цены и ограничения. Формула не заменяет смысл, а фиксирует его настолько точно, чтобы спор можно было разрешить вычислением или опытом.

Усвоение. Проверяем вывод на новых задачах: фильтре спама, медицинской подсказке, турникете, рекомендации. Если схема переносится, понятие стало инструментом, а не заученной фразой.

Это и есть рабочий ритм курса: наблюдение прежде термина, формула после вопроса, вычисление рядом с рисунком, задача как продолжение доказательства.

Что действительно осталось после урока

  • Сложность алгоритма и обучение — разные свойства.
  • Обучаемая модель выбирает часть параметров по примерам внутри заданного человеком семейства.
  • Эмпирический риск вычисляется на конечной выборке и не равен автоматически будущей ошибке.
  • Строка данных имеет происхождение, момент доступности и механизм пропуска.
  • Baseline и временной тест нужны до выбора победителя.
  • Функция потерь обучает прогноз, а цена последствий задаёт решение.
  • После действия меняется мир, поэтому наблюдаемая ошибка может содержать след самой системы.
  • Обучаемость и автономность — независимые координаты.
  • В науке структура остатков и воспроизводимость важны не меньше итоговой метрики.

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

Задачи