استكشف وظيفة التنشيط Gaussian Error Linear Unit (GELU). تعرف على كيفية قيام عدم الخطية الاحتمالية السلسة بتشغيل Transformers و BERT والذكاء الاصطناعي الحديث.
وحدة الخطأ الغاوسي الخطي (GELU) هي وظيفة تنشيط متطورة تلعب دورًا محوريًا في أداء أنظمة الذكاء الاصطناعي (AI) الحديثة ، خاصة تلك التي تعتمد على بنية Transformer. على عكس الوظائف التقليدية التي تطبق عتبة صارمة وحتمية على مدخلات الخلايا العصبية، تقدم GELU جانبًا احتماليًا مستوحى من خصائص التوزيع الغاوسي. من خلال تقييم المدخلات حسب حجمها بدلاً من مجرد تقييدها، توفر GELU عدم خطية أكثر سلاسة تساعد في تحسين نماذج التعلم العميق (DL). تسمح هذه الخاصية الفريدة للشبكات بنمذجة أنماط البيانات المعقدة بشكل أكثر فعالية، مما يساهم بشكل كبير في نجاح النماذج الأساسية الضخمة.
في قلب أي شبكة عصبية، تحدد وظائف التنشيط ما إذا كانت الخلية العصبية"تطلق" بناءً على إشارة الإدخال الخاصة بها. تعمل الوظائف القديمة مثل الوحدة الخطية المعدلة (ReLU) مثل مفتاح، حيث تنتج صفرًا لأي إدخال سلبي والإدخال نفسه للقيم الموجبة. على الرغم من كفاءتها، إلا أن هذا القطع الحاد يمكن أن يعيق ديناميكيات التدريب.
يحسن GELU هذا من خلال قياس المدخلات بواسطة دالة التوزيع التراكمي للتوزيع الغاوسي. بشكل بديهي، هذا يعني أنه مع انخفاض قيمة المدخلات، تزداد احتمالية انقطاع الخلية العصبية، ولكن يحدث ذلك بشكل تدريجي وليس مفاجئًا. ينتج عن هذا الانحناء دالة سلسة وغير متجانسة قابلة للاشتقاق في جميع النقاط. تسهل هذه السلاسة الانتشار العكسي للانحدارات، مما يساعد على التخفيف من مشاكل مثل مشكلة الانحدار المتلاشي التي يمكن أن تعطل تدريب الشبكات العميقة.
أدى تحسين الأداء السلس الذي يوفره GELU إلى جعله الخيار الافتراضي لبعض التطبيقات الأكثر تقدمًا في مجال التعلم الآلي (ML).
لفهم GELU، غالبًا ما يتطلب الأمر تمييزه عن وظائف التنشيط الشائعة الأخرى الموجودة في Ultralytics .
تنفيذ GELU أمر بسيط باستخدام مكتبات التعلم العميق الحديثة مثل PyTorch. يوضح المثال التالي كيفية تطبيق الدالة على tensor بيانات الإدخال.
import torch
import torch.nn as nn
# Initialize the GELU activation function
gelu_activation = nn.GELU()
# Create sample input data including negative and positive values
input_data = torch.tensor([-3.0, -1.0, 0.0, 1.0, 3.0])
# Apply GELU to the inputs
output = gelu_activation(input_data)
# Print results to see the smoothing effect on negative values
print(f"Input: {input_data}")
print(f"Output: {output}")
بالنسبة للمطورين الذين يرغبون في الاستفادة من وظائف التنشيط المتقدمة هذه في مشاريع الرؤية الحاسوبية الخاصة بهم، Ultralytics على تبسيط سير العمل بأكمله. فهي توفر واجهة موحدة لتعليق البيانات وتدريب النماذج باستخدام بنى مثل YOLO26 (التي تستخدم عمليات تنشيط محسّنة مثل SiLU) ونشرها بكفاءة على السحابة أو الأجهزة الطرفية.