معرفی Keplearn؛ ابزار رگرسیون نمادین به زبان Rust برای استخراج معادلات فیزیکی و ریاضی از دادهها — Keplearn: Extract Equations from Data in Seconds
خلاصه
ابزار Keplearn یک موتور رگرسیون نمادین قطعی و توسعهیافته با زبان Rust است که میتواند قوانین بسته ریاضی را تنها در چند ثانیه از روی دادههای جدولبندیشده استخراج کند. این ابزار تکفایلی با تکیه بر کاهش بازگشتی و قابلیتهای تطبیق ثابتها، عملکرد چشمگیری در بنچمارکهای استاندارد از خود نشان داده است.
ابزار Keplearn یک موتور رگرسیون نمادین (Symbolic Regression) قطعی است که با زبان برنامهنویسی Rust نوشته شده و هدف آن پیدا کردن روابط و قوانین بسته ریاضی از روی ستونهای دادههای اندازهگیریشده است. نام این ابزار از روی نام «یوهانس کپلر» (Johannes Kepler)، اخترشناس مشهور، برداشته شده است؛ کسی که توانست قوانین حرکت سیارات را با بررسی جداول مشاهدات نجومی استخراج کند.
این ابزار به توسعهدهندگان و پژوهشگران کمک میکند تا با دادن فایلهای داده (TSV یا CSV) به برنامه، معادلات و فرمولهای حاکم بر دادهها را به شکل ساختاریافته دریافت کنند.
ویژگیها و نحوه کارکرد
Keplearn به گونهای طراحی شده است که نتایج را در عرض چند ثانیه ارائه دهد. قوانین دقیق و مشخص معمولاً در کسری از ثانیه حل میشوند و برای حالات پیچیدهتر نیز میتوان از پرچم --timeout استفاده کرد. از ویژگیهای فنی برجسته این ابزار میتوان به موارد زیر اشاره کرد:
- اجرای کاملاً قطعی: ورودی یکسان، خروجی کاملاً یکسانی را بایتبهبایت تولید میکند.
- بدون وابستگی (Zero Dependencies): به صورت یک باینری منفرد و کاملاً استاتیک با هدف
muslکامپایل میشود. - انطباق هوشمند ثابتها: ثابتهای فیتشده به اعداد گویا و ضرایبی از مقادیری مانند
pi،eوsqrt(2)متصل (Snap) میشوند. - خروجی استاندارد: خروجی نهایی به صورت یک شیء JSON در
stdoutچاپ میشود و لاگهای تشخیصی بهstderrمیروند.
نحوه استفاده و نصب
نصب و اجرای ابزار بسیار ساده است. برای مثال روی لینوکس میتوانید با استفاده از دستورات زیر آن را دریافت و اجرا کنید:
curl -L -o keplearn https://github.com/owls-on-wires/keplearn/releases/latest/download/keplearn-linux-x86_64
chmod +x keplearn
./keplearn --help
برای استخراج معادله از یک فایل داده، ستون هدف را با --target مشخص کرده و دادهها را به صورت استاندارد به آن پایپ (Pipe) کنید:
./keplearn --target force --top-k 1 --pretty --out laws.json < gravity.tsv
معماری و روش جستجو
موتور Keplearn جستجوی خود را روی زنجیرههایی از کاهشهای معکوسپذیر روی ستون هدف انجام میدهد. این ابزار فاکتورها را تقسیم میکند، عملگرهایی مانند لگاریتم یا جذر را معکوس کرده و گرههای affine داخلی را فیت میکند. کاندیداها با استفاده از یک مجموعه اعتبارسنجی داخلی (Holdout) و جریمه پیچیدگی رتبهبندی میشوند.
جایگاه در بنچمارکها و مقایسه
ابزار Keplearn به عنوان یک متد در بنچمارک استاندارد رگرسیون نمادین یعنی SRBench اضافه شده است. نتایج ارزیابیها نشان میدهد که این ابزار در مجموعه دادههای فینمن (Feynman) با نویز صفر توانسته است نرخ موفقیت بالایی را در مقایسه با بسیاری از ابزارهای دیگر و با کسری از بودجه محاسباتی به دست آورد. با این حال، باید توجه داشت که این ابزار برای کشف قوانین تحلیلی دقیق بهینهسازی شده است و در مجموعههای داده جعبهسیاه (Black-box) که فاقد فرمولهای بسته هستند، رفتار متفاوتی دارد.
چرا این پروژه در هکرنیوز مورد توجه قرار گرفت؟
این پروژه با امتیاز مناسب و بازخورد مثبت در هکرنیوز دیده شد. یکی از کاربران هکرنیوز (kamilstaszewski) با اشاره به سبک توسعه آن نوشته بود که ساختار پروژه به گونهای است که انگار توسط یک انسان خوشسلیقه نوشته شده است؛ نکتهای که اشاره به تمیزی کدها و تمرکز روی یک مسئله خاص دارد. این پروژه تحت لایسنس MIT منتشر شده و توسط Chandler Freeman توسعه یافته است.
در یک نگاه
- زبان اصلی: Rust
- لایسنس: MIT
- مخزن گیتهاب: owls-on-wires/keplearn
- مسئله اصلی: رگرسیون نمادین قطعی و استخراج معادلات بسته از دادههای جدولبندیشده
این مطلب بهصورت کاملاً خودکار و با هوش مصنوعی از مقالهٔ اصلی و بحث هکرنیوز تهیه شده و ممکن است خطا داشته باشد. حقوق مطلب اصلی متعلق به نویسندهٔ آن است. قوانین و گزارش مشکل