Урок 2. Сырьё, признаки, решение
Урок 2. От сырых данных к решению: три линии на графике
Паспорт урока
| Параметр | Значение |
|---|---|
| Место в модуле | RFCurtain, урок 2 из 5 |
| Длительность | 45 мин |
| Возраст | 13–16 |
| Оборудование | Платы TX/RX, компьютер с rf_curtain.py |
| Предварительные знания | Урок 1; FoxHunter урок 3 (усреднение) |
| Предмет | Статистика, информатика (обработка данных) |
Образовательные цели
| № | Цель | Блум | Миллер | Чем доказывается |
|---|---|---|---|---|
| 2.1 | Различать сырые данные, признаки и решение | анализировать | знает как | Указание на графике трёх слоёв |
| 2.2 | Объяснять роль двух окон разной длительности | понимать | знает как | Разбор быстрой медианы и базы |
| 2.3 | Обосновывать детектирование отклонения вместо абсолютного порога | оценивать | знает как | Ответ про дрейф фона |
| 2.4 | Строить лестницу «задача → признаки → решение» | создавать | показывает как | Своя лестница для новой задачи |
Сценарий занятия (45 минут)
| Время | Блок | Что делает педагог | Что делают ученики |
|---|---|---|---|
| 0–5 | Retrieval | Мини-квиз по уроку 1 | Пишут, разбор |
| 5–13 | Наивная идея | «Тревога, если RSSI ниже X» | Находят контрпример |
| 13–25 | Теория: два окна | Быстрая медиана и медленная база | Разбирают на графике |
| 25–33 | Живой экран | Три линии сглаживания | Наблюдают, комментируют |
| 33–42 | Лестница | От задачи к решению | Строят полную схему |
| 42–45 | Итог и ДЗ | Фиксация | Записывают |
Блок 1. Наивная идея и её провал (5–13 мин)
Первое предложение класса
«Мы видим, что при проходе человека RSSI проседает. Как сделать детектор?»
Обычный ответ: поставить порог. Тревога, если RSSI ниже, скажем, −75 дБм.
Проверка идеи
Запустить систему и показать реальный поток данных на пустой трассе:
DATA,12340,45,-68,9
DATA,12406,46,-71,8
DATA,12472,47,-67,9
DATA,12538,48,-70,9«Смотрите: сигнал гуляет на 3–4 дБ, даже когда никого нет. Это шум измерения — мы разбирали его в охоте на лис. Где ставить порог?»
Вторая проблема — дрейф
«А теперь представьте, что занавес работает сутки. Утром прохладно, днём жарко, вечером пошёл дождь, рядом припарковалась машина. База сигнала уползёт на несколько децибел. Порог, выставленный утром, к вечеру окажется либо слишком высоким, либо слишком низким.»
Постановка проблемы
На доску:
Абсолютный порог не работает: сигнал шумит и медленно дрейфует. Нужно детектировать не «ниже числа X», а «резко отклонилось от того, что было только что».
Блок 2. Теория: два окна (13–25 мин)
2.1. Базовый уровень (13–14 лет)
Через температуру в комнате.
Если спросить «в комнате холодно?», ответ зависит от того, с чем сравнивать. Двадцать градусов — это холодно или тепло? Смотря что было раньше.
Правильный вопрос: «стало ли резко холоднее, чем было только что?» Для этого нужны два наблюдения: какая температура сейчас и какая была в среднем за последний час.
Перенос:
Наш детектор хранит две величины:
- быстрая — что происходит прямо сейчас (последние полсекунды);
- медленная база — что было в среднем за последнюю минуту.
Тревога — когда быстрая резко ушла вниз от базы.
2.2. Углублённый уровень (14–16 лет)
Шаг 1. Три слоя данных.
| Слой | Что это | Пример |
|---|---|---|
| Атомарные данные | RSSI одного пакета, 15 раз в секунду | −68, −71, −67, −70… |
| Признаки | величины, вычисленные из окна | медиана 0,5 с; база EMA 60 с; σ окна |
| Решение | вывод классификатора | норма / тревога / обрыв |
Ученик должен уверенно различать эти три уровня — это универсальная структура любой детекторной задачи.
Шаг 2. Быстрое окно — медиана.
Медиана последних значений за 0,5 секунды (примерно 7 пакетов при 15 Гц).
Почему медиана, а не среднее: одиночный выброс от отражения не утащит медиану, тогда как среднее сместится. При этом медиана сохраняет резкую ступеньку — а именно она нам и нужна при проходе человека.
Сравнение с FoxHunter, урок 3. Там охотник использовал среднее — потому что шум был преимущественно гауссовым, а сигнал менялся плавно. Здесь используется медиана — потому что есть одиночные выбросы и нужны резкие ступеньки.
Выбор фильтра определяется характером шума и характером полезного сигнала, а не «качеством» фильтра вообще.
Шаг 3. Медленное окно — база (EMA).
База — экспоненциальное скользящее среднее с постоянной времени около 60 секунд. Она отслеживает медленный дрейф фона (температура, влажность, обстановка) и практически не реагирует на быстрые события.
где α мало — база «тяжёлая» и меняется медленно.
Шаг 4. Признак номер один — отклонение.
Это относительная величина: она не зависит от того, какой абсолютный уровень сигнала сегодня. Дрейф фона база съедает автоматически.
Шаг 5. Почему два окна разной длительности.
| Окно | Длительность | Задача |
|---|---|---|
| Быстрое (медиана) | 0,5 с | поймать событие, которое длится секунду |
| Медленное (база) | 60 с | запомнить «норму», игнорируя события |
«Если бы оба окна были одинаковыми, разность всегда равнялась бы нулю. Смысл — именно в разной инерции: быстрое реагирует, медленное помнит.»
Блок 3. Живой экран (25–33 мин)
Запуск: python3 rf_curtain.py --port /dev/ttyUSB0
Что показать
- Верхний график — три линии одновременно:
| Что | Как выглядит | Что означает |
|---|---|---|
| Серые точки | «дышат», разброс несколько дБ | сырые атомарные данные |
| Бирюзовая линия | спокойнее точек | быстрая медиана (признак) |
| Жёлтый пунктир | почти неподвижен | медленная база |
«Вот три уровня из нашей таблицы — прямо на экране. Точки это сырьё, бирюзовая линия — признак, жёлтая — память о норме.»
Проход через луч: бирюзовая линия ныряет вниз, жёлтая почти не двигается. Разность растёт — это и есть срабатывание.
Средний график — сам признак «медиана минус база» с красной линией порога. Пересечение видно глазом.
Методический приём. Показать сырьё и обработку вместе — принципиальное решение проекта. Доверие к выводу рождается тогда, когда видно, из чего он сделан. Дашборд, показывающий только итог («ТРЕВОГА»), не позволяет проверить, обоснован ли он.
Этот принцип переносится на любую визуализацию данных.
Блок 4. Лестница классификации (33–42 мин)
Центральный методический стержень модуля. Построить на доске вместе с классом.
ХОТИМ: «узнавать, что кто-то пересёк периметр» ← задача
↓ переформулируем измеримо
КЛАССЫ: норма / нарушитель / обрыв линка ← классификация
↓ что физически меняется между классами
ЯВЛЕНИЕ: тень в зоне Френеля + перемешанная многолучёвка ← физика (урок 1)
↓ чем это измерить
АТОМ: RSSI одного пакета, 15 раз в секунду ← атомарные данные
↓ сырое значение шумит — сжимаем окнами
ПРИЗНАКИ: медиана 0,5 с; база EMA 60 с; отклонение; σ ← feature engineering
↓ правило решения
ДЕТЕКТОР: тревога, если отклонение ≤ −3 дБ ИЛИ σ ≥ 2,5 дБ ← классификатор
↓ насколько он хорош
КАЧЕСТВО: попадания, пропуски, ложные → компромисс порогов ← ROC (урок 4)Универсальность лестницы. Эта схема применима к любой детекторной задаче — от медицинской диагностики до антиспама. Ученики уже проходили её части: BeaconRadio, урок 6 (признаки падения) и урок 7 (ROC). Здесь она собирается целиком.
Без громких слов это и есть введение в машинное обучение, сделанное ногами по школьному двору.
Блок 5. Практические задачи
Уровень A (13–14 лет)
A1. Почему нельзя просто поставить порог «тревога, если RSSI ниже −75 дБм»?
Ответ
По двум причинам: сигнал шумит на несколько децибел даже без событий, и медленно дрейфует от температуры, влажности и обстановки. Порог, выставленный утром, к вечеру окажется неверным.
A2. Что означают три линии на верхнем графике?
Ответ
Серые точки — сырые измерения RSSI каждого пакета. Бирюзовая линия — быстрая медиана (сглаженное текущее значение). Жёлтый пунктир — медленная база, то есть «норма», запомненная за последнюю минуту.
A3. Почему база почти не двигается, когда человек проходит через луч?
Ответ
Потому что она усредняет данные за очень долгое время (около минуты). Событие длительностью секунду почти не влияет на такое усреднение — база «не замечает» коротких изменений, для того она и нужна.
Уровень B (14–15 лет)
B1. Почему детектируют разность «медиана минус база», а не саму медиану?
Ответ
Потому что разность — относительная величина, не зависящая от абсолютного уровня сигнала. Если фон уполз на 3 дБ из-за погоды, база уползёт вместе с ним, и разность останется около нуля. Абсолютный порог пришлось бы перенастраивать, относительный работает сам.
B2. Почему в этом проекте используют медиану, а в охоте на лис — среднее?
Решение
| FoxHunter | RFCurtain | |
|---|---|---|
| Характер шума | мелкое гауссово дрожание | одиночные выбросы от отражений |
| Полезный сигнал | плавно меняется при ходьбе | резкая ступенька при проходе |
| Лучший фильтр | среднее (эффективнее гасит гауссов шум) | медиана (устойчива к выбросам, сохраняет ступеньку) |
Вывод: выбор фильтра определяется характером шума и характером сигнала, а не абстрактным «качеством» метода.
B3. Что произойдёт, если сделать оба окна одинаковой длительности?
Ответ
Разность между ними всегда будет близка к нулю: они станут реагировать на события одинаково и одновременно. Детектор перестанет работать.
Смысл конструкции — именно в разной инерции: быстрое окно реагирует на событие, медленное его игнорирует, и разность показывает наличие события.
Уровень C (15–16 лет)
C1. Постройте лестницу «задача → классы → признаки → решение» для новой задачи: определить, открыта ли дверь в комнате, по данным того же радиоканала.
Разбор
ХОТИМ: узнавать, открыта дверь или закрыта
КЛАССЫ: закрыта / открыта / (обрыв линка)
ЯВЛЕНИЕ: дверь меняет картину отражений в комнате
→ устойчиво меняется средний уровень и характер многолучёвки
АТОМ: RSSI пакета
ПРИЗНАКИ: средний уровень за 10 с; σ за 10 с
(окно длиннее, чем у занавеса: событие не мгновенное, а состояние)
ДЕТЕКТОР: сравнение с двумя эталонами, снятыми при калибровке
КАЧЕСТВО: доля верных определений на размеченной выборкеКлючевое отличие от занавеса: здесь классифицируется состояние, а не событие. Поэтому окна длиннее, база не нужна (нет дрейфа относительно чего), зато нужна калибровка эталонов.
Хороший ответ должен заметить это различие: событие и состояние требуют разных архитектур детектора.
C2. Постоянная времени базы — 60 секунд. Что произойдёт при 5 секундах? При 10 минутах?
Разбор
5 секунд: база станет «быстрой» и начнёт частично отслеживать само событие. Медленно идущий человек будет постепенно принят за новую норму — тревога снимется сама, хотя он ещё в луче. Это ошибка адаптивных систем (разберём на уроке 3).
10 минут: база станет очень инертной. Плюс — событие точно не съест. Минус — реальный дрейф фона (солнце, дождь) она отследит с большим запозданием, и в течение этого времени отклонение будет отличным от нуля, что даст ложные тревоги.
Вывод: постоянная времени базы выбирается из соотношения длительность события ≪ постоянная базы ≪ характерное время дрейфа фона. Для нашей задачи: событие ~1 с, дрейф ~часы, база 60 с — попадает в середину диапазона.
C3. Предложите третий признак, который улучшил бы детектор. Обоснуйте.
Разбор
Кандидаты:
- Скорость изменения (производная). Человек даёт быстрый спад, погодный дрейф — медленный. Признак различает их даже без базы.
- Длительность отклонения. Проход длится 0,5–2 с; более длительное отклонение — вероятно, изменение обстановки (поставили предмет).
- SNR отдельно от RSSI. RSSI отвечает на вопрос «как громко», SNR — «как чисто». Помеха меняет SNR, а поглощение телом — преимущественно RSSI.
- Форма провала. Симметричный провал — проход поперёк; асимметричный — движение вдоль луча.
Лучший ответ: SNR как независимая физическая величина — он даёт информацию, которой нет в RSSI, тогда как производная и длительность вычисляются из уже имеющегося сигнала.
Общий принцип: новый признак ценен тогда, когда несёт независимую информацию, а не пересчитывает старую.
Ответы на вопросы, которые прозвучат
| Вопрос ученика | Как отвечать |
|---|---|
| «Зачем показывать сырые точки — они же шумят?» | Чтобы было видно, из чего сделан вывод. Доверие к детектору рождается, когда виден весь путь от данных к решению |
| «Почему база жёлтая, а медиана бирюзовая?» | Цвет — способ различать слои. Важно, что их видно одновременно: это позволяет проверить работу алгоритма глазом |
| «Можно ли обойтись без базы, просто помня одно значение?» | Одно значение слишком шумное. База — усреднение за минуту, она устойчива и отражает именно норму, а не случайный отсчёт |
| «А если человек встанет в луч и будет стоять?» | Отличный вопрос — это и есть тема следующего урока. Пока скажу: без специальной меры тревога снимется сама |
| «Это уже искусственный интеллект?» | Это классификатор с ручными признаками — прямой предшественник ML. Отличие лишь в том, что признаки и пороги выбрали мы, а не алгоритм обучения |
Раздаточный лист (для печати)
Урок 2. Сырьё, признаки, решение
Три слоя данных — заполните:
Слой Что это В нашем проекте Атомарные данные Признаки Решение Два окна:
Окно Длительность Что вычисляет Задача Быстрое медиана Медленное (база) EMA Признак номер один: отклонение = __________ − __________
Почему не абсолютный порог? Две причины:
- _________________________________________
- _________________________________________
Наблюдение на живом экране:
Что делаю Серые точки Бирюзовая медиана Жёлтая база Стою в стороне Прохожу через луч Стою в луче 10 с ЛЕСТНИЦА КЛАССИФИКАЦИИ — заполните:
ХОТИМ: ______________________________ ↓ КЛАССЫ: ______________________________ ↓ ЯВЛЕНИЕ: ______________________________ ↓ АТОМ: ______________________________ ↓ ПРИЗНАКИ: ______________________________ ↓ ДЕТЕКТОР: ______________________________ ↓ КАЧЕСТВО: ______________________________
Домашнее задание
Обязательная часть
Врайтап по рубрике А. Обязательный пункт: объясните своими словами, зачем нужны два окна разной длительности.
Уровень A
Найти три примера, где важно сравнение «сейчас против обычного», а не абсолютное значение (пробки на дорогах, температура тела, цена товара).
Уровень B
Построить лестницу классификации для задачи «определить, что в комнате кто-то есть» по данным датчика освещённости.
Уровень C
Предложить, как детектор мог бы отличить человека от крупной собаки. Какие признаки и почему? Возможно ли это в принципе с одним лучом?
Ориентир для педагога
Возможные признаки: глубина просадки (человек выше и объёмнее — перекрывает большую долю зоны); высота относительно луча (собака проходит под антеннами, установленными на метре); длительность (скорость движения); форма профиля.
Честный вывод: надёжно различить одним лучом нельзя. Уверенная классификация потребует нескольких лучей на разной высоте — тогда человек перекроет верхний и нижний, а собака только нижний.
Ценность задания: ученик приходит к выводу, что для новой задачи может потребоваться изменение конструкции, а не только алгоритма. Это важный переход от программирования к инженерному проектированию.
Итог урока: что записать в журнал
Вывод урока 2
- Три слоя: атомарные данные (RSSI пакета) → признаки (вычисленные из окон) → решение (класс).
- Абсолютный порог не работает: сигнал шумит и медленно дрейфует.
- Быстрое окно (медиана 0,5 с) ловит событие, медленная база (EMA 60 с) помнит норму.
- Детектируют отклонение «медиана минус база» — относительную величину, независимую от дрейфа фона.
- Смысл конструкции — в разной инерции окон; при одинаковых окнах разность всегда нулевая.
- Медиана против среднего: выбор фильтра определяется характером шума и сигнала.
- Лестница классификации (задача → классы → явление → атом → признаки → детектор → качество) универсальна для любой детекторной задачи.
Связь с курсом
| Что родилось на этом уроке | Где станет инструментом |
|---|---|
| Лестница классификации | Уроки 3–4, выпускной проект |
| Два окна разной инерции | WarWalk (медиана по ячейке против общего профиля) |
| Отклонение вместо абсолютного порога | Любая работа с дрейфующими данными |
| «Показывай сырьё и обработку вместе» | Все визуализации курса |
Чек-лист педагога перед уроком
- Платы разнесены на рабочую дистанцию (6–15 м), линк устойчив
-
rf_curtain.pyзапускается, три графика отрисовываются - Проверено накануне: проход через луч даёт видимую просадку на среднем графике
- На доске заготовлено место для лестницы классификации
- Раздаточный лист распечатан