اكتشف كيف تستخدم شبكات التدفق التوليدي (GFlowNets) النمذجة الاحتمالية لأخذ عينات من كائنات منفصلة متنوعة وذات عائد مرتفع لأغراض اكتشاف الأدوية والتعلم السببي.
شبكات التدفق التوليدية (Generative Flow Networks)، أو GFlowNets، هي إطار عمل قوي للتعلم الآلي مصمم من أجل النمذجة الاحتمالية وأخذ العينات المُعَوضة. وهي تتميز بقدرتها على توليد كائنات منفصلة وقابلة للتركيب من خلال التعامل مع عملية التوليد على أنها مهمة متسلسلة لاتخاذ القرار . بدلاً من مجرد تعظيم المكافأة، كما هو شائع في التعلم المعزز التقليدي، تتعلم شبكات GFlowNets أخذ عينات من الكائنات باحتمال يتناسب مع دالة مكافأة محددة مسبقًا. وهذا يسمح لها باكتشاف مجموعات متنوعة من المرشحين ذوي المكافآت العالية ضمن مساحات عينات كبيرة للغاية، مما يخفف بشكل فعال من انهيار النموذج الذي غالبًا ما يعاني منه البنى التوليدية الأخرى مثل الشبكات التنافسية التوليدية (GANs).
تعمل شبكات GFlowNets من خلال التنقل في بيئة منظمة، وإضافة العناصر الأساسية خطوة بخطوة لبناء كائن نهائي.
في حين أن الذكاء الاصطناعي التوليدي يشمل العديد من التقنيات، تحتل شبكات GFlowNets مكانة فريدة. عادةً ما تقوم نماذج الانتشار القياسية أو تقنيات مثل مطابقة التدفق بتحويل توزيعات الضوضاء المستمرة إلى بيانات. على النقيض من ذلك، صُممت شبكات GFlowNets خصيصًا لتوليد هياكل منفصلة، مثل الرسوم البيانية أو التسلسلات. علاوة على ذلك، في حين تهدف عوامل التعلم المعزز القياسية إلى إيجاد مسار واحد مثالي عبر عملية قرار ماركوف (MDP)، تحدد شبكات GFlowNets مسارات متعددة ذات عائد مرتفع لضمان تنوع واسع في المخرجات المولدة.
إن القدرة على توليد مرشحين متنوعين ومُحسَّنين للغاية تجعل شبكات GFlowNets ذات قيمة خاصة في المجالات العلمية والهيكلية.
عند بناء شبكة GFlowNet، يجب أن تتنبأ السياسة الأمامية بتوزيع احتمالي للخطوات التالية المحتملة. ما يلي PyTorch يوضح كيفية تعريف طبقة سياسة بسيطة و أخذ عينة من إجراء. في حين أن بناء نماذج الرؤية مثل Ultralytics يتطلب توقع إحداثيات الصندوق المحيط ، فإن GFlowNet يستخدم التوزيعات التصنيفية لاختيار الحالة التالية في مسار التوليد الخاص به.
import torch
import torch.nn as nn
from torch.distributions import Categorical
# A simple linear policy mapping a 64-dim state to 4 possible actions
policy_network = nn.Sequential(nn.Linear(64, 4), nn.Softmax(dim=-1))
# Given a random state vector, compute action probabilities and sample
state = torch.randn(1, 64)
action_probs = policy_network(state)
sampled_action = Categorical(action_probs).sample()
print(f"Sampled Action: {sampled_action.item()}")
إذا كنت تعمل على تطوير حلول ذكاء اصطناعي معقدة في Python، يمكنك بسهولة توضيح مجموعات البيانات وتدريب النماذج ونشرها باستخدام Ultralytics . سواء كنت تركز على مهام الكشف عن الأجسام بسرعة عالية أو تستكشف البنى التوليدية، فإن وجود مسار عمليات تعلم آلي (MLOps) قوي أمر ضروري لتوسيع نطاق نماذجك بفعالية.
ابدأ رحلتك مع مستقبل تعلم الآلة