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

От пикселей к вероятностям

Возьмём классическую задачу: узнать рукописную цифру 8×88\times8 пикселей. Простой классификатор — логистическая регрессия — для каждого из десяти классов считает взвешенную сумму яркостей (логит), а softmax превращает десять логитов в десять вероятностей, сумма которых равна единице. Ответ модели — класс с наибольшей вероятностью.

Заметим: эта простая модель смотрит на голые пиксели, не зная ничего о краях и формах. Свёрточная сеть распознала бы цифры точнее, но и её пришлось бы оценивать теми же мерками — а именно оценка и есть тема урока. Обучив логистическую регрессию на реальных рукописных цифрах, получаем точность 96,3%96{,}3\% на отложенном тесте. Звучит отлично. Но за этим числом прячется много вопросов, и хороший исследователь их задаёт.

Матрица ошибок

Первый вопрос: а какие именно ошибки делает модель? Общая точность их усредняет и прячет. Направление ошибок показывает матрица ошибок — таблица, где строка ii, столбец jj хранит, сколько объектов класса ii модель назвала классом jj.

Рисунок шире экрана — проведите по немуОткрыть целиком ↗
Матрица 10 на 10: по диагонали крупные числа верных ответов, вне диагонали редкие ошибки; зелёными рамками отмечены самые частые путаницы — истинная 5 названа 9 (три раза) и истинная 8 названа 1 (два раза)
Рис. 31.1. Матрица ошибок

Яркая диагональ — верные ответы. Вне диагонали — ошибки: их немного, но они не случайны. Модель чаще всего путает 55 с 99 (три раза) и 88 с 11 (два раза) — эти пары отмечены зелёным.

Кого путает модель

Матрица говорит, ЧТО путается, а взгляд на сами картинки объясняет, ПОЧЕМУ. Достанем реальные цифры, на которых модель ошиблась.

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

Четыре цифры, на которых модель споткнулась. Приглядитесь: небрежно написанная 55 и вправду похожа на 99, а узкая 88 — на 11. Ошибки модели не глупы — она путается там, где и человек бы засомневался.

Это важный урок: ошибки хорошей модели обычно осмысленны. Если бы она путала 00 с 77, стоило бы искать баг; путаница же похожих начертаний — свойство самой задачи, а не поломка.

Точность и с чем её сравнивать

96,3%96{,}3\% — это много или мало? Число само по себе бессмысленно, ему нужна точка отсчёта. Самый честный ориентир — базовый ответ: сколько даст модель, всегда называющая самый частый класс. Цифры распределены почти поровну, поэтому такой ответ верен лишь в 10,2%10{,}2\% случаев.

Точность — случайная величина

Теперь главный статистический вопрос: насколько можно верить самому числу 96,3%96{,}3\%? Мы измерили его на 540540 тестовых примерах. Возьми мы другие 540540 — вышло бы чуть иначе. Измеренная точность не константа, а оценка случайной величины, и у неё есть доверительный интервал.

Рисунок шире экрана — проведите по немуОткрыть целиком ↗
Слева точечная оценка точности 96,3 процента с интервалом плюс-минус 1,6 процента над базовой линией 10 процентов; справа график: половина ширины интервала падает с ростом размера теста — от 3,7 процента при 100 примерах до 0,4 процента при 10000
Рис. 31.3. Точность с доверительным интервалом

Слева: точность 96,3%96{,}3\% с интервалом ±1,6%\pm1{,}6\% — истинное качество где-то в [94,3;97,6]%[94{,}3;\,97{,}6]\%. Справа: чем больше тест, тем уже интервал. На 100100 примерах разброс ±3,7%\pm3{,}7\%, на десяти тысячах — лишь ±0,4%\pm0{,}4\%. Маленький тест не различит модели 95%95\% и 97%97\%.

Ширина интервала для доли верных ответов pp убывает как 1/n1/\sqrt n:

полуширинаzp(1p)n,z1,96 для 95%.\text{полуширина}\approx z\sqrt{\frac{p(1-p)}{n}},\qquad z\approx1{,}96 \ \text{для }95\%.

Отсюда практическое правило: сообщая точность, всегда прикидывайте интервал. «96,3%96{,}3\% на 540540 примерах» честнее, чем голое «96,3%96{,}3\%», а разница в полпроцента на крошечном тесте — обычно просто шум.

Строка и столбец: точность и полнота

У матрицы ошибок два осмысленных среза. Столбец класса «55» отвечает: из всех, кого модель назвала пятёрками, сколько ими и были? Это точность (precision). Строка класса «55» отвечает: из всех настоящих пятёрок сколько модель нашла? Это полнота (recall):

precision=верные «5»все названные «5»,recall=верные «5»все истинные «5».\text{precision}=\frac{\text{верные «5»}}{\text{все названные «5»}}, \qquad \text{recall}=\frac{\text{верные «5»}}{\text{все истинные «5»}}.

Уверенность и калибровка

Модель выдаёт вместе с ответом и уверенность — вероятность выбранного класса. Хорошо бы, чтобы уверенность отражала правоту: среди ответов с уверенностью 80%80\% верными должны быть примерно 80%80\%. Это свойство называют калибровкой, и оно часто нарушено — модели склонны быть самоуверенными.

Русская линия: статистика оценивания

За скромным «точность с интервалом» стоит целая наука — математическая статистика, в которой сильна русская школа. Андрей Колмогоров в 19331933 году дал теории вероятностей строгие основания, а закон больших чисел, восходящий ещё к Чебышёву, объясняет, почему доля верных ответов на большом тесте близка к истинной вероятности. Оценивать надёжность по конечной выборке — с интервалами и запасом — учила прикладная статистика Бориса Гнеденко, чья теория надёжности как раз о том, какой доле изделий можно доверять и с какой уверенностью.

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

Оттого честный отчёт о качестве модели — не одно число, а число с интервалом, разбор ошибок и оговорка о размере теста. Это не придирчивость, а азбука статистики, без которой «96%96\%» — просто красивая цифра. Та же дисциплина оценки нужна и когда мы обучаем сеть, и когда сравниваем распознаватели цифр: без интервала любое «стало лучше» повисает в воздухе.

Лаборатория классификатора

Как модель распределяет уверенность

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

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

Сборка: одно число — это ещё не оценка

Измерить качество классификатора куда тоньше, чем назвать одну точность. Матрица ошибок показывает направление ошибок — модель на цифрах путает похожие начертания 55 и 99, 88 и 11, а не что попало. Точность 96,3%96{,}3\% осмысленна лишь рядом с базовой линией 10%10\% и лишь с доверительным интервалом ±1,6%\pm1{,}6\%, который сужается с ростом теста как 1/n1/\sqrt n. Строка и столбец матрицы дают полноту и точность — два разных взгляда на ошибку, — а уверенность модели полезна, только если она калибрована. За всем этим стоит русская школа статистики от Чебышёва и Колмогорова до Гнеденко. Честный отчёт — это число с интервалом, разбор ошибок и оговорки, а не голая цифра. Дальше мы научим сеть не просто запоминать обучающие картинки, но обобщать на новые: об аугментации, переобучении и переносе знаний.

Задачи