Telegram: @ninachely
<aside> 💡 Поговорим об алгоритмах, которые позволяют ускорить вычисления (inference) каким-то хитрым способом
</aside>
Вопрос: насколько сильно мы уверены в тех предсказаниях, которые нам выдает модель? Любой классификатор выдает не только метку класса, но и вероятности: в случае бинарной классификации это может быть одно число, в случае многоклассовой — логиты, которые переводятся в вероятности через софтмакс
$$ p_i = \frac{\exp(x_i)}{\sum\limits_{k=1}^{C} \exp(x_k)} $$
Confident prediction (идеальная ситуация)
Unconfident prediction (накидали какого-то шума)
Reality (высокая уверенность даже в плохом предсказании)
Даже если мы засунем в нейронку странную картинку или случайный шум, то обычно у нас все равно есть один сильно доминирующий класс. Проблема в том, что даже когда нейронка дает неправильное предсказание, она всегда оказывается очень сильно в нем уверена. Но иногда лучше воздержаться от предсказания, чем выдавать неправильное (тривиальный пример с медициной и высокой ценой ошибки). Такая проблема свойственна преимущественно большим моделям (в то время как условный LeNet от нее не страдает)
По оси абсцисс откладывается уверенность модели, которая измеряется от 0 до 1
По оси ординат откалыдвается настоящий процент объектов, имеющих такой класс
Прямой, проведенной через точки (0,0) и (1,1), соответствует идеально калиброванная модель, кривой под ней — реальная жизнь
Несмотря на то, что LeNet будет показывать более низкое качество, его калибровочная кривая будет очень близкой к диагонали — мы можем говорить, что он правильно оценивает уверенность в своих предсказаниях
<aside> 💡 МО-1: Калибровка Платта, изотоническая калибровка изменяли выходы модели так, чтобы кривая была ближе к диагонали
</aside>