Урок 3. Три класса событий и заморозка базы
Урок 3. Три класса, два признака и ловушка адаптивной базы
Паспорт урока
| Параметр | Значение |
|---|---|
| Место в модуле | RFCurtain, урок 3 из 5 |
| Длительность | 45 мин |
| Возраст | 13–16 |
| Оборудование | Платы TX/RX, rf_curtain.py (в том числе режим --no-freeze) |
| Предварительные знания | Уроки 1–2: зона Френеля, два окна, лестница |
| Предмет | Информатика, статистика |
Образовательные цели
| № | Цель | Блум | Миллер | Чем доказывается |
|---|---|---|---|---|
| 3.1 | Обосновывать необходимость второго признака | анализировать | знает как | Опыт: движение без пересечения |
| 3.2 | Различать три класса событий, включая обрыв линка | анализировать | знает как | Ответ: почему обрыв — не «сильная тревога» |
| 3.3 | Объяснять ошибку незамороженной адаптивной базы | анализировать | показывает как | Демонстрация --no-freeze и её разбор |
| 3.4 | Проектировать защиту адаптивной системы от самообмана | создавать | показывает как | Своё правило заморозки |
Сценарий занятия (45 минут)
| Время | Блок | Что делает педагог | Что делают ученики |
|---|---|---|---|
| 0–5 | Retrieval | Мини-квиз по уроку 2 | Пишут, разбор |
| 5–15 | Опыт: кипение | Движение рядом с лучом без пересечения | Наблюдают, объясняют |
| 15–24 | Второй признак | σ окна как мера «кипения» | Разбирают |
| 24–32 | Третий класс | Обрыв линка — отдельный диагноз | Формулируют различие |
| 32–42 | Ловушка базы | Демонстрация --no-freeze | Наблюдают провал, чинят |
| 42–45 | Итог и ДЗ | Фиксация | Записывают |
Блок 1. Опыт «кипение без тени» (5–15 мин)
Постановка
«У нас есть детектор с одним признаком — просадка сигнала. Проверим его на прочность.»
Опыт Б
Ученик ходит кругами в метре от луча, не пересекая линию между антеннами.
Что наблюдается
| График | Что происходит |
|---|---|
| Средний (отклонение) | почти не реагирует — просадки нет |
| Верхний (сырьё) | точки разлетаются сильнее обычного |
| Нижний | резко подскакивает |
Разбор
«Человек не перекрывал луч — прямой путь свободен. Но сигнал всё равно изменился. Почему?»
Ответ (из урока 1): движущееся тело перемешивает отражённые лучи. Прямой сигнал приходит без изменений, но отражения от тела складываются с ним то в фазе, то в противофазе. Средний уровень остаётся прежним, а разброс растёт.
Ключевой вывод: одного признака недостаточно. Детектор, следящий только за просадкой, наполовину слеп: он пропускает события, которые меняют не уровень, а характер сигнала.
Это прямая параллель с BeaconRadio, урок 6: там детектор падения требовал трёх фаз, потому что один признак (удар) не различал падение и резкое приседание.
Блок 2. Второй признак — «кипение» (15–24 мин)
2.1. Базовый уровень
Через воду в кастрюле.
Спокойная вода — гладкая поверхность. Закипающая — та же средняя высота, но поверхность прыгает. Если мерить только средний уровень, кипение незаметно; если мерить размах колебаний — очевидно.
2.2. Углублённый уровень
Шаг 1. Стандартное отклонение окна.
Величина σ измеряет разброс значений внутри окна, а не их уровень.
Шаг 2. Два признака и что каждый ловит.
| Признак | Формула | Что обнаруживает |
|---|---|---|
| Отклонение | медиана − база | перекрытие зоны: тело в луче |
| Кипение | σ окна | перемешивание отражений: движение рядом |
Шаг 3. Правило детектора.
Логическое ИЛИ: срабатывания любого признака достаточно.
Почему ИЛИ, а не И. Требование одновременного срабатывания обоих признаков сделало бы детектор гораздо менее чувствительным: медленный проход даёт просадку почти без кипения, а движение рядом — кипение без просадки. ИЛИ покрывает оба сценария.
Плата — больше ложных тревог. Это осознанный выбор в сторону чувствительности, который будет измерен на уроке 4.
Шаг 4. Удержание тревоги.
После срабатывания тревога держится не менее 1 секунды, даже если признаки вернулись в норму. Иначе при проходе быстрого человека тревога мигнула бы на доли секунды и была бы незаметна оператору.
Блок 3. Третий класс: обрыв линка (24–32 мин)
Постановка
Педагог нажимает кнопку паузы на передатчике. Пакеты перестают приходить.
«Пакетов нет. Это тревога?»
Разбор с классом
| Гипотеза | Обсуждение |
|---|---|
| «Да, кто-то полностью перекрыл луч» | Возможно, но так же выглядит севшая батарея |
| «Нет, это поломка» | Тоже возможно. Как отличить? |
| «Это отдельная ситуация» | Верно |
Три класса, а не два
Обрыв линка — самостоятельный класс, а не «очень сильная тревога».
| Класс | Что означает | Реакция оператора |
|---|---|---|
| Норма | всё спокойно | ничего |
| Тревога | кто-то пересёк периметр | проверить, вызвать охрану |
| Обрыв | нет связи: питание, антенна, поломка | чинить оборудование |
У классов разные реакции. Система, которая их путает, бесполезна: оператор либо побежит искать нарушителя вместо замены батареи, либо проигнорирует настоящее вторжение как «опять поломка».
В коде и на экране
Обрыв определяется по отсутствию пакетов дольше заданного времени (gap_s) и отображается отдельным цветом — синим, тогда как тревога-просадка красная, а тревога-кипение оранжевая.
«Три класса — три цвета. Это не украшение, а требование к системе: разные диагнозы должны выглядеть по-разному.»
Связь с курсом
Тот же принцип встречался дважды:
- BeaconRadio, урок 2: «мусор» (CRC не сошёлся) и «тишина» (дыра в счётчике) — разные диагнозы;
- PowerSentry, урок 3: «молчит по расписанию» и «умер» различаются по heartbeat.
Общее правило курса: отсутствие данных — тоже данные, но только если система умеет их интерпретировать.
Блок 4. Ловушка адаптивной базы (32–42 мин)
Методически сильнейший момент модуля.
Постановка
«Наша база адаптивная: она подстраивается под медленный дрейф фона. Это хорошо. Но давайте проверим её на прочность.»
Демонстрация
Запустить с ключом --no-freeze (учебный анти-режим) и попросить ученика встать в луч и стоять.
Что произойдёт
| Время | Что видно |
|---|---|
| 0–2 с | тревога срабатывает, красная заливка |
| 10–30 с | база медленно «подтягивается» к новому уровню |
| ~60 с | отклонение вернулось к нулю — тревога снялась сама |
Человек стоит в луче. Система сообщает: всё в порядке.
Разбор
«Что произошло? База — это память о норме. Пока нарушитель стоит в луче, база продолжает учиться и запоминает его как новую норму. Через минуту система считает, что человек в луче — это и есть нормальное состояние.»
Классическая ошибка адаптивных систем: система, продолжающая адаптироваться во время аномалии, принимает аномалию за норму.
Примеры за пределами нашего проекта:
- антивирус, обучающийся на заражённой машине, начинает считать вредоносную активность нормальной;
- система обнаружения вторжений, адаптирующаяся во время атаки, перестаёт её замечать;
- автоматическая регулировка усиления, «привыкающая» к помехе.
Решение — заморозка базы
если детектор в состоянии ТРЕВОГА:
база НЕ обновляется (заморожена)
если состояние НОРМА:
база обновляется как обычноПроверка
Перезапустить без --no-freeze, повторить опыт: ученик стоит в луче — тревога держится сколько угодно долго.
Обобщение
«Правило: адаптивная система должна обучаться только в состоянии, которое считает нормальным. Обучение во время аномалии превращает защиту в самообман.»
Блок 5. Практические задачи
Уровень A (13–14 лет)
A1. Почему детектору нужны два признака, а не один?
Ответ
Потому что событие может проявляться по-разному. Проход через луч даёт просадку сигнала. Движение рядом с лучом просадки не даёт, но усиливает разброс значений («кипение»). Детектор с одним признаком пропустил бы вторую ситуацию.
A2. Чем обрыв линка отличается от тревоги?
Ответ
Тревога означает, что кто-то пересёк периметр — надо проверить и вызвать охрану. Обрыв означает, что нет связи с передатчиком: села батарея, отвалилась антенна, поломка — надо чинить оборудование. Реакции совершенно разные, поэтому это разные классы.
A3. Что произойдёт, если база продолжит обновляться во время тревоги?
Ответ
Она постепенно «запомнит» нарушителя как новую норму, и тревога снимется сама, хотя человек всё ещё в луче. Поэтому во время тревоги база замораживается.
Уровень B (14–15 лет)
B1. Что физически происходит, когда человек движется рядом с лучом, не пересекая его?
Ответ
Прямой путь между антеннами остаётся свободным, поэтому средний уровень сигнала почти не меняется. Но тело отражает радиоволны, и эти отражения складываются с прямым сигналом — то усиливая, то ослабляя его. Поскольку человек движется, картина постоянно меняется, и разброс значений (σ) растёт.
B2. Почему правило детектора использует ИЛИ, а не И?
Разбор
Признаки ловят разные сценарии:
| Сценарий | Отклонение | Кипение |
|---|---|---|
| Медленный проход через луч | сильное | слабое |
| Движение рядом с лучом | слабое | сильное |
| Быстрый пробег через луч | среднее | среднее |
При логическом И детектор требовал бы обоих признаков одновременно и пропускал бы первые два сценария. ИЛИ покрывает все три.
Цена: больше ложных тревог. Это осознанное смещение в сторону чувствительности, которое будет измерено на уроке 4.
B3. Предложите способ обнаружить, что тревога «зависла» из-за замороженной базы, если нарушитель давно ушёл.
Разбор
Проблема реальна: если база заморожена, а фон за это время дрейфовал, отклонение может не вернуться к нулю и после ухода человека.
Решения:
- Ограничение времени заморозки. Через N минут непрерывной тревоги принудительно разморозить базу и пересчитать: если отклонение сохраняется, значит изменилась обстановка, а не появился нарушитель.
- Проверка σ. У неподвижного объекта кипение отсутствует. Затянувшаяся тревога с нулевым σ — вероятно, изменилась обстановка (поставили предмет), а не стоит человек.
- Ручной сброс оператором после проверки.
Вывод: заморозка решает одну проблему, но создаёт другую. Инженерное решение почти всегда порождает новый компромисс — важно его увидеть и обработать, а не считать задачу закрытой.
Уровень C (15–16 лет)
C1. Приведите три примера систем за пределами нашего проекта, где адаптация во время аномалии приводит к отказу защиты.
Разбор
- Системы обнаружения вторжений (IDS). Обучаясь на «нормальном» трафике во время медленной атаки, система принимает атаку за норму — известная техника обхода.
- Антивирус с поведенческим анализом, обучающийся на уже заражённой машине.
- Автоматическая регулировка усиления в радиоприёмнике: подстраиваясь под мощную помеху, приёмник «приглушает» и полезный сигнал.
- Кредитный скоринг, обучающийся на данных периода мошенничества, начинает считать мошеннические паттерны нормальными.
- Термостат, калибрующийся при открытом окне.
Общее правило: любая система, обучающаяся на собственных наблюдениях, должна иметь критерий «доверять ли текущим данным для обучения». Без него обучение становится каналом атаки.
C2. Спроектируйте логику заморозки для системы с тремя классами. Что делать в состоянии «обрыв»?
Разбор
состояние НОРМА → база обновляется
состояние ТРЕВОГА → база заморожена
состояние ОБРЫВ → база заморожена И не сбрасывается
после восстановления связи:
- НЕ доверять первым N секундам данных
- сравнить новый уровень со старой базой
- если различие велико → требовать перекалибровкиОбоснование для обрыва: во время отсутствия связи данных нет вовсе, обучать базу нечем. После восстановления обстановка могла измениться (антенну сдвинули при ремонте) — старая база может стать неверной.
Тонкость: после долгого обрыва разумнее не доверять старой базе слепо, а запустить период прогрева заново — как при первом включении. Это защищает от ситуации «починили и повесили антенну в другое место».
C3. Обрыв линка можно имитировать глушением. Как система должна себя вести и что должен видеть оператор?
Разбор
Проблема: злоумышленник, желающий пройти незамеченным, может заглушить канал. Система увидит «обрыв» и, если оператор привык к ложным обрывам от разряженных батарей, может не отреагировать.
Что можно сделать:
- Различать обрыв и глушение по уровню шума. При обрыве эфир тих; при глушении приёмник видит повышенный уровень шума. Если приёмник умеет измерять уровень шума в отсутствие пакетов — это разделяющий признак.
- Считать обрыв событием безопасности, а не только технической проблемой. Внезапный обрыв исправного узла требует проверки, а не только заявки на ремонт.
- Мониторить статистику обрывов: редкие — техника, внезапные и одновременные у нескольких узлов — подозрительно.
Честное ограничение: полностью защититься от глушения нельзя — это не решается криптографией или алгоритмом. Можно только надёжно обнаружить и правильно классифицировать.
Та же мысль звучала в PowerSentry, урок 7: криптография закрывает угрозы содержанию, но не доступности.
Ответы на вопросы, которые прозвучат
| Вопрос ученика | Как отвечать |
|---|---|
| «Почему кипение — это σ, а не просто разброс между максимумом и минимумом?» | Размах чувствителен к единственному выбросу, σ учитывает все значения. Это более устойчивая оценка разброса |
| «А если ветер качает ветку — это тоже кипение?» | Да, и это ложная тревога. Одно из реальных ограничений метода, будем измерять на уроке 4 |
| «Зачем удерживать тревогу секунду?» | Быстрый пробег даёт просадку на доли секунды. Без удержания тревога мигнула бы и оператор её не заметил |
| «Можно ли сделать базу вообще неадаптивной?» | Можно, но тогда медленный дрейф фона (погода, температура) через часы сделает порог неверным. Адаптивность нужна, её надо лишь правильно ограничить |
| «Что если нарушитель будет двигаться очень медленно?» | Тогда просадка нарастает медленно, и незамороженная база успевала бы её съесть. Заморозка защищает и от этого — но только после первого срабатывания |
Раздаточный лист (для печати)
Урок 3. Два признака и три класса
Опыт Б: движение рядом с лучом (не пересекая)
График Что наблюдаю Средний (отклонение) Нижний (кипение σ) Вывод: одного признака ________________________
Два признака:
Признак Формула Что ловит Отклонение Кипение Правило детектора:
тревога, если (отклонение ≤ ____ дБ) _____ (σ ≥ ____ дБ)
Почему ИЛИ, а не И? ______________________________
Три класса — три цвета:
Класс Цвет Что означает Реакция оператора Норма Тревога-просадка красный Тревога-кипение оранжевый Обрыв линка синий Опыт с
--no-freeze(встать в луч и стоять):
Время Что происходит с тревогой Что происходит с базой 0–2 с 30 с 60 с Почему так произошло? ___________________________
Правило заморозки:
состояние ТРЕВОГА → база ________________ состояние НОРМА → база ________________Три системы из жизни, где адаптация во время аномалии опасна:
- _________________ 2. _________________ 3. _________________
Домашнее задание
Обязательная часть
Врайтап по рубрике А. Обязательный пункт: опишите демонстрацию --no-freeze и объясните, почему тревога снялась сама.
Уровень A
Найти три ситуации, где важно различать «сломалось» и «сработало» (сигнализация в машине, датчик дыма, интернет дома).
Уровень B
Предложить четвёртый класс событий, который мог бы понадобиться системе охраны периметра. Обосновать, чем его реакция отличается от существующих трёх.
Ориентир для педагога
Хорошие варианты: «попытка вмешательства» (сдвинули антенну — резкое изменение базы без прохода); «деградация» (растёт доля потерянных пакетов — линк слабеет, скоро откажет); «служебный режим» (охрана отключила систему намеренно).
Особенно ценен второй: он предупреждает об отказе до его наступления. Это переход от реактивного обслуживания к предиктивному.
Уровень C
Спроектировать логику, которая различала бы «нарушитель стоит в луче» и «в луче поставили неподвижный предмет». Какие признаки помогут?
Ориентир для педагога
Ключевой признак — кипение. Живой человек даже стоя неподвижно дышит и микродвижется, что даёт ненулевую σ. Неподвижный предмет даёт просадку с почти нулевым σ.
Дополнительно: предмет создаёт стабильную просадку, человек — слегка меняющуюся.
Ограничение, которое должен назвать ученик: различие невелико и ненадёжно, особенно на расстоянии. Уверенное решение потребовало бы другого датчика (тепловизор, радар с доплеровским каналом).
Это снова вывод «для новой задачи может потребоваться другая конструкция, а не другой алгоритм».
Итог урока: что записать в журнал
Вывод урока 3
- Движение рядом с лучом не даёт просадки, но усиливает разброс — нужен второй признак.
- Кипение (σ окна) ловит перемешивание отражений, отклонение ловит перекрытие зоны.
- Правило детектора использует ИЛИ: признаки покрывают разные сценарии.
- Обрыв линка — третий класс, а не «сильная тревога»: у него другая реакция (чинить, а не искать нарушителя).
- Три класса — три цвета: разные диагнозы должны выглядеть по-разному.
- Ловушка адаптивных систем: база, обучающаяся во время тревоги, запоминает нарушителя как норму, и тревога снимается сама.
- Заморозка базы во время тревоги решает проблему — адаптивная система должна учиться только в состоянии, которое считает нормальным.
Связь с курсом
| Что родилось на этом уроке | Где станет инструментом |
|---|---|
| Композиция признаков | BeaconRadio урок 6, любые детекторы |
| Третий класс (обрыв) | PowerSentry (heartbeat), BeaconRadio (мусор/тишина) |
| Заморозка адаптации | PowerSentry урок 6 (откат ADR) |
| «Адаптация без страховки опасна» | Проектирование любых самонастраивающихся систем |
Чек-лист педагога перед уроком
- Проверено накануне: движение рядом с лучом действительно поднимает σ
- Режим
--no-freezeработает и демонстрирует снятие тревоги - Кнопка паузы на TX работает для демонстрации обрыва
- Достаточно времени на демонстрацию
--no-freeze— она требует около минуты ожидания - Раздаточный лист распечатан