۲ آبان ۱۴۰۵ github.com ۳ دقیقه مطالعه

کشف فرمول‌های ریاضی از دل داده‌ها با ابزار یادگیری نمادین PySR

کشف فرمول‌های ریاضی از دل داده‌ها با ابزار یادگیری نمادین PySR — Symbolic Learning in Python and Julia

خلاصه

پروژه PySR یک ابزار متن‌باز قدرتمند در پایتون و جولیا برای رگرسیون نمادین است. این ابزار به توسعه‌دهندگان کمک می‌کند تا به جای مدل‌های جعبه‌سیاه یادگیری ماشین، عبارات ریاضی قابل‌فهم و بهینه‌ای را از روی داده‌ها کشف کنند.

معرفی پروژه PySR و حل مسئله رگرسیون نمادین

ابزار PySR یک کتابخانه متن‌باز است که وظیفه انجام «رگرسیون نمادین» (Symbolic Regression) را بر عهده دارد. برخلاف مدل‌های سنتی یادگیری ماشین و شبکه‌های عصبی عمیق که مانند جعبه‌سیاه عمل می‌کنند، هدف رگرسیون نمادین پیدا کردن یک عبارت یا فرمول ریاضی صریح و قابل‌تفسیر است که بتواند داده‌های ورودی را به خروجی مرتبط سازد.

این ابزار از سال ۲۰۲۰ توسعه یافته و هسته اصلی جستجوی آن با زبان Julia (کتابخانه SymbolicRegression.jl) پیاده‌سازی شده است تا بالاترین کارایی و سرعت ممکن را ارائه دهد. رابط کاربری اصلی این کتابخانه در Python قرار دارد و به شکلی طراحی شده که مهندسان داده و برنامه‌نویسان به راحتی بتوانند از آن استفاده کنند.

معماری و نحوه عملکرد

هسته جستجوی PySR مبتنی بر الگوریتم‌های تکاملی و ژنتیک است. در واقعیت، فرآیند آموزش مدل شامل صدها هزار جهش و ارزیابی معادلات مختلف در چند نخ (multithreaded) است که بهترین ترکیب را از نظر دقت و سادگی پیدا کند.

از ویژگی‌های فنی برجسته این ابزار می‌توان به موارد زیر اشاره کرد:

  • پشتیبانی از عملگرهای پایه و سفارشی (نوشته شده با سینتکس زبان Julia)
  • امکان تعریف توابع زیان سفارشی (Custom Loss)
  • خروجی گرفتن به فرمت‌های مختلف از جمله SymPy، کتابخانه‌های مشتق‌پذیر JAX و PyTorch، و همچنین تابع‌های ساده لامبدا
  • قابلیت ذخیره‌سازی وضعیت جستجو و ادامه آن (warm_start)
  • امکان کاهش نویز و انتخاب ویژگی‌ها به صورت خودکار

نحوه نصب و استفاده سریع

برای شروع کار می‌توانید به راحتی کتابخانه را با pip نصب کنید:

bash
pip install pysr

یا از طریق conda اقدام نمایید:

bash
conda install -c conda-forge pysr

نکته مهم این است که وابستگی‌های زبان جولیا به‌صورت خودکار در اولین ایمپورت شدن کتابخانه نصب خواهند شد.

الگوی استفاده از PySR کاملاً مشابه کتابخانه محبوب scikit-learn است. نمونه کد زیر نحوه تعریف مدل و آموزش آن را نشان می‌دهد:

python
import numpy as np
from pysr import PySRRegressor

# تولید داده‌های تستی
X = 2 * np.random.randn(100, 5)
y = 2.5382 * np.cos(X[:, 3]) + X[:, 0] ** 2 - 0.5

# تعریف مدل
model = PySRRegressor(
    maxsize=20,
    niterations=40,
    binary_operators=["+", "*"],
    unary_operators=["cos", "exp", "sin", "inv(x) = 1/x"],
)

# آموزش مدل روی داده‌ها
model.fit(X, y)

# چاپ معادلات پیدا شده
print(model)

پس از اتمام آموزش، مدل لیستی از معادلات را بر اساس پیچیدگی و میزان خطا (Loss) در یک دیتافریم pandas ذخیره می‌کند که با دستور model.equations_ قابل دسترسی است.

سیگنال‌های بلوغ و وضعیت پروژه

این مخزن گیت‌هاب با داشتن بیش از ۴۱۰۰ ستاره و فعالیت مستمر تا سال‌های اخیر، یک پروژه بالغ و فعال در حوزه هوش مصنوعی قابل‌تفسیر (Explainable AI) به شمار می‌رود. لایسنس پروژه Apache-2.0 بوده و مستندات کامل آن روی وب‌سایت اختصاصی pysr.ai در دسترس است.

جایگاه در هکرنیوز و مقایسه با ابزارها

در بحث‌های اخیر هکرنیوز، توسعه‌دهندگان به ابزارهای جایگزین و روش‌های قطعی‌تر (مانند پیاده‌سازی‌های مبتنی بر JAX برای رگرسیون نمادین) نیز اشاره کرده‌اند. با این حال، PySR به لطف ترکیب قدرت زبان جولیا و سادگی اکوسیستم پایتون، یکی از انتخاب‌های اصلی مهندسان برای «تقطیر نمادین» (Symbolic Distillation) شبکه‌های عصبی و تبدیل آن‌ها به فرمول‌های تحلیلی شفاف محسوب می‌شود.

این مطلب به‌صورت کاملاً خودکار و با هوش مصنوعی از مقالهٔ اصلی و بحث هکرنیوز تهیه شده و ممکن است خطا داشته باشد. حقوق مطلب اصلی متعلق به نویسندهٔ آن است. قوانین و گزارش مشکل

این خبر را با دیگران به اشتراک بگذارید

خبرهای فناوری در قالب پست و ویدیوی کوتاه، در اینستاگرام هکرنیوز بلاگ. به‌زودی
هر خبر به محض انتشار، به‌همراه پادکست روزانه در کانال تلگرام هکرنیوز بلاگ.