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

Число без единиц сомнения

Модель оценила риск как 5,3%5{,}3\% — так она ответила про конкретного пациента из нашего теста. Врач спрашивает: насколько надёжно это число, похож ли пациент на тех, на ком модель училась, и что делать, если сомнение велико? Интерфейс, показывающий только процент, заставляет пользователя додумать ответы — а додумывает каждый по-своему. Забегая вперёд: одна скалярная поправка на калибровку превратит эти 5,3%5{,}3\% в 31,8%31{,}8\%, не изменив ни одного признака и ни одного веса.

Мы будем строить карту на реальных данных: 569 биопсий из классического набора breast cancer (30 числовых признаков формы и текстуры клеточных ядер), где 37,3%37{,}3\% случаев — злокачественные. Разделим их честно: 60 объектов на обучение, 160 на калибровку, 349 на проверку. Маленькое обучение выбрано намеренно: так все три вида сомнения видны невооружённым глазом.

Логистическая регрессия на этих 60 объектах даёт на тесте точность 92,0%92{,}0\% и ROC-AUC 0,9760{,}976. Хорошая модель. И при этом, как мы сейчас увидим, её вероятности систематически преувеличены, её уверенность не падает вне области данных, а её собственное «p^0,9\hat p\ge0{,}9» не имеет отношения к обещанию покрытия 90%90\%: это разные числа с одинаковым видом.

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

Слева классы перекрываются, хотя данных много: по признаку гладкости AUC всего 0,720{,}72, и никакое количество новых биопсий этого перекрытия не уберёт. В центре по двенадцати точкам проведены четырнадцать разных границ — все согласны с данными, но расходятся между собой. Справа новый объект имеет обычные значения по каждой оси и невиданное сочетание. Одинаковая иконка «не уверен» скрыла бы три разных диагноза и три разных лечения.

Три слоя сомнения

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

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

Закон полной дисперсии как формальный скелет

Пусть параметры модели θ\theta имеют апостериорное распределение по данным DD, а прогноз — распределение Yx,θY\mid x,\theta. Тогда

Var(Yx,D)=EθD[Var(Yx,θ)]aleatoric+VarθD[E(Yx,θ)]epistemic.\operatorname{Var}(Y\mid x,D)= \underbrace{\mathbb E_{\theta\mid D}\bigl[\operatorname{Var}(Y\mid x,\theta)\bigr]}_{\text{aleatoric}} + \underbrace{\operatorname{Var}_{\theta\mid D}\bigl[\mathbb E(Y\mid x,\theta)\bigr]}_{\text{epistemic}}.

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

Для байесовской линейной регрессии с шумом σ2\sigma^2 и апостериорной ковариацией весов SnS_n разложение выписывается явно:

Var(Yx,D)=σ2+xSnx.\operatorname{Var}(Y_*\mid x_*,D)=\sigma^2+x_*^\top S_nx_*.

Первый член не зависит от xx_* и не уменьшается ни при каком объёме данных. Второй растёт там, где признаковый вектор непохож на обучающие: если Sn=τ2(XX)1S_n=\tau^2(X^\top X)^{-1}, то

xSnx=τ2x(XX)1x,x_*^\top S_nx_*=\tau^2\,x_*^\top (X^\top X)^{-1}x_*,

а это в точности величина рычага (leverage) из урока 49. Модель меньше знает о тех, кто не похож на обучающую выборку.

Для классификации удобна та же бухгалтерия с бернуллиевой дисперсией. Если pθ(x)p_\theta(x) — вероятность класса при параметрах θ\theta, а pˉ\bar p — её среднее по апостериорному распределению, то

Var(Yx,D)=Eθ[pθ(1pθ)]+Varθ[pθ].\operatorname{Var}(Y\mid x,D)=\mathbb E_\theta\bigl[p_\theta(1-p_\theta)\bigr] +\operatorname{Var}_\theta\bigl[p_\theta\bigr].

Что лечится данными, а что нет

Проверим разложение на реальном велопрокате (17 379 часовых записей). Возьмём зависимость числа поездок от температуры и намеренно проредим холодные часы: оставим при нормированной температуре ниже 0,250{,}25 лишь 33 наблюдения против 15 366 тёплых. Кубический базис из урока 50 обучим на 200 бутстреп-повторениях и посмотрим на разброс кривых.

sd^epi(x)=1Bb=1B(fb(x)fˉ(x))2,B=200.\widehat{\operatorname{sd}}_{\text{epi}}(x)= \sqrt{\frac{1}{B}\sum_{b=1}^{B}\bigl(f_b(x)-\bar f(x)\bigr)^2},\qquad B=200.

В холодной области sd^epi=16,6\widehat{\operatorname{sd}}_{\text{epi}}=16{,}6 поездки, в тёплой — 2,32{,}3: в 7,27{,}2 раза меньше там, где данных в 465 раз больше. Незнание модели действительно тает от данных, и тает по знакомому закону: для несмещённой линейной оценки

Var(f^(x))    σ2nloc,откудаsdepi1nloc,\operatorname{Var}\bigl(\widehat f(x)\bigr)\;\propto\;\frac{\sigma^2}{n_{\text{loc}}}, \qquad\text{откуда}\qquad \operatorname{sd}_{\text{epi}}\propto\frac{1}{\sqrt{n_{\text{loc}}}},

где nlocn_{\text{loc}} — число наблюдений рядом с точкой, а не во всей таблице.

А шум — нет. Локальный разброс остатков составляет 105105 поездок в холодной области и 195195 в тёплой. Складывая по закону полной дисперсии,

sdtotal=sdale2+sdepi2,\operatorname{sd}_{\text{total}}=\sqrt{\operatorname{sd}^2_{\text{ale}}+\operatorname{sd}^2_{\text{epi}}},

получаем 106106 против 195195: доля epistemic в полной дисперсии равна 2,4%2{,}4\% в холоде и 0,014%0{,}014\% в тепле. Вывод отрезвляющий: даже там, где данных почти нет, разброс прогноза почти целиком объясняется честной случайностью спроса. Сбор данных здесь купит вам единицы процентов ширины.

Рисунок шире экрана — проведите по немуОткрыть целиком ↗
Сверху облако почасовых поездок велопроката по температуре, чёрная кривая кубического базиса, узкая красная полоса разброса кривых и широкая голубая полоса полного разброса; снизу логарифмический график двух стандартных отклонений
Рис. 56.2. Шум остаётся, незнание тает

Красная полоса — разброс 200 бутстреп-кривых (epistemic), голубая — полный разброс с учётом шума. В затенённой холодной области осталось 33 наблюдения, и красная полоса заметно раздувается; в тёплой она схлопывается почти в линию. Нижняя панель (логарифмическая шкала) показывает главное: epistemic меняется на порядок, а шум остаётся того же масштаба и даже растёт с температурой.

Ансамбль как измеритель незнания

На практике апостериорное распределение θD\theta\mid D недоступно, и его заменяют ансамблем: несколько моделей, обученных на бутстрепе, на разных инициализациях или на разных подмножествах признаков. Тогда

pˉ(x)=1Bb=1Bpb(x),U^epi(x)=1Bb=1B(pb(x)pˉ(x))2.\bar p(x)=\frac1B\sum_{b=1}^B p_b(x),\qquad \widehat{U}_{\text{epi}}(x)=\frac1B\sum_{b=1}^B\bigl(p_b(x)-\bar p(x)\bigr)^2 .

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

Калибровка: частоты должны соглашаться с числами

Проверяют это разбиением на корзины и сравнением среднего прогноза с наблюдаемой частотой. Мера расхождения — ожидаемая ошибка калибровки:

ECE=m=1MBmny(Bm)p^(Bm),\mathrm{ECE}=\sum_{m=1}^{M}\frac{|B_m|}{n} \bigl|\,\overline{y}(B_m)-\overline{\hat p}(B_m)\,\bigr|,

где BmB_m — корзина. Рядом обычно приводят Brier score — среднеквадратичное отклонение вероятности от факта:

BS=1ni=1n(p^(xi)yi)2.\mathrm{BS}=\frac1n\sum_{i=1}^{n}\bigl(\hat p(x_i)-y_i\bigr)^2 .

