프로젝트 소개

PySR은 기호 회귀를 위한 오픈소스 도구로, 주어진 목표를 최적화하는 해석 가능한 기호 표현을 찾는 머신러닝 작업입니다. Julia 라이브러리인 SymbolicRegression.jl과 함께 구축되어 PySR의 기능을 구동하는 검색 엔진 역할을 합니다. 설치는 pip 또는 conda-forge를 통해 간단하게 할 수 있습니다. Julia 의존성은 첫 임포트 시 자동으로 설치됩니다. PySR은 또한 루트 접근 권한이 없는 클러스터 환경을 위해 Docker와 Apptainer를 통한 컨테이너화된 배포를 지원합니다. 주요 인터페이스는 `PySRRegressor`를 통해 scikit-learn 관례를 따릅니다. 사용자는 최대 표현 크기, 반복 횟수, 이항 및 단항 연산자, 사용자 정의 손실 함수(Julia 문법으로 작성), 모델 선택 전략을 포함한 검색 매개변수를 지정합니다. 검색 엔진은 구성된 반복에 걸쳐 수십만 번의 변이와 방정식 평가를 수행합니다. 주요 기능은 다음과 같습니다: - Julia 문법으로 정의된 사용자 정의 연산자(예: `inv(x) = 1/x`) - 사용자 정의 요소별 손실 함수 - 노이즈 제거 모드(`denoise=True`) - 특성 선택(`select_k_features=N`) - 중단된 검색을 재개할 수 있는 웜 스타트 지원 - 다양한 형식으로의 방정식 내보내기: 호출 가능한 람다, SymPy, JAX(미분 가능), PyTorch(미분 가능) - 표현 복잡도를 제어하기 위한 중첩 연산자 제약 - Slurm 클러스터 관리자를 통한 다중 노드 클러스터 지원 - 저장된 모델 상태를 위한 명예의 전당 CSV 및 PKL 직렬화 PySR은 또한 신경망의 기호적 증류를 지원합니다. 훈련된 신경망을 해석적 방정식으로 변환하여 딥러닝 모델을 이해할 수 있는 해석 가능한 방법을 제공합니다. 이 접근 방식은 arXiv에서 확인할 수 있는 관련 연구 논문에 설명되어 있습니다.