Skip to content
Урок 4. Турнир «настрой детектор»

Урок 4. Турнир «настрой детектор»

Урок 4. Турнир «настрой детектор»: ROC своими ногами

Паспорт урока

ПараметрЗначение
Место в модулеRFCurtain, урок 4 из 5 — кульминация модуля
Длительность90 мин (турнир требует полного времени)
Возраст13–16
ОборудованиеПлаты на реальной дистанции, rf_curtain.py, кнопка судьи (MARK)
Предварительные знанияУроки 1–3; BeaconRadio урок 7 (ROC) — желательно
ПредметСтатистика, теория принятия решений
Лучшее оценочное средство всего УМК. Турнир одновременно достигает уровня «оценивать» по Блуму и «делает» по Миллеру: ученик настраивает реальный классификатор на реальных данных и отвечает за результат. Оценивание — по рубрике Д (документ 2 экспертизы), включающей и результат, и метод.

Образовательные цели

ЦельБлумМиллерЧем доказывается
4.1Настраивать классификатор по компромиссу ошибокоцениватьделаетТурнирная таблица с обоснованием
4.2Объяснять роль ground truth в измерении качествапониматьзнает какОтвет: откуда известна правда
4.3Обосновывать выбор рабочей точки по цене ошибкиоцениватьпоказывает какАргументация порогов для сценария
4.4Использовать запись для разбора конкретных промаховприменятьделаетНайденная по replay причина промаха

Сценарий (90 минут)

ВремяБлокЧто делает педагогЧто делают ученики
0–5Выдача рубрикиРаздаёт критерии турнираЧитают
5–15КалибровкаТри записи по 2 минутыСнимают эталонные данные
15–25ПодготовкаКоманды выбирают порогиАнализируют записи, решают
25–55ТурнирСудит, считаетИграют обе роли по очереди
55–70Разбор по replayВедёт анализ промаховИщут причины
70–82Подведение итоговСчитает результат + методЗащищают свой выбор
82–90Анти-режимФинальная демонстрацияНаблюдают

Блок 1. Выдача рубрики (0–5 мин)

Победителем становится не тот, кто поймал всё. Порог «в пол» ловит любое движение и звенит непрерывно — это не победа, а бесполезная система.

Оценка складывается из двух частей:

Результат: попадания − 2 × ложные

Метод (рубрика Д, документ 2): обоснование выбора порогов · понимание компромисса · использование записи для разбора.

Итог = результат + метод. Команда, выигравшая по очкам, но выбравшая пороги наугад, проигрывает команде с меньшим счётом и осмысленным обоснованием.


Блок 2. Калибровка (5–15 мин)

Прежде чем настраивать, нужно понять, как выглядят данные на вашей площадке.

Три записи по 2 минуты

ЗаписьЧто происходитЗачем
1. Пустоникого рядом с лучомувидеть уровень шума и дрейф фона
2. Штатные пересеченияпроходы шагом, судья жмёт MARK на каждомувидеть типичную глубину просадки
3. Провокациипробежка рядом, взмахи, качание ветки — без пересеченияувидеть, что даёт ложные срабатывания

Что извлечь из записей

«Посмотрите на запись “пусто”: какой там разброс? Это ваш уровень шума. Порог ниже него — гарантия непрерывных ложных тревог.

Посмотрите на запись пересечений: какая типичная глубина просадки? Порог выше неё — гарантия пропусков.

Ваш порог должен лежать между этими величинами. Насколько ближе к каждой границе — ваше решение.»

Без калибровки турнир превращается в угадывание. Цифры порогов из документации проекта — стартовые, а не истинные: истинные снимаются на вашем дворе вашими учениками. Это принципиальная позиция модуля.

Блок 3. Правила турнира (15–25 мин)

Роли

Две команды, каждая играет обе роли по очереди:

РольЗадача
Охранавыбирает пороги (--drop-db, --sigma-db), защищает периметр
Нарушители10 попыток пересечь любым способом + 5 провокаций без пересечения
Судья (педагог)жмёт MARK только на реальных пересечениях

Что засчитывается

СобытиеКак считается
MARK был, тревога сработалапопадание
MARK был, тревоги нетпропуск
MARK не было, тревога сработалаложная тревога
MARK не было, тревоги нетверное молчание