Он одновременно наказывает и за плохое различение, и за плохую калибровку, поэтому по нему одному нельзя понять, что чинить. Наша модель на 349 тестовых биопсиях даёт ECE=0,064\mathrm{ECE}=0{,}064, и почти всё это — самоуверенность: она называет 0,990{,}99 там, где частота меньше. Заодно видно, откуда берётся проблема: 87%87\% прогнозов вжаты в крайние корзины, потому что логистическая регрессия без регуляризации на 60 объектах почти разделяет их идеально.

Рисунок шире экрана — проведите по немуОткрыть целиком ↗
Сверху диаграмма надёжности: красная линия сырых прогнозов лежит ниже диагонали, зелёная после температурного масштабирования ближе к ней, размер кружка растёт с числом объектов; снизу гистограмма прогнозов с двумя высокими столбцами у краёв
Рис. 56.3. Reliability diagram и поддержка корзин

По оси xx — средний прогноз в корзине, по оси yy — наблюдаемая доля. Диагональ означает калибровку, точки ниже неё — самоуверенность. Размер кружка и нижняя гистограмма показывают поддержку: в средних корзинах живут единицы объектов, и их отклонения почти ничего не значат, тогда как крайние корзины опираются на сотни случаев. ECE падает с 0,0640{,}064 до 0,0310{,}031 после одной скалярной поправки.

Температура: одна ручка против самоуверенности

Temperature scaling делит логит на число T>0T>0:

p^T(x)=σ ⁣(z(x)T),z(x)=logp^(x)1p^(x).\hat p_T(x)=\sigma\!\left(\frac{z(x)}{T}\right),\qquad z(x)=\log\frac{\hat p(x)}{1-\hat p(x)}.

Параметр TT подбирают минимизацией логарифмической потери на отдельной калибровочной выборке:

T=argminT  1ncali[yilogp^T(xi)+(1yi)log(1p^T(xi))].T^\star=\arg\min_T\;-\frac1{n_{\text{cal}}}\sum_i \Bigl[y_i\log\hat p_T(x_i)+(1-y_i)\log\bigl(1-\hat p_T(x_i)\bigr)\Bigr].

На наших 160 калибровочных объектах T=3,79T^\star=3{,}79: логиты нужно ужать почти вчетверо. После этого на тесте ECE\mathrm{ECE} падает с 0,0640{,}064 до 0,0310{,}031, Brier score — с 0,0680{,}068 до 0,0570{,}057, а ROC-AUC не меняется вовсе: он равен 0,9760{,}976 до и после. Это не совпадение.

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

Калибровка живёт в популяции

Калибровка — свойство пары «модель + популяция», а не модели. Уменьшим долю злокачественных случаев в тестовой выборке с 39,3%39{,}3\% до 11,3%11{,}3\%, ничего не меняя в модели. Ранжирование не пострадает — ROC-AUC на прореженной выборке равен 0,9790{,}979 против 0,9760{,}976 на исходной, разница в пределах случайности, — а ECE\mathrm{ECE} вырастет с 0,0310{,}031 до 0,0980{,}098: те же вероятности стали завышенными втрое, потому что изменилась база. Это та же ловушка базовой частоты, что и в уроке 42, только теперь она бьёт по откалиброванной модели.

Если сдвинулась только базовая частота, а условные распределения признаков внутри классов те же (label shift), поправку можно сделать аналитически, сдвинув логит на логарифм отношения шансов:

znew=zold+logπnew/(1πnew)πold/(1πold).z_{\text{new}}=z_{\text{old}}+\log\frac{\pi_{\text{new}}/(1-\pi_{\text{new}})} {\pi_{\text{old}}/(1-\pi_{\text{old}})}.

Но само предположение о том, что сдвинулась только база, нужно проверять, а не надеяться на него.

Область поддержки: сочетание, которого не было

Новый объект может иметь обычное значение каждого признака по отдельности, но невиданное сочетание. Температура 3030^\circC и снег по отдельности встречались, а вместе — нет. Одномерные диапазоны такого не заметят.

Возьмём реальные биопсии и объявим обучающей популяцией узкую полосу в координатах «радиус — текстура»: в неё попадает 58,2%58{,}2\% объектов. Теперь найдём пациента, у которого радиус лежит на 88-м процентиле обучающих, а текстура — на 11-м. Обе координаты внутри обычных границ. Но расстояние Махаланобиса

dM(x)=(xμ)Σ1(xμ)d_M(x)=\sqrt{(x-\mu)^\top\Sigma^{-1}(x-\mu)}

