다음을 입력하여 새로운 가상 환경을 설정하는 것이 좋습니다.
virtualenv -p python3 feyn source feyn/bin/activate
먼저 pip install numpy
로 numpy를 설치하세요. 'aifeynman' 패키지는 PyPI에서 사용할 수 있으며 pip install aifeynman
으로 설치할 수 있습니다.
현재 AI Feynman은 Linux 및 Mac 환경에서만 지원됩니다.
깨끗한 디렉터리로 이동하고 다음 Python 명령을 실행합니다.
import aifeynman aifeynman.get_demos("example_data") # Download examples from server aifeynman.run_aifeynman("./example_data/", "example1.txt", 60, "14ops.txt", polyfit_deg=3, NN_epochs=500)
이 예제는 가지고 있는 컴퓨터와 GPU 유무에 따라 약 10~30분 안에 해결됩니다.
여기서 'example.txt'에는 기호 회귀를 수행할 데이터 테이블이 포함되어 있으며 열은 공백, 쉼표 또는 탭으로 구분되어 있습니다. 다른 매개변수는 검색을 제어합니다. 여기서 무차별 대입 모듈은 '14ops.txt'의 14가지 기본 작업 조합을 최대 60초 동안 시도하고, 다항식 맞춤은 최대 3차까지 시도하고, 보간 신경망은 최대 60초 동안 훈련됩니다. 500시대까지.
이 코드는 AI Feynman: 기호 회귀를 위한 물리학에서 영감을 받은 방법, Silviu-Marian Udrescu 및 Max Tegmark(2019) [Science Advances] 및 AI Feynman 2.0: 그래프 모듈성을 활용하는 파레토 최적 기호 회귀, Udrescu SM 등의 향상된 구현입니다. 알. (2020) [arXiv].
코드를 실행하는 방법에 대한 자세한 설명은 이 매체 기사를 확인하세요.
시작하려면 compile.sh를 실행하여 무차별 대입 코드에 사용되는 포트란 파일을 컴파일하십시오.
ai_feynman_example.py에는 일부 예제에서 코드를 실행하는 예제가 포함되어 있습니다(example_data 디렉터리에 있음). 예제는 논문의 표 4에 있는 방정식 I.8.14, I.10.7 및 I.50.26에 해당합니다. 코드를 테스트할 수 있는 더 많은 데이터 파일은 Feynman 기호 회귀 데이터베이스에서 찾을 수 있습니다.
사용자가 호출하는 코드의 주요 기능에는 다음 매개변수가 있습니다.
pathdir - 데이터 파일이 포함된 디렉터리의 경로
filename - 데이터가 포함된 파일의 이름
BF_try_time - 각 무차별 호출에 대한 시간 제한(기본적으로 60초로 설정됨)
BF_ops_file_type - 무차별 대입 코드에 사용될 기호가 포함된 파일(기본적으로 "14ops.txt"로 설정됨)
polyfit_deg - 다항식 피팅 루틴에서 시도한 다항식의 최대 차수(기본값은 4로 설정)
NN_epochs - 훈련을 위한 에포크 수(기본적으로 4000으로 설정됨)
vars_name - 방정식에 나타나는 변수의 이름(출력 변수의 이름 포함) 이는 데이터가 포함된 파일에 있는 것과 동일한 순서로 나타나는 변수 이름과 함께 문자열 목록으로 전달되어야 합니다.
test_percentage - 따로 보관하고 테스트 세트로 사용할 입력 데이터의 비율
분석할 데이터 파일은 각 열(종속 및 독립) 변수의 수치 값을 포함하는 텍스트 파일이어야 합니다. 솔루션 파일은 "results" 디렉터리에 "solution_{filename}"이라는 이름으로 저장됩니다. 솔루션 파일에는 여러 행(파레토 경계선의 각 지점에 해당)이 포함되며 각 행에는 다음이 표시됩니다.
입력 데이터에 적용된 발견된 방정식의 오류를 기반으로 한 평균 로그(비트 단위의 평균 오류로 간주될 수 있음)
입력 데이터에 적용되는 발견된 방정식 오류의 2를 기반으로 하는 누적 로그(이는 비트 단위의 누적 오류로 간주될 수 있음)
발견된 방정식의 복잡성(비트 단위)
입력 데이터에 적용된 발견된 방정식의 오류
발견된 방정식의 기호 표현
test_percentage가 0이 아닌 경우 각 행의 시작 부분에 숫자가 하나 더 추가되어 테스트 세트에서 발견된 방정식의 오류를 표시합니다.
ai_feynman_terminal_example.py를 사용하면 명령줄에서 aiFeynman 함수를 호출할 수 있습니다. (예: python ai_feynman_terminal_example.py --pathdir=../example_data/ --filename=example1.txt). python ai_feynman_terminal_example.py --help를 사용하여 함수에 전달할 수 있는 사용 가능한 모든 매개변수를 표시합니다.
AI Feynman 작업의 측면을 비교, 구축 또는 사용하는 경우 다음을 인용하십시오.
@article{udrescu2020ai, title={AI Feynman: A physics-inspired method for symbolic regression}, author={Udrescu, Silviu-Marian and Tegmark, Max}, journal={Science Advances}, volume={6}, number={16}, pages={eaay2631}, year={2020}, publisher={American Association for the Advancement of Science} }
@article{udrescu2020ai, title={AI Feynman 2.0: Pareto-optimal symbolic regression exploiting graph modularity}, author={Udrescu, Silviu-Marian and Tan, Andrew and Feng, Jiahai and Neto, Orisvaldo and Wu, Tailin and Tegmark, Max}, journal={arXiv preprint arXiv:2006.10782}, year={2020} }