ЯдроКодаподготовка к экзаменам
Научная библиотека

Загружаем научный разбор

Подготавливаем текст, источники и редакционные примечания без изменения разметки страницы.

Каталог статейМатериал и источники

От фотонных отсчётов к решению: правдоподобие, редкие сигналы и цена ошибки

Автор: · Обновлено

Как превратить два распределения детектора в правило решения и почему оно меняется при редких сигналах или дорогих пропусках. Проверяемый расчёт на Python.

# От фотонных отсчётов к решению

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

Общий физический контекст различения состояний даёт обзор Barnett и Croke. Здесь мы решаем более узкую классическую задачу после фиксированного измерения. Мы не подбираем оптимальный квантовый измеритель и не утверждаем достижение фундаментальной границы различения.

Что должно быть известно

Пусть p0[n] — вероятность отсчёта n при отсутствии сигнала, p1[n] — при его наличии. Зададим априорную вероятность сигнала pi. Ещё нужны две цены: стоимость ложного срабатывания и стоимость пропуска. В учебном примере правильные решения имеют нулевую стоимость, а оба распределения полностью перечислены.

Если выбрать «сигнал», вклад в ожидаемые потери для отсчёта n будет (1 − pi) × p0[n] × costFP. Если выбрать «нет сигнала», получим pi × p1[n] × costFN. Выбираем меньшую величину. При равных частотах и ценах это сводится к сравнению p1[n] и p0[n]. При равенстве нужен явный договор; в коде ниже выбирается отсутствие сигнала.

Собственный пример без экспериментальных данных

p0 = [0.8, 0.2]
p1 = [0.3, 0.7]

def decision(prior, false_positive_cost=1, false_negative_cost=1):
    return [
        (1 - prior) * a * false_positive_cost < prior * b * false_negative_cost
        for a, b in zip(p0, p1)
    ]

def risk(rule, prior, false_positive_cost=1, false_negative_cost=1):
    fp = sum(p for p, signal in zip(p0, rule) if signal)
    fn = sum(p for p, signal in zip(p1, rule) if not signal)
    return (1 - prior) * fp * false_positive_cost + prior * fn * false_negative_cost

for prior, miss_cost in ((0.5, 1), (0.01, 1), (0.01, 100)):
    rule = decision(prior, false_negative_cost=miss_cost)
    print(rule, round(risk(rule, prior, false_negative_cost=miss_cost), 3))

Получим [False, True] с риском 0,25; [False, False] с риском 0,01; затем снова [False, True], но с риском 0,498. Последние числа выражены в разных условиях цены ошибки, поэтому сравнивать их как обычную точность нельзя.

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

Почему одного процента правильных ответов мало

Если сигнал встречается раз в сто измерений, система, всегда отвечающая «нет», имеет точность 99%. При этом она пропускает каждый сигнал. Для контроля такого поведения храните отдельно долю ложных срабатываний среди отсутствующих сигналов и долю пропусков среди присутствующих. Тогда изменение частоты событий не скрывает изменение качества обнаружения.

Для практического приложения также важна уверенность в самих p0 и p1. Если они оценены по десяти наблюдениям, ноль в таблице не обязательно означает физически невозможный исход. Оценивание распределений и применение готового правила — разные этапы. Учебный код предполагает, что вероятности уже известны, и не решает задачу их статистической оценки.

Данные, которые нельзя выбрасывать

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

Сохраните версии калибровки и время измерений. Изменившийся прибор может делать старые распределения неверными. Обзор Quantum sensing описывает измерительный контекст; предлагаемая здесь практика журналирования — наш инженерный вывод.

Для дальнейшей самостоятельной проверки переберите все четыре правила для двух исходов и убедитесь, что выбранное действительно минимизирует заданный риск. Затем добавьте третий исход. Это небольшой исчерпывающий тест, который полезнее утверждения «алгоритм кажется разумным». Связь с научной постановкой обсуждается в [различении и оценивании](/research/quantum-detection-versus-estimation), а связь с ПО — в [карте задач разработчика](/research/quantum-sensing-software-impact).

Источники

Формат и права

Формат
Авторский разбор

Атрибуция

Авторский русскоязычный разбор ЯдроКода с первичными источниками. Учебные примеры и инженерные предположения отделены от результатов исследований. Не перевод и не перепечатка.

Код, данные и иллюстрации

Таблицы, код и синтетические данные созданы для этого материала. Иллюстрации, код и экспериментальные данные авторов исследований не переносятся.