для него равно 3,363{,}36 при медиане 1,191{,}19 у обучающих: он дальше от центра, чем 99,1%99{,}1\% обучающей выборки. Корреляция признаков — вот что превращает безобидную пару чисел в чужака.

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

Пунктирные золотые линии показывают: по каждой оси новый пациент попадает внутрь облака. Совместно он лежит в стороне от главной оси корреляции. Справа видно, во что это превращается количественно: dM=3,4d_M=3{,}4 против медианы 1,21{,}2, дальше 99%99\% обучающих точек. Проверка «каждый признак в диапазоне» пропустила бы этот случай молча.

Отношение плотностей связано с классификатором источника простым тождеством: если c(x)c(x) — вероятность того, что строка пришла из production, а классы источников равновелики, то

qprod(x)qtrain(x)=c(x)1c(x).\frac{q_{\text{prod}}(x)}{q_{\text{train}}(x)}=\frac{c(x)}{1-c(x)} .

Второй практичный инструмент — классификатор источника. Обучим модель отличать строку из обучающей популяции от строки из production. Если это удаётся легко, распределения различаются. На нашем разбиении такой классификатор достигает AUC 0,8450{,}845 — среды заметно различимы, и переносить пороги без проверки нельзя.

Почему softmax не детектор новизны

Softmax нормирует скоры до единицы в любой точке пространства. Для двух классов

p^(x)=ez1(x)ez0(x)+ez1(x)=σ(z1(x)z0(x)),\hat p(x)=\frac{e^{z_1(x)}}{e^{z_0(x)}+e^{z_1(x)}}=\sigma\bigl(z_1(x)-z_0(x)\bigr),

и если разность логитов линейна по xx, то при удалении от границы она растёт без предела, а p^1\hat p\to1. Формально, двигаясь вдоль направления ww из точки x0x_0,

limt+σ(w(x0+tw)+b)=limt+σ(wx0+b+tw2)=1.\lim_{t\to+\infty}\sigma\bigl(w^\top(x_0+tw)+b\bigr) =\lim_{t\to+\infty}\sigma\bigl(w^\top x_0+b+t\|w\|^2\bigr)=1 .

Уверенность модели — функция расстояния до границы, а не расстояния до данных. Это две совершенно разные геометрии.

Отказ как полноценное действие

Две метрики описывают такую систему:

coverage=E[g(X)],selective risk=E[(f(X),Y)g(X)]E[g(X)].\text{coverage}=\mathbb E\bigl[g(X)\bigr],\qquad \text{selective risk}=\frac{\mathbb E\bigl[\ell(f(X),Y)\,g(X)\bigr]}{\mathbb E\bigl[g(X)\bigr]}.

На выборке это оценивается напрямую:

cov^(τ)=1ni=1n1{u^iτ},R^(τ)=ii1{u^iτ}i1{u^iτ}.\widehat{\text{cov}}(\tau)=\frac1n\sum_{i=1}^n\mathbb 1\{\hat u_i\ge\tau\}, \qquad \widehat{R}(\tau)=\frac{\sum_i\ell_i\,\mathbb 1\{\hat u_i\ge\tau\}} {\sum_i\mathbb 1\{\hat u_i\ge\tau\}} .

Знаменатель здесь принципиален: риск считается только на принятых объектах. Меняя порог, получаем кривую risk-coverage. На наших данных при полном охвате ошибка составляет 8,0%8{,}0\%; отказываясь от 20%20\% самых сомнительных случаев, мы снижаем её до 2,5%2{,}5\%; при охвате 60%60\% остаётся 1,0%1{,}0\%, при 50%50\%0,6%0{,}6\%. Чтобы удержать selective risk не выше 2%2\%, можно автоматизировать 79,4%79{,}4\% случаев.

Проверка на бессмысленность обязательна: если отказываться случайно, риск на принятых не изменится вовсе. Так и происходит — при случайном отказе от 20%20\% случаев ошибка остаётся 8,0%8{,}0\%. Падение риска на кривой — это заслуга сигнала уверенности, а не самой идеи отказа.

