gfo-project/Gradient-Free-Optimizers

Lightweight optimization with local, global, population-based and sequential techniques across mixed search spaces

무엇을 해결하는가

Gradient-Free-Optimizers (GFO)는 기울기(gradient)를 사용할 수 없거나 계산하기 비실용적인 "black-box" 함수를 최적화하는 통합된 방법을 제공합니다. 이는 머신러닝 모델의 하이퍼파라미터 튜닝, 시뮬레이션 최적화, 그리고 입력과 출력 사이의 관계가 미분으로 수학적으로 정의되지 않는 엔지니어링 설계와 같은 작업에 특화되어 설계되었습니다.

작동 방식

이 라이브러리는 로컬 탐색(local search), 글로벌 탐색(global search), 개체군 기반(population-based), 그리고 순차적 모델 기반(sequential model-based) 기술(예: Bayesian optimization)로 분류되는 23가지의 서로 다른 최적화 알고리즘에 대해 일관된 API를 제공합니다. 사용자는 최대화할 목적 함수(objective function)와 연속 범위, 이산 그리드, 범주형 선택, 그리고 SciPy 분포를 혼합할 수 있는 탐색 공간을 정의합니다. 그러면 최적화 도구는 파라미터를 제안하고, 목적 함수를 평가하며, 최적의 점수를 찾기 위해 반복합니다.

대상 사용자

기울기 기반 방식에 의존하지 않고 하이퍼파라미터를 튜닝하거나 복잡한 시스템을 최적화해야 하는 데이터 과학자, ML 엔지니어, 그리고 연구원들입니다. 또한 낮은 의존성 발자국(dependency footprint) 덕분에(NumPy와 pandas만 필요) 최소 환경, 컨테이너 또는 임베디드 시스템에서 작업하는 개발자들에게도 적합합니다.

주요 특징

  • Unified API: 단 한 줄의 코드로 23가지의 서로 다른 알고리즘(예: Hill Climbing, Bayesian, Particle Swarm) 사이를 전환할 수 있습니다.
  • Mixed Search Spaces: 하나의 탐색에서 연속형, 이산형, 범주형 및 분포 기반 차원을 결합하는 것을 지원합니다.
  • Built-in Caching: 메모리 시스템이 비용이 많이 드는 목적 함수의 중복 평가를 방지합니다.
  • Flexible Control: 수동 루프 제어를 위한 "Ask/Tell" 인터페이스, 조기 종료 기준, 그리고 유효하지 않은 영역을 피하기 위한 제약 조건 지원을 포함합니다.
  • Lightweight: 최소한의 핵심 의존성을 가져 다른 도구의 백엔드로 통합하기 쉽습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트