Tanh (Hyperbolic Tangent)
تعلم كيف تعمل دالة التنشيط Tanh على تحسين تدريب الشبكات العصبية عن طريق توسيط البيانات حول الصفر. استكشف دورها في RNNs و GANs ونماذج Ultralytics YOLO26.
تعد دالة Tanh (ظل التمام الزائدي) دالة تنشيط رياضية تُستخدم على نطاق واسع في الطبقات المخفية للشبكات العصبية الاصطناعية. تقوم هذه الدالة بتحويل قيم المدخلات إلى نطاق مخرجات يتراوح بين -1 و1، مما يخلق منحنى على شكل حرف S يشبه دالة Sigmoid ولكنه متمركز عند الصفر. تُعد خاصية التمركز عند الصفر هذه ضرورية لأنها تسمح للنموذج بالتعلم بكفاءة أكبر عن طريق تطبيع مخرجات الخلايا العصبية، مما يضمن أن البيانات التي تتدفق عبر الشبكة لها متوسط أقرب إلى الصفر. ومن خلال التعامل مع القيم السالبة بشكل صريح، تساعد Tanh الشبكات العصبية على التقاط أنماط وعلاقات أكثر تعقيداً داخل البيانات.
Link to this sectionآلية عمل Tanh في التعلم العميق#
في بنية نماذج التعلم العميق، تُدخل دوال التنشيط خاصية اللاخطية، مما يمكن الشبكة من تعلم حدود معقدة بين فئات مختلفة من البيانات. وبدون دوال مثل Tanh، ستتصرف الشبكة العصبية كنموذج انحدار خطي بسيط، بغض النظر عن عدد طبقاتها. تُعد دالة Tanh فعالة بشكل خاص في الشبكات العصبية المتكررة (RNN) وأنواع معينة من الشبكات ذات التغذية الأمامية حيث يساعد الحفاظ على توزيع تنشيط متوازن ومتمركز حول الصفر في منع مشكلة تلاشي التدرج أثناء الانتشار العكسي.
عند تعيين المدخلات إلى النطاق من -1 إلى 1، تؤدي المدخلات السالبة بقوة إلى مخرجات سالبة، وتؤدي المدخلات الموجبة بقوة إلى مخرجات موجبة. يختلف هذا عن دالة Sigmoid، التي تضغط القيم بين 0 و1. وبما أن مخرجات Tanh متناظرة حول الصفر، فإن عملية الانحدار الاشتقاقي تتقارب غالباً بشكل أسرع، حيث أن الأوزان في الطبقات اللاحقة لا تتحرك باستمرار في اتجاه واحد (وهي ظاهرة تُعرف بمسار "التعرج" في التحسين).
Link to this sectionتطبيقات العالم الحقيقي#
تستمر Tanh في لعب دور حيوي في بنى وتطبيقات معينة، خاصة حيثما تتطلب معالجة التسلسل وتقدير القيم المستمرة.
- معالجة اللغات الطبيعية (NLP): في بنيات مثل شبكات الذاكرة طويلة المدى (LSTM) ووحدات التكرار المبوب (GRU)، تُستخدم Tanh كدالة التنشيط الأساسية لتنظيم تدفق المعلومات. على سبيل المثال، في مهام الترجمة الآلية حيث يقوم النموذج بترجمة النص من الإنجليزية إلى الفرنسية، تساعد Tanh البوابات الداخلية لـ LSTM في تحديد مقدار السياق السابق (الذاكرة) الذي يجب الاحتفاظ به أو نسيانه. وهذا يسمح للنموذج بالتعامل مع التبعيات طويلة المدى في تراكيب الجمل.
- الشبكات الخصومية التوليدية (GANs): في المكون التوليدي للعديد من الشبكات الخصومية التوليدية، تُستخدم Tanh بشكل متكرر كدالة التنشيط النهائية للطبقة الناتجة. وبما أن الصور غالباً ما يتم تطبيعها إلى نطاق من -1 إلى 1 أثناء المعالجة المسبقة، فإن استخدام Tanh يضمن أن المولد ينتج قيم بكسل ضمن نفس النطاق الصالح. تساعد هذه التقنية في تخليق صور واقعية لتطبيقات مثل توليد النص إلى صورة.
Link to this sectionالمقارنة: Tanh مقابل Sigmoid مقابل ReLU#
من المفيد تمييز Tanh عن الدوال الشائعة الأخرى لفهم متى يجب استخدامها.
- Tanh مقابل Sigmoid: كلاهما عبارة عن منحنيات على شكل حرف S. ومع ذلك، تُخرج Sigmoid قيماً بين 0 و1، مما قد يتسبب في تلاشي التدرجات بشكل أسرع من Tanh. تُخصص Sigmoid عادةً لطبقة المخرجات النهائية لمشاكل التصنيف الثنائي (تنبؤ الاحتمالية)، بينما يُفضل استخدام Tanh للطبقات المخفية في RNNs.
- Tanh مقابل ReLU (وحدة خطية مصححة): في الشبكات العصبية التلافيفية (CNNs) الحديثة مثل YOLO26، يُفضل عموماً استخدام ReLU ومشتقاتها (مثل SiLU) على Tanh للطبقات المخفية. ويرجع ذلك إلى أن ReLU تتجنب مشكلة تلاشي التدرج بشكل أكثر فعالية في الشبكات العميقة جداً وتكلفتها الحسابية أقل. تعد Tanh أكثر تكلفة من الناحية الحسابية بسبب العمليات الأسية المتضمنة.
Link to this sectionتنفيذ دوال التنشيط في PyTorch#
بينما تتعامل النماذج عالية المستوى مثل YOLO26 مع تعريفات التنشيط داخلياً ضمن ملفات التكوين الخاصة بها، فإن فهم كيفية تطبيق Tanh باستخدام PyTorch مفيد لبناء النماذج المخصصة.
import torch
import torch.nn as nn
# Define a sample input tensor with positive and negative values
input_data = torch.tensor([-2.0, -0.5, 0.0, 0.5, 2.0])
# Initialize the Tanh activation function
tanh = nn.Tanh()
# Apply Tanh to the input data
output = tanh(input_data)
# Print results to see values squashed between -1 and 1
print(f"Input: {input_data}")
print(f"Output: {output}")بالنسبة للمستخدمين المهتمين بتدريب بنيات مخصصة أو إدارة مجموعات البيانات بفعالية، توفر منصة Ultralytics بيئة مبسطة لتجربة معاملات النماذج الفائقة المختلفة، وتصور مقاييس التدريب، ونشر الحلول دون الحاجة إلى برمجة كل طبقة من طبقات الشبكة العصبية يدوياً.