Разрешённые способы нарушителей

Шагом, бегом, ползком, боком, медленно, у самой антенны, у края зоны. Запрещено: касаться оборудования, заходить за антенны.

Роль судьи и ground truth

Кнопка MARK — это ground truth. Она фиксирует, что произошло на самом деле, независимо от того, что решил детектор.

Без неё посчитать попадания и пропуски невозможно: можно лишь любоваться графиками и ощущать, что «вроде работает». Это ровно тот принцип, который вводился в BeaconRadio, урок 7.

Судья должен быть беспристрастен и нажимать кнопку одинаково для обеих команд. Стоит проговорить это вслух: качество эксперимента зависит от качества разметки.


Блок 4. Турнир (25–55 мин)

Порядок

  1. Команда 1 — охрана, выбирает и записывает пороги с обоснованием;
  2. Команда 2 — 15 попыток (10 пересечений + 5 провокаций);
  3. Подсчёт результата;
  4. Смена ролей, повтор;
  5. Сравнение.

Турнирная таблица

Команда 1Команда 2
Пороги (drop / sigma), дБ
Обоснование выбора
Попаданий из 10
Пропусков
Ложных тревог из 5
Счёт (попадания − 2 × ложные)

Что делает педагог во время турнира

  • Следит за беспристрастностью разметки;
  • Фиксирует реплики команд для последующего разбора («мы поставили пониже, чтобы точно поймать» — материал для обсуждения компромисса);
  • Не подсказывает оптимальные пороги.

Блок 5. Разбор по записи (55–70 мин)

Главный инструмент урока

«Закройте окно программы — в консоли будет путь к CSV-логу. Запустите python3 rf_curtain.py --replay <лог>. Теперь вы можете проигрывать турнир заново, останавливаться и разбираться.»

Задание командам

Найти в записи конкретные моменты:

Что искатьВопрос
Свой пропускпочему признак не дошёл до порога?
Свою ложную тревогучто вызвало срабатывание?
Самое глубокое срабатываниечем этот проход отличался?

Типичные находки

НаходкаОбъяснение
Пропущен быстрый пробегокно медианы 0,5 с не успело среагировать на событие длительностью 0,3 с
Пропущен проход у самой антеннызона Френеля там узкая (урок 1) — тело перекрывает меньшую долю
Ложная от махания рукамивторой признак (кипение) сработал, хотя пересечения не было
Ложная в начале записибаза ещё не прогрелась

Методическая ценность replay. Живой график хорош для демонстрации, но разбор возможен только по записи — там можно остановиться, вернуться и ткнуть пальцем в конкретный момент.

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


Блок 6. Подведение итогов (70–82 мин)

Защита выбора порогов

Каждая команда отвечает:

  1. Почему выбрали именно эти пороги?
  2. Что показала калибровочная запись?
  3. Где на кривой «ложные ↔ пропуски» находится ваша точка?
  4. Как бы вы изменили пороги, если бы это была настоящая охрана склада? А детская площадка?

Построение ROC по точкам класса

Свести на доске точки всех команд в осях «доля пойманных — доля ложных»:

доля пойманных
      ▲
 100% ┤        ● К2 (порог низкий: поймали всё, но 4 ложных)
      │    ●  К1
      │  ●  К3 (порог высокий: 6 из 10, зато 0 ложных)
      │
   0% ┼───────────────────► доля ложных
      0%              100%

«Каждая точка — чья-то настройка. Соединив их, вы получили кривую компромисса. Никто не попал в левый верхний угол — он недостижим. Вы только что построили ROC-кривую своими ногами.»

Ключевой вывод

Идеального порога не существует. Есть осознанный выбор точки на кривой, и определяет его цена ошибки в конкретном сценарии:

СценарийЧто дорожеКуда смещать
Охрана склада с ценностямипропусквниз (чувствительнее)
Датчик на детской площадкеложные (замучают)вверх
Финишные ворота эстафетыпропусквниз

Именно это ученики уже формулировали в BeaconRadio, урок 7 — теперь они прожили это руками.


Блок 7. Финальная демонстрация (82–90 мин)

Анти-режим

Запустить --no-freeze и попросить ученика встать в луч. Через минуту тревога снимется сама (урок 3).

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

