Что такое deep ensembles как способ оценки uncertainty?
Answer from AI
sobes.tech AI
Что хотят услышать интервьюеры:
Deep ensembles — это практический способ оценивать неопределённость модели через обучение нескольких независимых моделей с разными инициализациями и/или подвыборками данных. Идея в том, что разброс их предсказаний отражает epistemic uncertainty, то есть неопределённость из-за недостатка знаний о данных. Это один из самых рабочих и часто сильных baseline-подходов для uncertainty estimation.
Определение:
Deep ensembles — это ансамбль нейросетей, обученных отдельно на одной и той же задаче, обычно с разными random seed, shuffle, bootstrap-выборками или другими вариациями обучения. На инференсе предсказания агрегируются, например усреднением вероятностей или значений регрессии. Если модели сильно расходятся, это сигнал высокой неопределённости; если согласны — неопределённость ниже.
Важно различать два типа uncertainty:
- Epistemic uncertainty — связана с недостатком знаний модели и обычно уменьшается при наличии большего количества данных.
- Aleatoric uncertainty — связана с шумом в самих данных и deep ensembles её напрямую не устраняют, хотя могут косвенно помогать оценивать.
Пример использования:
Например, для классификации медицинских снимков можно обучить 5–10 одинаковых нейросетей с разными инициализациями. Для нового снимка ансамбль выдаёт распределение вероятностей по классам. Если все модели уверенно согласились — предсказание надёжное. Если часть моделей считает снимок патологическим, а часть — нормальным, это повод передать кейс на ручную проверку.
import numpy as np
# Предсказания 3 моделей для одного объекта: вероятности класса 1
preds = np.array([0.92, 0.88, 0.51])
mean_prob = preds.mean()
variance = preds.var()
print("Средняя вероятность:", mean_prob)
print("Разброс предсказаний:", variance)
# Простая интерпретация:
# высокий variance -> высокая epistemic uncertainty
Пояснение кода:
В примере код показывает саму идею оценки uncertainty через разброс предсказаний:
- Есть несколько моделей ансамбля, каждая выдаёт свою вероятность класса.
- Считается среднее значение — это итоговое предсказание ансамбля.
- Считается дисперсия — это простой индикатор неопределённости.
- Чем выше разброс между моделями, тем меньше у нас уверенности в результате.
В реальной задаче вместо ручного массива preds на каждом объекте собирают предсказания всех моделей и используют:
- среднее по вероятностям для classification;
- среднее по регрессионным выходам для regression;
- меру разброса, entropy или mutual information как uncertainty score.
Ключевые моменты:
- Deep ensembles — один из самых практичных и надёжных способов оценивать uncertainty в deep learning.
- Основной сигнал — разброс предсказаний между независимыми моделями.
- Лучше всего подходят для оценки epistemic uncertainty.
- Просты в реализации и часто сильны на практике без сложной байесовской математики.
- Основной минус — высокая стоимость по памяти и времени, потому что нужно обучать несколько моделей.
- В задачах вроде uncertainty-aware classification, OOD detection и Bayesian optimization deep ensembles часто служат сильным baseline.