Рисунок шире экрана — проведите по немуОткрыть целиком ↗
График: по горизонтали доля автоматически решённых случаев, по вертикали ошибка на них; синяя кривая при отказе по уверенности круто падает влево, серая штриховая линия случайного отказа идёт горизонтально на уровне восьми процентов
Рис. 56.5. Кривая risk-coverage

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

Цену ошибки нельзя вывести из данных

Порог — это не свойство модели, а следствие цен. Пусть ошибка автомата стоит cerrc_{\text{err}}, передача человеку — cmanc_{\text{man}}, а верное автоматическое решение бесплатно. Средняя цена на случай

cˉ(τ)=1n[cerr#{ошибки при u^τ}+cman#{u^<τ}].\bar c(\tau)=\frac{1}{n}\Bigl[c_{\text{err}}\cdot\#\{\text{ошибки при } \hat u\ge\tau\}+c_{\text{man}}\cdot\#\{\hat u<\tau\}\Bigr].

Для cerr=1000c_{\text{err}}=1000 ₽ и cman=50c_{\text{man}}=50 ₽ минимум достигается при пороге уверенности 0,990{,}99 и равен 3535 ₽ на случай. Полная автоматизация обошлась бы в 8080 ₽, полностью ручная обработка — в 5050 ₽. Точка безразличия находится из сравнения двух ожидаемых цен для одного случая:

(1u^)cerr    cmanu^    1cmancerr.(1-\hat u)\,c_{\text{err}}\;\gtrless\;c_{\text{man}} \quad\Longleftrightarrow\quad \hat u\;\lessgtr\;1-\frac{c_{\text{man}}}{c_{\text{err}}} .

При наших ценах граница равна 150/1000=0,951-50/1000=0{,}95, и эмпирический оптимум 0,990{,}99 лежит правее из-за того, что уверенность модели не калибрована. Ни одна крайность не выигрывает; выигрывает смесь, и её точка зависит от цен, а не от ROC.

Конформный прогноз: гарантия вместо веры

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

si=1p^(yixi).s_i=1-\hat p(y_i\mid x_i).

Возьмём

q=s(k),k=(n+1)(1α),q=s_{(k)},\qquad k=\bigl\lceil (n+1)(1-\alpha)\bigr\rceil,

где s(1)s(n)s_{(1)}\le\dots\le s_{(n)} — упорядоченные нонконформности, и для нового объекта построим множество

Γα(x)={y:  1p^(yx)q}.\Gamma^{\alpha}(x)=\bigl\{y:\;1-\hat p(y\mid x)\le q\bigr\}.

Тогда при единственном предположении обмениваемости данных

Pr(Yn+1Γα(Xn+1))1α\Pr\bigl(Y_{n+1}\in\Gamma^{\alpha}(X_{n+1})\bigr)\ge1-\alpha

— и это конечновыборочная гарантия, без асимптотики и без веры в то, что модель правильная. На наших данных при α=0,05\alpha=0{,}05 калибровочный квантиль равен q=0,849q=0{,}849, эмпирическое покрытие на тесте — 94,0%94{,}0\% при обещанных 95%95\%, средний размер множества 1,051{,}05: в 4,9%4{,}9\% случаев система выдаёт оба класса сразу, то есть честно говорит «не берусь различить».

Русская линия: Владимир Вовк и обмениваемость

Владимир Вовк учился в Московском университете у Колмогорова и занимался алгоритмической теорией случайности — тем разделом, где «случайность» есть свойство конкретной последовательности, а не абстрактного распределения. Именно оттуда выросла идея конформного прогноза, которую Вовк вместе с Алексом Гаммерманом и Владимиром Вапником довёл до практического метода в конце 1990-х: вместо того чтобы доверять вероятностям модели, мы проверяем, насколько новый объект «конформен» уже виденным, и выдаём множество ответов с гарантированной частотой попадания.

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

Что ломается при сдвиге

Обмениваемость — не пустое условие. Смоделируем смену прибора: пусть в новой клинике первые десять признаков систематически завышены на 30%30\%. Точность падает с 92,0%92{,}0\% до 81,9%81{,}9\%, а конформное покрытие — с 94,0%94{,}0\% до 86,0%86{,}0\% при обещанных 95%95\%. Гарантия перестала действовать, потому что перестало выполняться её условие.

Рисунок шире экрана — проведите по немуОткрыть целиком ↗
Слева гистограмма нонконформности калибровочной выборки с красной вертикальной линией квантиля; справа три столбца: покрытие на тесте 94 процента, покрытие после сдвига 86 процентов, обещанные 95 процентов
Рис. 56.6. Конформное покрытие: обещание и его условие

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

cov^t=1ntiокно t1{yiΓα(xi)},\widehat{\text{cov}}_t=\frac1{n_t}\sum_{i\in\text{окно }t} \mathbb 1\bigl\{y_i\in\Gamma^{\alpha}(x_i)\bigr\},

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

Лаборатория карты неопределённости

Сигналы сомнения, порог отказа и цена решения

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

Двигайте порог уверенности и следите одновременно за coverage и selective risk: они всегда идут в разные стороны. Затем включите сдвиг популяции — треть объектов приходит из среды, где правило другое. Уверенность модели там по-прежнему высока, и порог, выбранный на validation, перестаёт выполнять обещание. Переключитесь на расстояние до обучающей области: оно ловит именно чужаков, но не видит трудные случаи у границы. Комбинация двух сигналов ловит обе опасности — попробуйте получить одинаковый coverage разными способами и сравните риск и цену.

Как сравнивать две системы

Средняя точность недостаточна. Профиль сравнения включает:

  • различение: ROC-AUC или PR-AUC (у нас 0,9760{,}976);
  • калибровку: Brier score и reliability diagram (0,0680{,}068 и 0,0570{,}057 после поправки);
  • coverage при заданном selective risk (79,4%79{,}4\% при риске 2%2\%);
  • эмпирическое покрытие интервалов или конформных множеств (94,0%94{,}0\%);
  • качество на заранее названных значимых подгруппах;
  • обнаружение заранее определённых сдвигов;
  • время и качество человеческой обработки отказов.

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

Проектный протокол

Полезная карта строится от решения назад:

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

Для каждого индикатора нужен тест поломки. Если разброс ансамбля объявлен epistemic uncertainty — создайте область без обучающих точек и проверьте, что разброс там растёт. Если расстояние объявлено детектором новизны — подайте содержательные сдвиги, как наш прибор с завышением на 30%30\%. Если множество обещает 95%95\% покрытия — измеряйте покрытие по времени и по группам, как в уроке 46, а не один раз при запуске.

Карта для одного решения

Соберём всё на одном случае — на пациенте с высоким прогнозом. Слой первый: калибровка. В верхней корзине теста лежат 133 объекта со средним прогнозом 0,9960{,}996, а фактическая доля положительных среди них — 91,7%91{,}7\%. После поправки T=3,79T^\star=3{,}79 в корзину «выше 0,90{,}9» попадают 114 объектов, и среди них положительных уже 98,3%98{,}3\%: модель стала называть высокую вероятность реже, но по делу. С тем же коэффициентом наш пациент из первого абзаца переезжает с 5,3%5{,}3\% на 31,8%31{,}8\% — и это меняет решение при любом разумном клиническом пороге. Слой второй: незнание. Модель обучена на 60 объектах, и разброс бутстреп-ансамбля здесь заметный. Слой третий: поддержка. Если dMd_M пациента равно 3,43{,}4 при медиане 1,21{,}2, он дальше 99%99\% обучающих точек, и любая калибровка на них к нему не относится.

Три сигнала ведут к разным исправлениям. Смещение reliability curve требует локальной перекалибровки — это дёшево. Широкий разброс ансамбля просит больше похожих наблюдений — это долго. Необычность сочетания признаков запрещает переносить даже исправленную частоту — это запрет, а не поправка. Интерфейс должен показать скорректированную оценку, конформное множество и решение «передать специалисту» с указанием, какой именно слой сработал.

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

Зрелость измеряется отказами

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

Мы прошли путь от единственной цифры p^\hat p к профилю: разложение дисперсии на случайность и незнание, калибровка и её зависимость от популяции, расстояние до области поддержки, кривая risk-coverage, цена ошибки и конформная гарантия покрытия. Каждый слой отвечает за своё действие, и именно поэтому их нельзя сводить в один индикатор «уверенность». Карта неопределённости превращает сомнение из декоративной полосы в рабочую часть системы — а на защите проекта показывать надо не лучший пример, а именно эту карту.

Задачи