Мораль модуля

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


Практические задачи (домашние)

Уровень A (13–14 лет)

A1. Почему победителем турнира не считается команда, поймавшая все 10 пересечений?

Ответ

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

A2. Что такое кнопка MARK и зачем она нужна?

Ответ

Это отметка судьи о том, что пересечение действительно произошло — ground truth. Без неё невозможно посчитать, сколько детектор поймал и сколько пропустил: не с чем сравнивать его решения.

A3. Зачем нужны провокации без пересечения?

Ответ

Чтобы измерить ложные тревоги. Детектор, который никогда не ошибается на настоящих проходах, но звенит на каждое движение рядом, не годится — а без провокаций это не проявится.

Уровень B (14–15 лет)

B1. Команда получила 10 попаданий и 4 ложные тревоги. Другая — 7 попаданий и 0 ложных. Кто победил по формуле счёта?

Решение

Команда 1: 10 − 2 × 4 = 2. Команда 2: 7 − 2 × 0 = 7.

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

B2. Почему проход у самой антенны сложнее обнаружить, чем в середине трассы?

Ответ

Потому что радиус зоны Френеля у антенны существенно меньше, чем в середине (0,56 м против 0,93 м на трассе 10 м — расчёт урока 1). Но при этом плотность энергии там выше и прямой путь короче, поэтому относительное влияние тела на суммарный сигнал меньше — просадка получается слабее.

B3. Как бы вы изменили пороги для охраны склада с ценностями? Обоснуйте.

Ответ

Сместил бы в сторону чувствительности (понизил порог просадки, понизил порог σ). Обоснование: цена пропуска — украденные ценности — существенно выше цены ложной тревоги, которая означает лишь проверку охранником.

Но не в крайность: при потоке ложных тревог охрана начнёт их игнорировать, и пропуск вернётся уже на уровне человека («усталость от тревог» — BeaconRadio, урок 7).

Уровень C (15–16 лет)

C1. Постройте по данным турнира ROC-кривую класса и определите, какая настройка ближе к оптимуму для сценария «охрана периметра школы ночью».

Разбор

Ученик должен: (1) нанести точки всех команд в осях «доля пойманных — доля ложных»; (2) описать форму кривой; (3) выбрать точку под сценарий.

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

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

Это ровно та логика, что в BeaconRadio, урок 7 (пред-тревога как дешёвая проверка).

C2. Предложите способ улучшить детектор так, чтобы сместить всю кривую вверх, а не двигаться по ней.

Разбор

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

  1. Третий признак (SNR, длительность, форма провала) — новая независимая информация;
  2. Два луча крест-накрест — событие, подтверждённое обоими, почти наверняка настоящее;
  3. Направленные антенны — сужают чувствительный объём, повышая контраст (урок 1);
  4. Более частый опрос — быстрые пробеги перестанут проскакивать;
  5. Проверка последовательности — настоящий проход даёт характерную форму, случайная помеха нет.

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

Это тот же вывод, что в BeaconRadio, урок 7, где пред-тревога добавляла источник информации.

C3. Спроектируйте протокол испытаний, дающий доказательные цифры качества детектора для конкурсной работы.

Разбор

Необходимые элементы:

  1. Ground truth: судья с кнопкой плюс видеозапись для разрешения спорных случаев;
  2. Выборка: не менее 30 пересечений и 30 провокаций (по 15 в турнире — мало для статистики);
  3. Разнообразие: разные люди (рост, комплекция), способы (шаг, бег, ползком), точки пересечения (у антенны, в середине), условия (сухо, дождь, разное время суток);
  4. Слепота настройки: пороги фиксируются до испытания и не подстраиваются по ходу — иначе это подгонка под выборку;
  5. Фиксация условий: дистанция, высота антенн, мощность, версия прошивки;
  6. Метрики с погрешностью: доверительный интервал для доли, а не одно число;
  7. Контрольная серия в другой день для проверки воспроизводимости.

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

Готовая методическая часть конкурсной работы — см. документ 5 экспертизы.


Ответы на вопросы, которые прозвучат

