TGStat
TGStat
Type to search
Advanced channel search
  • flag English
    Site language
    flag Russian flag English flag Uzbek
  • Sign In
  • Catalog
    Channels and groups catalog Regional compilations Thematic compilations Платные каналы Search for channels
    Add a channel/group
  • Ratings
    Rating of channels Rating of groups Posts rating
    Ratings of brands and people
  • Analytics
  • Search by posts
  • Telegram monitoring
  • Promotion
    Advertising through Yandex Business Advertising in channels through TGStat Agency Advertising on TGStat.ru website
.ml

3 Jun, 10:02

Open in Telegram Share Report

В предыдущем посте мы рассказали, что такое conformal prediction и зачем он нужен. Но наверняка у вас появились вопросы:

1. А как именно модель понимает, насколько конкретный объект «странный» или «рискованный»?
2. Как обучается конформный предиктор?

Ответ на первый вопрос: через меру некомфортности.
Мера некомфортности — это функция, которая показывает, насколько плохо конкретная пара (x, y) согласуется с моделью и уже известными данными.


Мерами некомфортности могут быть как простые функции, например, MAE или hinge_loss:


nonconformity_mae = |y_true - y_pred|
nonconformity_hinge = 1 - P(true_class)

так и более сложные, например, оценка Брайера.

Интуитивный пример

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

Barbie: 0.02
Ken: 0.97
Oppenheimer: 0.01


А для размытой картинки животного в лесу:

Barbie: 0.2
Ken: 0.42
Oppenheimer: 0.38

Обычный классификатор во всех случаях выберет класс Ken. Conformal prediction во втором случае может сказать:

{Ken, Oppenheimer}

Потому что мера некомфортности для этих классов будет недостаточно велика, чтобы их явно отвергнуть.

Далее поговорим про то, как это обучать.

TCP: Transductive Conformal Prediction

TCP в строгом смысле не «обучается» как обычная модель. Лучше сформулировать это так:

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


Давайте рассмотрим пошагово алгоритм TCP.

Допустим, есть выборка:

D = {(x1, y1), ..., (xn, yn)}

и новый объект

x_new.

• Шаг 1. Берём один из классов, например, Barbie. Делаем предположение:

y_new = Barbie

• Шаг 2. Добавляем его в существующий датасет:

D_Barbie = D ∪ {(x_new, Barbie)}

• Шаг 3. Обучим модель на новом наборе данных.
• Шаг 4. Считаем меру некомфортности, например, hinge_loss, для всех объектов, включая новый.
• Шаг 5. Сравниваем новый объект с остальными. Смотрим, насколько некомфортность нового объекта велика относительно остальных объектов в D_Barbie. Упрощённо:

p_value(Barbie) = доля объектов, у которых score ≥ score_x_new


Шаги с первого по пятый повторяются для каждого класса. Финальный prediction set формируется из классов, у которых p_value > α, где α — желаемый уровень значимости.

ICP: Inductive Conformal Prediction

Опытные ML-инженеры, прочитав предыдущую часть, наверняка ужаснулись. Для предсказания на 1000 объектов в 10 классов нам понадобится 10 000 переобучений модели!

Эту проблему решает метод ICP за счёт выделения отдельной калибровочной выборки:

• Шаг 1. Делим данные на train и calibration:

D_train
D_calibration

• Шаг 2. Обучаем модель на D_train. После этого модель больше не переобучается для каждого нового объекта.
• Шаг 3. Считаем меры некомфортности на D_calibration. Для каждого объекта из D_calibration считаем, насколько плохо модель предсказала правильный ответ. Получаем набор calibration scores:

scores = [α1, α2, ..., αm]

• Шаг 4. Задаём уровень значимости α и выбираем порог q. Теперь выбираем такой порог скора q, чтобы нужная доля calibration scores была не больше него. Упрощённо:

q = 90-й процентиль calibration scores

• Шаг 5. Применяем к новому объекту. Для нового объекта считаем score для каждого возможного класса:

score(Barbie) = 1 - P(Barbie)
score(Ken) = 1 - P(Ken)
score(Oppenheimer) = 1 - P(Oppenheimer)

В prediction set попадут те классы, у которых score ≤ q.

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


💜 Этот пост написал Виталий Прахов, дата-сайентист в Точка Банк

2.6k 1 32 47
Catalog
Channels and groups catalog Channels compilations Search for channels Add a channel/group
Ratings
Rating of Telegram channels Rating of Telegram groups Posts rating Ratings of brands and people
API
API statistics Search API of posts API Callback
Our channels
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Read
Академия TGStat Telegram Research 2019 Telegram Research 2021 Telegram Research 2023
Contacts
Справочный центр Support Email Jobs
Miscellaneous
Terms and conditions Privacy policy Public offer
Our bots
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot