Об этом проекте
PySR — это инструмент символьной регрессии с открытым исходным кодом — задачи машинного обучения, заключающейся в поиске интерпретируемых символьных выражений, оптимизирующих заданную целевую функцию. Он разработан совместно с библиотекой SymbolicRegression.jl для Julia, которая выступает поисковым движком, обеспечивающим возможности PySR.
Установка выполняется просто через pip или conda-forge. Зависимости Julia устанавливаются автоматически при первом импорте. PySR также поддерживает контейнеризованное развёртывание через Docker и Apptainer для кластерных сред без root-доступа.
Основной интерфейс следует соглашениям scikit-learn через `PySRRegressor`. Пользователи задают параметры поиска, включая максимальный размер выражения, количество итераций, бинарные и унарные операторы, пользовательские функции потерь (написанные на синтаксисе Julia) и стратегии выбора модели. Поисковый движок выполняет сотни тысяч мутаций и оценок уравнений в течение заданных итераций.
Ключевые возможности:
- Пользовательские операторы, определяемые на синтаксисе Julia (например, `inv(x) = 1/x`)
- Пользовательские поэлементные функции потерь
- Режим шумоподавления (`denoise=True`)
- Отбор признаков (`select_k_features=N`)
- Поддержка тёплого старта для возобновления прерванного поиска
- Экспорт уравнений в нескольких форматах: вызываемая лямбда, SymPy, JAX (дифференцируемый) и PyTorch (дифференцируемый)
- Вложенные ограничения операторов для управления сложностью выражений
- Поддержка многоузловых кластеров через менеджер кластеров Slurm
- Сериализация зала славы в форматах CSV и PKL для сохранения состояний модели
PySR также поддерживает символьную дистилляцию нейронных сетей — преобразование обученных нейросетей в аналитические уравнения, что предоставляет интерпретируемый способ понимания моделей глубокого обучения. Этот подход описан в соответствующих научных статьях, доступных на arXiv.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.