Вопрос ученикаКак отвечать
«А можно поставить порог так, чтобы ловить всё без ложных?»Попробуйте — и посмотрите на калибровочные записи. Провокации дают отклик, сравнимый с медленным проходом. Разделить их порогом невозможно
«Судья ошибся с кнопкой — это считается?»Да, и это честно: качество разметки — часть эксперимента. В настоящих исследованиях для этого ведут видеозапись
«Почему ложные штрафуются вдвое?»Потому что в охранных системах ложные тревоги обходятся дорого и разрушают доверие. Коэффициент отражает приоритет; для другой задачи он был бы другим
«Мы поставили пороги наугад и выиграли»По очкам — возможно. По методу — нет: обоснование оценивается отдельно. Случайная удача не воспроизводима, а нам нужна воспроизводимость
«Это правда похоже на машинное обучение?»Да, структурно это то же самое: признаки, классификатор, измерение качества, компромисс. Отличие в том, что параметры подобрали вы, а не алгоритм

Раздаточный лист (для печати)

Урок 4. Турнир «настрой детектор»

Часть 1. Калибровка (три записи по 2 минуты)

ЗаписьЧто наблюдалТипичные значения
Пустоуровень шумаσ ≈ ____ дБ, дрейф ____
Пересеченияглубина просадки____ дБ
Провокациичто даёт отклик____________

Мой выбор порогов и ОБОСНОВАНИЕ:

drop = ____ дБ, потому что __________________________

sigma = ____ дБ, потому что _________________________

Часть 2. Турнирная таблица

Команда 1Команда 2
Пороги (drop / sigma)
Попаданий из 10
Пропусков
Ложных из 5
Счёт = попадания − 2 × ложные

Часть 3. Разбор по replay

Что искалМомент в записиПричина
Мой пропуск
Моя ложная тревога

Часть 4. Моя точка на ROC

Доля пойманных: ____ % · Доля ложных: ____ %

Как бы я изменил пороги для:

охраны склада → ___________________________________

детской площадки → ________________________________

Главный вывод турнира:

__________________________________________________


Домашнее задание

Обязательная часть

Врайтап по рубрике А. Обязательные пункты: выбранные пороги с обоснованием, результат, найденная по записи причина одного промаха.

Уровень A

Найти три системы, где ложная тревога обходится дороже пропуска, и три, где наоборот. Объяснить разницу.

Уровень B

По данным своего турнира посчитать долю пойманных и долю ложных, нанести точку на график. Предположить, куда сместится точка при снижении порога на 1 дБ.

Уровень C

Разработать протокол испытаний детектора для конкурсной работы (не менее 30 событий, разнообразие условий, слепая настройка). Оформить как методику.


Итог урока: что записать в журнал

Вывод урока 4

  1. Ground truth (кнопка судьи) обязателен: без него качество детектора невозможно измерить.
  2. Калибровка на своей площадке первична: цифры из документации — стартовые, истинные снимаются измерением.
  3. Идеального порога не существует — есть выбор точки на кривой «ложные ↔ пропуски».
  4. Победитель — не поймавший всё, а нашедший лучший компромисс: счёт учитывает двойной штраф за ложные.
  5. Метод оценивается наравне с результатом: пороги наугад не засчитываются даже при удачном исходе.
  6. Replay — главный инструмент разбора: живой график для демонстрации, запись для анализа.
  7. Сместить всю кривую вверх можно только новой информацией (признак, второй луч, антенна), а не подкруткой порогов.

Связь с курсом

Что родилось на этом урокеГде станет инструментом
Практика настройки классификатораВыпускной проект, конкурсные работы
Ground truth и протокол испытанийДокумент 5 (конкурсные работы)
ROC рукамиBeaconRadio урок 7 (теория), любая работа с детекторами
«Пишите сырые данные всегда»Вся экспериментальная работа

Чек-лист педагога перед уроком

  • Платы на реальной дистанции (6–15 м), высота ~1 м, антенны вертикально
  • Проверено: RSSI не лучше −60 дБм (иначе линк слишком «жирный», контраст упадёт)
  • Кнопка MARK на RX работает, отметки видны в логе
  • Проведён инструктаж по ТБ, площадка безопасна (главный риск — споткнуться о стул с платой)
  • Рубрика Д выдана до турнира
  • Заготовлены бланки турнирной таблицы
  • Место на доске для сводной ROC-кривой класса