JMP에서 PINN을 사용하시나요?안녕하세요 여러분,
이 질문은 JMP 직원들을 대상으로 하는 질문이긴 하지만, 다른 사용자들도 추가적인 정보를 가지고 있을 수 있습니다.
JMP가 자사의 신경망 모델링 플랫폼에 물리 정보 기반 신경망(PINN)을 구현할 계획이 있는지 궁금합니다. 저는 물리학자(학계가 아닌 산업계)로서, 제가 분석하는 데이터의 상당 부분은 표준 JMP 데이터 테이블에서 포착하기 어려운 물리적 제약 조건을 내포하고 있습니다. JMP가 XGBoost나 NN, 또는 PyTorch 애드인과 같은 예측 모델링 플랫폼에 기울인 노력은 높이 평가하지만, 데이터를 모델링할 때 물리적 원동력이나 한계를 추출하는 것은 종종 어렵습니다. 이상적인 상황에서는 데이터를 모델링하는 자체 공식을 만들 수 있겠지만, 현실 세계에서는 응답을 지배하는 조화 진동자가 있는 것이 아니라 훨씬 더 복잡하고, 사용할 수 있는 모델 공식이 없는 경우가 많습니다.
물리 법칙을 기반으로 한 페널티 요소를 모델에 포함시키는 옵션이 있다면 정말 좋을 것 같습니다. 예를 들어, 기본적인 물리 법칙을 위반할 경우 해당 경로에 페널티를 부여하고, 반대로 물리 법칙을 준수할 경우 페널티를 완화하는 방식입니다. 더 나아가, 여러 개의 물리 법칙에 기반한 페널티 요소를 포함시킬 수 있다면 더욱 좋을 것입니다. 통계 분석도 중요하지만, 거의 모든 데이터 세트에는 적용되는 물리 법칙이 존재하기 때문입니다.
그냥 궁금해서요.
감사해요!,
DS
고급 통계 모델링자동화 및 스크립팅데이터 탐색 및 시각화예측 모델링 및 머신 러닝제목: JMP의 PINN 관련 질문파이썬 통합이 JMP 18 이상 버전에 가져다주는 가장 큰 장점 중 하나는 바로 JMP의 기능을 필요에 맞게 사용자 정의할 수 있다는 점입니다. 사용자의 요구에 직접적으로 맞는 솔루션을 구현할 수 있습니다. 'PINN 물리 기반 신경망용 파이썬 패키지'를 구글에서 검색해 보면 다음과 같은 결과가 나옵니다.
물리 정보 기반 신경망(PINN) 구축을 위한 가장 인기 있고 포괄적인 Python 패키지는 크게 두 가지 범주로 나뉩니다.
전용 고수준 PINN 라이브러리 및 저수준 핵심 딥러닝 프레임워크.
기하 도구, 경계 조건 및 PDE 솔버가 이미 내장된 즉시 사용 가능한 솔루션을 원하면
DeepXDE 와 같은 고수준 라이브러리를 사용하십시오. 기본 수학에 대한 완전한 사용자 정의 및 최대 제어를 원하면
PyTorch 또는
JAX 와 같은 핵심 프레임워크를 사용하여 PINN을 구축하십시오.
[ 1 , 2 , 3 , 4 , 5 ]
이러한 도메인별 라이브러리는 공간-시간 기하학 생성, 경계/초기값 조건 및 특수 최적화 도구(L-BFGS 등)를 위한 내장 루틴을 제공합니다.
[ 1 ]
- 딥엑스데 : 과학적 머신러닝을 위한 가장 널리 사용되는 포괄적인 프레임워크입니다. 복잡한 다차원 기하 구조, 사용자 정의 경계 조건을 지원하며, 순방향/역방향 문제를 손쉽게 처리합니다. PyTorch, TensorFlow, JAX 또는 PaddlePaddle 백엔드 위에서 작동합니다.[ 1 , 2 , 3 , 4 , 5 ]
- Modulus(NVIDIA 제공) : 산업용 물리 시뮬레이션에 최적화된 고성능 엔터프라이즈급 프레임워크입니다. 기존 물리 워크플로우에 PINN을 원활하게 통합하고 GPU 가속을 활용하여 대규모 처리를 지원합니다.[ 1 , 2 , 3 ]
- 사이언 : 물리 기반 딥러닝, 과학 컴퓨팅 및 데이터 기반 편미분 방정식 역산에 특화된 Keras 및 TensorFlow 기반 래퍼 라이브러리입니다.[ 1 ]
- 정령 : Optax 생태계를 활용하여 역문제, 메타 모델링 및 경사 기반 최적화를 처리하도록 특별히 설계된 매우 유연하고 모듈식이며 빠른 JAX 기반 라이브러리입니다.[ 1 ]
- 핀데 : 복잡한 미분 방정식 시스템을 해결하기 위해 기존 PINN 아키텍처와 Deep Operator Networks(DeepONets)를 모두 처리하도록 구축된 통합 오픈 소스 라이브러리입니다.[ 1 , 2 ]
또는 PyTorch나 다른 기본 라이브러리를 사용하여 직접 무언가를 구축하는 것도 가능합니다 .
JMP 환경에 DeepXDE를 설치하는 것은 파이썬 스크립트 창을 여는 것과 같습니다.
import jmp
from jmputils import pip
jpip('install', 'DeepXDE')
그런 다음 해당 스크립트를 실행하여 DeepXDE와 그 종속성을 설치하십시오.
파이썬 패키지를 많이 설치합니다.
/*:
Collecting DeepXDE
Downloading deepxde-1.15.0-py3-none-any.whl.metadata (12 kB)
Collecting matplotlib (from DeepXDE)
Downloading matplotlib-3.11.1-cp314-cp314-macosx_11_0_arm64.whl.metadata (80 kB)
Requirement already satisfied: numpy in /Users/panels/Library/Application Support/JMP/Python/3.14/lib/python/site-packages (from DeepXDE) (2.5.0)
Collecting scikit-learn (from DeepXDE)
Downloading scikit_learn-1.9.0-cp314-cp314-macosx_12_0_arm64.whl.metadata (11 kB)
Collecting scikit-optimize>=0.10.2 (from DeepXDE)
Downloading scikit_optimize-0.10.2-py2.py3-none-any.whl.metadata (9.7 kB)
Collecting scipy (from DeepXDE)
Downloading scipy-1.18.0-cp314-cp314-macosx_14_0_arm64.whl.metadata (62 kB)
Collecting joblib>=0.11 (from scikit-optimize>=0.10.2->DeepXDE)
Downloading joblib-1.5.3-py3-none-any.whl.metadata (5.5 kB)
Collecting pyaml>=16.9 (from scikit-optimize>=0.10.2->DeepXDE)
Downloading pyaml-26.7.0-py3-none-any.whl.metadata (12 kB)
Collecting packaging>=21.3 (from scikit-optimize>=0.10.2->DeepXDE)
Downloading packaging-26.3-py3-none-any.whl.metadata (3.5 kB)
Collecting PyYAML (from pyaml>=16.9->scikit-optimize>=0.10.2->DeepXDE)
Downloading pyyaml-6.0.3-cp314-cp314-macosx_11_0_arm64.whl.metadata (2.4 kB)
Collecting narwhals>=2.0.1 (from scikit-learn->DeepXDE)
Downloading narwhals-2.24.0-py3-none-any.whl.metadata (15 kB)
Collecting threadpoolctl>=3.5.0 (from scikit-learn->DeepXDE)
Downloading threadpoolctl-3.6.0-py3-none-any.whl.metadata (13 kB)
Collecting contourpy>=1.0.1 (from matplotlib->DeepXDE)
Downloading contourpy-1.3.3-cp314-cp314-macosx_11_0_arm64.whl.metadata (5.5 kB)
Collecting cycler>=0.10 (from matplotlib->DeepXDE)
Downloading cycler-0.12.1-py3-none-any.whl.metadata (3.8 kB)
Collecting fonttools>=4.28.2 (from matplotlib->DeepXDE)
Downloading fonttools-4.63.0-cp314-cp314-macosx_10_15_universal2.whl.metadata (118 kB)
Collecting kiwisolver>=1.3.1 (from matplotlib->DeepXDE)
Downloading kiwisolver-1.5.0-cp314-cp314-macosx_11_0_arm64.whl.metadata (5.1 kB)
Collecting pillow>=9 (from matplotlib->DeepXDE)
Downloading pillow-12.3.0-cp314-cp314-macosx_11_0_arm64.whl.metadata (9.1 kB)
Collecting pyparsing>=3 (from matplotlib->DeepXDE)
Downloading pyparsing-3.3.2-py3-none-any.whl.metadata (5.8 kB)
Requirement already satisfied: python-dateutil>=2.7 in /Users/panels/Library/Application Support/JMP/Python/3.14/lib/python/site-packages (from matplotlib->DeepXDE) (2.9.0.post0)
Requirement already satisfied: six>=1.5 in /Users/panels/Library/Application Support/JMP/Python/3.14/lib/python/site-packages (from python-dateutil>=2.7->matplotlib->DeepXDE) (1.17.0)
Downloading deepxde-1.15.0-py3-none-any.whl (195 kB)
Downloading scikit_optimize-0.10.2-py2.py3-none-any.whl (107 kB)
Downloading joblib-1.5.3-py3-none-any.whl (309 kB)
Downloading packaging-26.3-py3-none-any.whl (129 kB)
Downloading pyaml-26.7.0-py3-none-any.whl (27 kB)
Downloading scikit_learn-1.9.0-cp314-cp314-macosx_12_0_arm64.whl (8.2 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 8.2/8.2 MB 82.6 MB/s 0:00:00
Downloading narwhals-2.24.0-py3-none-any.whl (461 kB)
Downloading scipy-1.18.0-cp314-cp314-macosx_14_0_arm64.whl (20.4 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 20.4/20.4 MB 96.4 MB/s 0:00:00
Downloading threadpoolctl-3.6.0-py3-none-any.whl (18 kB)
Downloading matplotlib-3.11.1-cp314-cp314-macosx_11_0_arm64.whl (9.3 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 9.3/9.3 MB 94.1 MB/s 0:00:00
Downloading contourpy-1.3.3-cp314-cp314-macosx_11_0_arm64.whl (273 kB)
Downloading cycler-0.12.1-py3-none-any.whl (8.3 kB)
Downloading fonttools-4.63.0-cp314-cp314-macosx_10_15_universal2.whl (2.9 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.9/2.9 MB 75.6 MB/s 0:00:00
Downloading kiwisolver-1.5.0-cp314-cp314-macosx_11_0_arm64.whl (64 kB)
Downloading pillow-12.3.0-cp314-cp314-macosx_11_0_arm64.whl (4.8 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.8/4.8 MB 85.4 MB/s 0:00:00
Downloading pyparsing-3.3.2-py3-none-any.whl (122 kB)
Downloading pyyaml-6.0.3-cp314-cp314-macosx_11_0_arm64.whl (173 kB)
Installing collected packages: threadpoolctl, scipy, PyYAML, pyparsing, pillow, packaging, narwhals, kiwisolver, joblib, fonttools, cycler, contourpy, scikit-learn, pyaml, matplotlib, scikit-optimize, DeepXDE
Successfully installed DeepXDE-1.15.0 PyYAML-6.0.3 contourpy-1.3.3 cycler-0.12.1 fonttools-4.63.0 joblib-1.5.3 kiwisolver-1.5.0 matplotlib-3.11.1 narwhals-2.24.0 packaging-26.3 pillow-12.3.0 pyaml-26.7.0 pyparsing-3.3.2 scikit-learn-1.9.0 scikit-optimize-0.10.2 scipy-1.18.0 threadpoolctl-3.6.0
설치가 완료되면 다음부터 사용하시면 됩니다.
deepxde 가져오기
...여기에 파이썬 코드를 작성하세요...
DeepXDE 문서는 다음 링크에서 확인할 수 있습니다 => https://deepxde.readthedocs.io/en/latest/index.html
머신 러닝, Torch 기반 또는 GPU 기반 라이브러리를 사용할 때는 컴퓨터 사양이 좋을수록 성능이 향상됩니다. 특히 RAM, 그중에서도 GPU VRAM과 Apple Silicon 또는 Blackwell 기반 시스템과 같은 통합 VRAM은 매우 중요합니다. 이러한 도구들을 최대한 활용하려면 워크스테이션급 하드웨어가 필요합니다.
설치 및 가져오기 작업은 JMP 19.2 개발 빌드에서 실행되었지만, JMP 18 이상 버전에서는 모두 작동해야 합니다.
제목: JMP의 PINN 관련 질문참고: 저는 JMP 20의 로컬 빌드 버전을 사용했지만, JMP 18 또는 19에서도 문제가 발생하지 않을 것으로 예상합니다.
DeepXDE를 가져오려면 백엔드도 필요합니다.
import jmp
from jmputils import jpip
jpip('install','torch')
import os
os.environ['DDE_BACKEND']='pytorch'
import torch
if torch.mps.is_available():
torch.set_default_device('mps')
if torch.cuda.is_available():
torch.set_default_device('cuda')
import deepxde
help(deepxde)
위의 'mps'와 'cuda' 검사 부분을 참고하세요. MPS는 Apple의 Metal Performance Shaders(MPS)이고, CUDA는 Windows와 Linux에서 Nvidia가 사용하는 핵심 그래픽 처리 기술입니다. 이 검사는 torch가 사용 가능한 GPU를 활용하도록 보장합니다.
이 프로그램은 deepdxe의 도움을 받아 실행되었고 많은 출력 결과를 제공했습니다.
import deepxde
help(deepxde)
/*:
Using backend: pytorch
Other supported backends: tensorflow.compat.v1, tensorflow, jax, paddle.
paddle supports more examples now and is recommended.
Matplotlib is building the font cache; this may take a moment.
Help on package deepxde:
NAME
deepxde
PACKAGE CONTENTS
_version
backend (package)
callbacks
config
...
DATA
__all__ = ['backend', 'callbacks', 'data', 'geometry', 'grad', 'icbc',...
VERSION
1.15.0
FILE
/Users/panels/Library/Application Support/JMP/Python/3.14/lib/python/site-packages/deepxde/__init__.py
제목: JMP에서 PINN 사용 관련 질문이러한 논의는 기술 발전이 인도에서, 특히 물리학, 데이터 과학, 기계 학습 및 특정 분야 지식을 결합한 전문가들에게 새로운 직업 기회를 창출한다는 점을 보여줍니다.