- Jupyter Notebook 100%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| docs | ||
| .gitignore | ||
| lab2_local.ipynb | ||
| lab2_yandex.ipynb | ||
| README.md | ||
BigData: XOR Arbiter PUFs
Репозиторий с лабораторной работой по предмету "Большие данные".
Тема исследования: моделирование XOR Arbiter PUF с помощью логистической регрессии с L1-регуляризацией и анализ интерпретируемости признаков.
Цель работы
Проверить, может ли линейная модель:
- выявить информативные признаки в данных
XOR Arbiter PUF; - выделить наиболее важные биты;
- показать устойчивый отбор признаков при изменении обучающей выборки;
- дать выигрыш при использовании
phi-featuresпо сравнению сraw-признаками.
Дополнительно в работе рассматриваются:
- зависимость времени обучения от объема данных;
- зависимость времени обучения от числа вычислителей.
Что находится в репозитории
- lab2_local.ipynb — основная версия ноутбука для локального запуска.
- lab2_yandex.ipynb — версия ноутбука для запуска в облачном окружении.
- final_conclusions.md — итоговые выводы по доработкам и по работе в целом.
- corrections.md — список замечаний и доработок.
- dataset/XOR_Arbiter_PUFs — используемый датасет.
- docs — материалы и вспомогательные документы по теме.
Старые файлы вида lab2_old.ipynb, lab2 copy.ipynb, lab2-Copy1.ipynb являются промежуточными версиями и не считаются основной точкой входа.
Датасет
В работе используются два поднабора:
6xor_64bit5xor_128bit
Каждая строка содержит:
- входные биты
challenge; - целевой отклик
PUF.
В ноутбуке рассматриваются два представления признаков:
raw— исходные биты;phi— преобразованные признаки для проверки линейной моделируемости.
Что делает ноутбук
Основные этапы анализа:
- Загрузка и проверка данных.
- Подготовка признаков и целевой переменной.
- Проверка баланса классов.
- Стандартизация данных.
- Обучение логистической регрессии с
L1-регуляризацией. - Анализ коэффициентов модели и интерпретируемости.
- Проверка гипотезы о примерно равномерном влиянии признаков.
- Сравнение
rawиphi-features. - Анализ стабильности отбора признаков.
- Дополнительные эксперименты по времени обучения:
- от объема данных;
- от числа вычислителей.
Зависимости
Основные зависимости:
pip install numpy matplotlib scikit-learn threadpoolctl jupyter
Из стандартной библиотеки используются:
pathlibcollectionscsvtimecontextlib
Как запустить
- Создать и активировать виртуальное окружение.
- Установить зависимости.
- Открыть Jupyter:
jupyter notebook
- Запустить один из ноутбуков:
lab2_local.ipynb— если работа идет локально;lab2_yandex.ipynb— если работа идет в облаке.
- Выполнять ячейки сверху вниз.
Структура результатов
Ноутбук оформлен в логике требований преподавателя:
- Процесс анализа.
- Настройки и преобразования данных.
- Настройки функций.
- Настройки алгоритма.
- Построение моделей: время от объема данных.
- Построение моделей: время от числа вычислителей.
- Построенные модели и их оценки.
- Выводы.
Основные результаты
По итогам текущего анализа:
- качество модели оказалось близким к случайному:
Accuracy ≈ 0.5ROC-AUC ≈ 0.5LogLoss ≈ 0.693
L1-регуляризация не выделила небольшой набор доминирующих признаков;- коэффициенты модели не показывают выраженно важных битов;
- различия между
rawиphi-featuresоказались несущественными; - устойчивость отбора признаков с ростом выборки повышается, но остается ограниченной;
- увеличение числа вычислителей не дало заметного выигрыша по времени в выбранной постановке.
Итоговый вывод: выбранная линейная модель не выявила сильной и надежной структуры в данных XOR Arbiter PUF, что согласуется с высокой сложностью моделирования такого типа PUF.
Где смотреть итоговые выводы
Краткий итог по исследованию вынесен в:
Примечание
Основной исследовательский результат в этом проекте — не производительность, а интерпретируемость модели, сравнение представлений признаков и устойчивость отбора признаков.